Executive brief
veraPDF is an open-source PDF validator used to ensure files comply with archival standards. A vulnerability in its PDF parsing component allows a specially crafted PDF file to crash the application or exhaust its system resources (CPU and memory). This could lead to a denial-of-service, preventing the system from processing other documents or causing automated validation workflows to hang.
Technical details
A denial-of-service vulnerability exists in the Type 1 font program parser of veraPDF-parser (specifically within Type1FontProgram.java and PSOperator.java). The parser's PostScript interpreter fails to validate operands for the 'array' and 'for' operators, allowing for unbounded memory allocation (up to Integer.MAX_VALUE) and infinite loops via zero-increment values. Additionally, the 'toExecute' function lacks recursion depth limits, enabling stack exhaustion through self-referential dictionary lookups. An attacker can trigger these conditions by providing a PDF with a malicious /FontFile stream, leading to OutOfMemoryError, StackOverflowError, or CPU exhaustion. The issue is resolved in versions 1.30.2 and 1.31.23 by implementing operand validation and recursion limits.
Affected products
- veraPDF veraPDF-parser < 1.30.2, >= 1.31.1, < 1.31.23
Timeline
- 2026-05-19: other: Initial fix pull request submitted
- 2026-05-29: patched: Fix merged into integration branch
- 2026-06-08: advisory: GitHub Security Advisory published
- 2026-07-29: disclosed: CVE published to NVD
References
- https://github.com/veraPDF/veraPDF-parser/commit/73d6ec002b98ce1f3f68640442f8e5d5613c80ce
- https://github.com/veraPDF/veraPDF-parser/commit/cb3538607a549d63504299be1088c85ae48605f4
- https://github.com/veraPDF/veraPDF-parser/pull/703
- https://github.com/veraPDF/veraPDF-parser/security/advisories/GHSA-7c26-995w-6f47