[low] ZIP reader: CPU on skipped entries, no timeout on :zip extraction #44

Open
opened 2026-10-18 17:46:55 +00:00 by jfro · 0 comments
Owner

Found by Nye reviewing PR #41 (#14, zip bomb caps). Non-blocking, low.

  1. Zstream inflates every entry it passes while searching for the target, so a huge entry before the target costs unbounded CPU (memory stays bounded). Could also cap total inflated bytes across skipped entries.
  2. extract_capped's receive has no after timeout, so a stuck :zip extraction blocks the Oban worker forever. Add e.g. a 60s timeout that kills the pid.
Found by Nye reviewing PR #41 (#14, zip bomb caps). Non-blocking, low. 1. Zstream inflates every entry it passes while searching for the target, so a huge entry before the target costs unbounded CPU (memory stays bounded). Could also cap total inflated bytes across skipped entries. 2. `extract_capped`'s `receive` has no `after` timeout, so a stuck `:zip` extraction blocks the Oban worker forever. Add e.g. a 60s timeout that kills the pid.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
jfro/fuzzy_catalog#44
No description provided.