Skip to main content

veraPDF-parser CVE-2026-54081

| EUVDEUVD-2026-50372 MEDIUM
Improperly Controlled Sequential Memory Allocation (CWE-1325)
2026-07-29 GitHub_M GHSA-7c26-995w-6f47
6.9
CVSS 4.0 · Vendor: GitHub_M
Share

Severity by source

Vendor (GitHub_M) PRIMARY
6.9 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
vuln.today AI
7.5 HIGH

Network-reachable via PDF submission with no authentication (PR:N); A:H because unbounded allocation and infinite loops can fully crash the JVM validator process, not merely degrade it.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
X

Lifecycle Timeline

3
Patch available
Jul 29, 2026 - 16:02 EUVD
Source Code Evidence Fetched
Jul 29, 2026 - 15:51 vuln.today
Analysis Generated
Jul 29, 2026 - 15:51 vuln.today

DescriptionCVE.org

veraPDF PDF parser is a PDF parser for veraPDF. Prior to 1.30.2 and 1.31.23, veraPDF-parser contains a denial-of-service vulnerability in veraPDF-parser/src/main/java/org/verapdf/pd/font/type1/Type1FontProgram.java and veraPDF-parser/src/main/java/org/verapdf/parser/postscript/PSOperator.java, where a crafted Type 1 font /FontDescriptor /FontFile program can execute unbounded PostScript array allocation, a zero-increment for loop, or self-recursive toExecute user dictionary lookups and exhaust validator memory, CPU, or stack. This issue is fixed in versions 1.30.2 and 1.31.23.

AnalysisAI

Denial-of-service in veraPDF-parser allows a remote unauthenticated attacker to crash or hang the PDF validation service by submitting a crafted PDF containing a Type 1 font whose /FontDescriptor /FontFile PostScript program exploits one of three unbounded resource primitives: a massive array allocation, a zero-increment for-loop, or a self-referential recursive user-dictionary lookup. All veraPDF-parser releases prior to 1.30.2 and 1.31.23 are affected across both active version branches. No public exploit code or active exploitation (CISA KEV) has been identified at time of analysis; vendor-released patches exist for both branches.

Technical ContextAI

veraPDF-parser is a Java PDF/A validation library (Maven: org.verapdf:parser, CPE cpe:2.3:a:verapdf:verapdf-parser:*:*:*:*:*:*:*:*) that embeds a cleartext PostScript interpreter for parsing Type 1 font programs embedded in PDF /FontDescriptor /FontFile streams. CWE-1325 (Improperly Controlled Sequential Memory Allocation) describes the root class, but the vulnerability actually encompasses three distinct unbounded-resource primitives. First, PSOperator.array() calls COSArray.construct(N) backed by new ArrayList<>(N) with no upper-bound validation, allowing Integer.MAX_VALUE (~16 GB allocation on a 64-bit JVM). Second, PSOperator.opFor() ran for (long i = initial; i <= limit; i += increment) with no guard against increment==0, producing an infinite loop. Third, Type1FontProgram.toExecute() performed recursive user-dictionary lookups with no visited-set or recursion-depth enforcement, causing StackOverflowError after ~16,000 JVM frames. All three operators (array, for, and unknown-name lookup) were admitted by a hardcoded allow-list in Type1FontProgram.toExecute(). The interpreter is invoked unconditionally by GFPDType1Font's constructor on every Type 1 font encountered during validation.

RemediationAI

Upgrade to veraPDF-parser 1.30.2 (for 1.30.x deployments) or 1.31.23 (for 1.31.x deployments), as confirmed by the vendor advisory at https://github.com/veraPDF/veraPDF-parser/security/advisories/GHSA-7c26-995w-6f47 and implemented in PR #703 (https://github.com/veraPDF/veraPDF-parser/pull/703) and commits 73d6ec0 and cb35386. The fix adds an integer-bounds check on array allocation, guards the for-operator against zero-increment by setting increment to zero and skipping execution, and changes the toExecute depth check from > to >= MAX_TO_EXECUTE_DEPTH to enforce the cap correctly. If immediate upgrade is not feasible, restrict PDF submission to authenticated, trusted clients only - this reduces exposure but does not eliminate risk if trusted users can be influenced to submit attacker-crafted documents. Additionally, running the veraPDF validator in a sandboxed JVM with a heap cap (e.g., -Xmx512m) and a process timeout will bound the blast radius of any DoS attempt; note that the JVM will throw OutOfMemoryError and the process may terminate, requiring a process supervisor to restart it.

More in Java

View all
CVE-2012-4681 CRITICAL POC
9.8 Aug 28

Oracle Java SE 7 Update 6 and earlier contains multiple sandbox bypass vulnerabilities via the ClassFinder and forName m

CVE-2015-7450 CRITICAL POC
9.8 Jan 02

Remote code execution in IBM Sterling B2B Integrator, Sterling Integrator, and Tivoli Common Reporting allows unauthenti

CVE-2013-2465 CRITICAL POC
9.8 Jun 18

Java Runtime Environment sandbox bypass via incorrect image channel verification in 2D component allows remote unauthent

CVE-2011-3544 CRITICAL POC
9.8 Oct 19

Oracle Java SE JDK/JRE 7 and 6 Update 27 and earlier allows remote code execution with complete system compromise throug

CVE-2010-1871 HIGH POC
8.8 Aug 05

JBoss Seam 2 in Red Hat JBoss EAP 4.3.0 fails to sanitize JBoss Expression Language inputs, allowing remote attackers to

CVE-2012-1723 CRITICAL POC
9.8 Jun 16

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 update 4 and earlier, 6 up

CVE-2013-0422 CRITICAL POC
9.8 Jan 10

Multiple vulnerabilities in Oracle Java 7 before Update 11 allow remote attackers to execute arbitrary code by (1) using

CVE-2012-0507 CRITICAL POC
9.8 Jun 07

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 2 and earlier, 6 Up

CVE-2015-4852 CRITICAL POC
9.8 Nov 18

The WLS Security component in Oracle WebLogic Server 10.3.6.0, 12.1.2.0, 12.1.3.0, and 12.2.1.0 allows remote attackers

CVE-2012-5076 CRITICAL POC
9.8 Oct 16

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 7 and earlier allow

CVE-2017-3066 CRITICAL POC
9.8 Apr 27

Remote unauthenticated attackers can execute arbitrary code on Adobe ColdFusion servers through Java deserialization fla

CVE-2012-0391 CRITICAL POC
9.8 Jan 08

The ExceptionDelegator component in Apache Struts before 2.2.3.1 interprets parameter values as OGNL expressions during

Share

CVE-2026-54081 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy