Parsers and archives
Archive and document parsers turn entry names and links into filesystem paths. An entry that resolves outside the extract root is the primitive, and impact starts when the service later reads or writes that path.
Skill: Parsers, archives, and fail-open
Ask: Does the parser trust a path, a type, or an error state the caller controls?
Stop: You can show the boundary that was crossed, or you can show the error path failed closed.
Checklists
- Parser differentials - Two parsers often disagree. Record what the edge accepts, what the app stores, and what a later viewer renders, using a harmless file you created.
- Exception and debug paths - Failures are a second API. Compare a normal response with a handled error and record what the error adds: a stack, a tenant, a token, or a route that skips a check.
Disclosures
- Archive extraction path-traversal exposure - Improper path restriction during archive extraction
Playbooks
- Archive and document parsers - Archive and document parsers turn entry names and links into filesystem paths. An entry that resolves outside the extract root is the primitive. Impact starts when the service later reads or writes that path, on a file you created.
- Exception paths and fail-open - OWASP Top 10:2025 A10 is mishandling of exceptional conditions: timeouts, empty bodies, parser failures, and error handlers that do a different job than the happy path. The bug is a state change that happens because something went wrong.
Questions
Is an entry that climbs out of the root enough?
It is the primitive. Impact is a file the service later reads or writes, on an archive you created, inside scope. Do not aim the extractor at paths you do not own.
How is this different from XXE?
XXE is an XML parser fetching an external identifier, and it has its own hunt. This hunt is path and archive handling. A parser that fails open on a malformed entry is mishandling of exceptional conditions, OWASP Top 10:2025 A10.
This page is the linked pack hunt_brief("parser") returns on the MCP connector. Authorized testing only.