ZeroHour

CVE-2026-85393

mass

RSA PKCS#1 v1.5 signature forgery in node-forge (DigestAlgorithm parsing)

CVSS 4.0
8.7 high
EPSS
<1%p10
Published
()
Modified
AI analysis

node-forge through 1.4.0 fails to validate the element count in nested DigestAlgorithm ASN.1 sequences while verifying RSA PKCS#1 v1.5 signatures (CWE-347), leaving the parser open to malformed inputs. By embedding garbage bytes inside the DigestAlgorithm sequence of a crafted signature, an attacker can make a forged signature validate for an arbitrary message against RSA keys that use a low public exponent. Successful forgery lets an attacker impersonate a legitimate signer and defeat signature-based authentication or integrity checks without knowing the private key. Any application using node-forge version 1.4.0 or earlier to verify RSA PKCS#1 v1.5 signatures on untrusted data is affected, and this is an incomplete fix for the earlier flaw CVE-2026-33894, so previously patched deployments remain exposed. No public proof-of-concept, CISA KEV listing, or in-the-wild exploitation is known; EPSS gives a 0.2% probability of exploitation within 30 days (10th percentile).

What to do: Upgrade node-forge to the first release after 1.4.0 that validates DigestAlgorithm sequence element counts (no fixed version is stated in the available data, so monitor the node-forge npm/GitHub advisory) and confirm the patch covers the nested-sequence case left open by CVE-2026-33894. Audit your dependency tree (e.g., 'npm ls node-forge' or lockfile scanning) to find transitive uses, and as an interim mitigation verify untrusted PKCS#1 v1.5 signatures with a different patched library and prefer RSA keys with a standard exponent (e.g., 65537) over low-exponent keys.

Affected
node-forge (npm project) node-forgeall versions through 1.4.0 (fixed version not stated in available data)
Estimated exposure
mass≈10M+ weekly npm downloads, with wide transitive embedding in JavaScript projects (estimate; exploitable subset smaller) — node-forge is one of the most-downloaded npm cryptographic libraries and is pulled in transitively by widely used JavaScript tooling, but only deployments that actually verify RSA PKCS#1 v1.5 signatures — especially with low-exponent keys…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

node-forge through 1.4.0 fails to validate element count in nested DigestAlgorithm sequences during RSA PKCS#1 v1.5 signature verification. Attackers can embed garbage bytes inside the DigestAlgorithm sequence to forge valid signatures for arbitrary messages using low-exponent RSA keys. This is an incomplete fix for CVE-2026-33894.

Weakness
CWE-347
Vector
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/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

In the news

No ingested article mentions this CVE yet.