{"id":"CVE-2025-66030","aliases":["AZL-71131","CLSA-2026-1774916733","CLSA-2026-1791028051","DEBIAN-CVE-2025-66030","EUVD-2025-199768","GHSA-5rrq-pxf6-6jx5","GHSA-65ch-62r8-g69g","ROOT-APP-NPM-CVE-2025-66030","ROOT-APP-NPM-GHSA-5rrq-pxf6-6jx5","UBUNTU-CVE-2025-66030"],"status":"published","title":"node-forge ASN.1 OID Integer Truncation","description":"Forge (also called `node-forge`) is a native implementation of Transport Layer Security in JavaScript. An Integer Overflow vulnerability in node-forge versions 1.3.1 and below enables remote, unauthenticated attackers to craft ASN.1 structures containing OIDs with oversized arcs. These arcs may be decoded as smaller, trusted OIDs due to 32-bit bitwise truncation, enabling the bypass of downstream OID-based security decisions. This issue has been patched in version 1.3.2.","severity":{"version":"4.0","score":6.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N","level":"medium","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-09","score":0.0033,"percentile":0.26358,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-1321","CWE-190"],"published":"2022-01-08T00:22:42Z","modified":"2026-10-28T02:31:11Z","fixes":[{"ecosystem":"npm","package":"node-forge","fixed_in":["1.0.0","1.3.2"],"sources":["ghsa","osv"]},{"ecosystem":"Azure Linux:2","package":"reaper","fixed_in":["3.1.1-21"],"sources":["osv"]},{"ecosystem":"Root:npm","package":"node-forge","fixed_in":["1.3.1-aikido.5","0.10.0-aikido.3","0.7.1-aikido.5","0.7.1-aikido.6","0.7.1-aikido.7","0.7.6-aikido.2","0.10.0-aikido.4","1.3.1-aikido.6","1.3.2-aikido.1","1.0.0-aikido.1"],"sources":["osv"]},{"ecosystem":"Root:npm","package":"@rootio/node-forge","fixed_in":["1.3.1-root.io.2","1.3.1-root.io.3","1.3.1-root.io.4","1.3.1-root.io.5","0.10.0-root.io.3","0.7.1-root.io.5","0.7.1-root.io.6","0.7.1-root.io.7","0.7.6-root.io.2","0.10.0-root.io.4","1.3.1-root.io.6","1.3.2-root.io.1","1.0.0-root.io.1"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"npm","package":"node-forge","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.0.0"}]}]},{"source":"ghsa","ecosystem":"npm","package":"node-forge","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.3.2"}]}]},{"source":"osv","ecosystem":"Azure Linux:2","package":"reaper","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.1.1-21"}]}]},{"source":"osv","ecosystem":"TuxCare:npm","package":"node-forge","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0.10.0-tuxcare.0"},{"fixed":"0.10.0-tuxcare.4"}]}],"versions":["0.10.0","0.10.0-tuxcare.1","0.10.0-tuxcare.2","0.10.0-tuxcare.3"],"bundled":3},{"source":"osv","ecosystem":"TuxCare:npm","package":"node-forge","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"1.3.1-tuxcare.0"},{"fixed":"1.3.1-tuxcare.1"}]}],"versions":["1.3.1"],"bundled":3},{"source":"osv","ecosystem":"Debian:11","package":"node-node-forge","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.10.0~dfsg-3","0.10.0~dfsg-3+deb11u1","0.10.0~dfsg-4","1.2.1~dfsg-1","1.2.1~dfsg-2","1.3.0~dfsg-1"]},{"source":"osv","ecosystem":"npm","package":"node-forge","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"1.0.0"}]}]},{"source":"osv","ecosystem":"npm","package":"node-forge","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"1.3.2"}]}]},{"source":"osv","ecosystem":"Root:npm","package":"node-forge","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.3.1-aikido.5"},{"fixed":"0.10.0-aikido.3"},{"fixed":"0.7.1-aikido.5"},{"fixed":"0.7.1-aikido.6"},{"fixed":"0.7.1-aikido.7"},{"fixed":"0.7.6-aikido.2"},{"fixed":"0.10.0-aikido.4"},{"fixed":"1.3.1-aikido.6"},{"fixed":"1.3.2-aikido.1"}]}]},{"source":"osv","ecosystem":"Root:npm","package":"@rootio/node-forge","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.3.1-root.io.2"},{"fixed":"1.3.1-root.io.3"},{"fixed":"1.3.1-root.io.4"},{"fixed":"1.3.1-root.io.5"},{"fixed":"0.10.0-root.io.3"},{"fixed":"0.7.1-root.io.5"},{"fixed":"0.7.1-root.io.6"},{"fixed":"0.7.1-root.io.7"},{"fixed":"0.7.6-root.io.2"},{"fixed":"0.10.0-root.io.4"},{"fixed":"1.3.1-root.io.6"},{"fixed":"1.3.2-root.io.1"}]}]},{"source":"osv","ecosystem":"Root:npm","package":"node-forge","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.0.0-aikido.1"}]}]},{"source":"osv","ecosystem":"Root:npm","package":"@rootio/node-forge","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.0.0-root.io.1"}]}]},{"source":"osv","ecosystem":"Ubuntu:20.04:LTS","package":"node-node-forge","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.8.5~dfsg-2","0.9.1~dfsg-1"]},{"source":"osv","ecosystem":"Ubuntu:22.04:LTS","package":"node-node-forge","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.10.0~dfsg-3","1.2.1~dfsg-2"]}],"products":[{"vendor":"digitalbazaar","product":"forge"}],"references":[{"url":"https://github.com/digitalbazaar/forge/security/advisories/GHSA-65ch-62r8-g69g","tags":["x_refsource_CONFIRM","Vendor Advisory","advisory","web","report"]},{"url":"https://github.com/digitalbazaar/forge/commit/3e0c35ace169cfca529a3e547a7848dc7bf57fdb","tags":["x_refsource_MISC","Patch","fix","web","report"]},{"url":"https://github.com/digitalbazaar/forge/security/advisories/GHSA-5rrq-pxf6-6jx5","tags":["web"]},{"url":"https://github.com/advisories/GHSA-5rrq-pxf6-6jx5"},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2025-66030","tags":["web","advisory"]},{"url":"https://github.com/advisories/GHSA-65ch-62r8-g69g"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/66xxx/CVE-2025-66030.json","tags":["advisory"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2025-66030","tags":["advisory"]},{"url":"https://github.com/digitalbazaar/forge","tags":["package"]},{"url":"https://ubuntu.com/security/CVE-2025-66030","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2025-66030","tags":["report"]}],"sources":{"cve":[{"id":"CVE-2025-66030","title":"node-forge ASN.1 OID Integer Truncation","description":"Forge (also called `node-forge`) is a native implementation of Transport Layer Security in JavaScript. An Integer Overflow vulnerability in node-forge versions 1.3.1 and below enables remote, unauthenticated attackers to craft ASN.1 structures containing OIDs with oversized arcs. These arcs may be decoded as smaller, trusted OIDs due to 32-bit bitwise truncation, enabling the bypass of downstream OID-based security decisions. This issue has been patched in version 1.3.2.","status":"published","published":"2025-11-26T22:23:41.548Z","modified":"2025-11-28T18:25:02.44Z","cvss":[{"version":"4.0","score":6.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N","level":"medium","assessor":"cna"}],"cwes":["CWE-190"],"updated_at":"2026-11-02T14:32:53.157279Z"}],"euvd":[{"id":"EUVD-2025-199768","description":"Forge (also called `node-forge`) is a native implementation of Transport Layer Security in JavaScript. An Integer Overflow vulnerability in node-forge versions 1.3.1 and below enables remote, unauthenticated attackers to craft ASN.1 structures containing OIDs with oversized arcs. These arcs may be decoded as smaller, trusted OIDs due to 32-bit bitwise truncation, enabling the bypass of downstream OID-based security decisions. This issue has been patched in version 1.3.2.","status":"published","published":"2025-11-26T22:23:41Z","modified":"2025-11-28T18:25:02Z","cvss":[{"version":"4.0","score":6.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N","level":"medium"}],"updated_at":"2026-11-02T19:49:11.947161Z"}],"ghsa":[{"id":"GHSA-65ch-62r8-g69g","title":"node-forge is vulnerable to ASN.1 OID Integer Truncation","description":"### Summary\n\n**MITRE-Formatted CVE Description**\nAn Integer Overflow (CWE-190) vulnerability in node-forge versions 1.3.1 and below enables remote, unauthenticated attackers to craft ASN.1 structures containing OIDs with oversized arcs. These arcs may be decoded as smaller, trusted OIDs due to 32-bit bitwise truncation, enabling the bypass of downstream OID-based security decisions.\n\n### Description\n\nAn ASN.1 OID Integer Truncation vulnerability exists in the node-forge `asn1.derToOid` function within `forge/lib/asn1.js`. OID components are decoded using JavaScript's bitwise left-shift operator (`\u003c\u003c`), which forcibly casts values to 32-bit signed integers. Consequently, if an attacker provides a mathematically unique, very large OID arc integer exceeding $2^{31}-1$, the value silently overflows and wraps around rather than throwing an error. \n\n### Impact\n\nThis vulnerability allows a specially crafted ASN.1 object to spoof an OID, where a malicious certificate with a massive, invalid OID is misinterpreted by the library as a trusted, standard OID, potentially bypassing security controls.\n\nThis vulnerability impacts the `asn1.derToOid` function in `node-forge` before patched version `1.3.2`. \n\nAny downstream application using this component is impacted. This component may be leveraged by downstream applications in ways that enables partial compromise of integrity, leading to potential availability and confidentiality compromises.","status":"published","published":"2025-11-26T22:07:44Z","modified":"2025-12-01T16:02:52Z","cvss":[{"version":"4.0","score":6.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N","level":"medium"}],"cwes":["CWE-190"],"updated_at":"2026-11-02T14:39:10.178331Z"},{"id":"GHSA-5rrq-pxf6-6jx5","title":"Prototype Pollution in node-forge debug API.","description":"### Impact\nThe `forge.debug` API had a potential prototype pollution issue if called with untrusted input. The API was only used for internal debug purposes in a safe way and never documented or advertised.  It is suspected that uses of this API, if any exist, would likely not have used untrusted inputs in a vulnerable way.\n\n### Patches\nThe `forge.debug` API and related functions were removed in 1.0.0.\n\n### Workarounds\nDon't use the `forge.debug` API directly or indirectly with untrusted input.\n\n### References\n- https://www.huntr.dev/bounties/1-npm-node-forge/\n\n### For more information\nIf you have any questions or comments about this advisory:\n* Open an issue in [forge](https://github.com/digitalbazaar/forge).\n* Email us at support@digitalbazaar.com.","status":"published","published":"2022-01-08T00:22:42Z","modified":"2023-01-11T05:03:14Z","cwes":["CWE-1321"],"updated_at":"2026-11-02T14:36:12.361159Z"}],"nvd":[{"id":"CVE-2025-66030","description":"Forge (also called `node-forge`) is a native implementation of Transport Layer Security in JavaScript. An Integer Overflow vulnerability in node-forge versions 1.3.1 and below enables remote, unauthenticated attackers to craft ASN.1 structures containing OIDs with oversized arcs. These arcs may be decoded as smaller, trusted OIDs due to 32-bit bitwise truncation, enabling the bypass of downstream OID-based security decisions. This issue has been patched in version 1.3.2.","status":"published","published":"2025-11-26T23:15:49.237Z","modified":"2026-10-18T20:10:00.11Z","cvss":[{"version":"4.0","score":6.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/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","level":"medium","assessor":"secondary"},{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N","level":"medium","assessor":"primary"}],"cwes":["CWE-190"],"updated_at":"2026-11-02T14:11:46.94029Z"}],"osv":[{"id":"CVE-2025-66030","title":"node-forge ASN.1 OID Integer Truncation","description":"Forge (also called `node-forge`) is a native implementation of Transport Layer Security in JavaScript. An Integer Overflow vulnerability in node-forge versions 1.3.1 and below enables remote, unauthenticated attackers to craft ASN.1 structures containing OIDs with oversized arcs. These arcs may be decoded as smaller, trusted OIDs due to 32-bit bitwise truncation, enabling the bypass of downstream OID-based security decisions. This issue has been patched in version 1.3.2.","status":"published","published":"2025-11-26T22:23:41.548Z","modified":"2026-10-28T02:31:11.841728969Z","cvss":[{"version":"4.0","score":6.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N","level":"medium"}],"cwes":["CWE-190"],"updated_at":"2026-11-02T15:44:52.202386Z"},{"id":"DEBIAN-CVE-2025-66030","description":"Forge (also called `node-forge`) is a native implementation of Transport Layer Security in JavaScript. An Integer Overflow vulnerability in node-forge versions 1.3.1 and below enables remote, unauthenticated attackers to craft ASN.1 structures containing OIDs with oversized arcs. These arcs may be decoded as smaller, trusted OIDs due to 32-bit bitwise truncation, enabling the bypass of downstream OID-based security decisions. This issue has been patched in version 1.3.2.","status":"published","published":"2025-11-26T23:15:49.237Z","modified":"2026-08-27T23:05:43.086790897Z","cvss":[{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N","level":"medium"}],"updated_at":"2026-11-02T15:45:47.697959Z"},{"id":"GHSA-65ch-62r8-g69g","title":"node-forge is vulnerable to ASN.1 OID Integer Truncation","description":"### Summary\n\n**MITRE-Formatted CVE Description**\nAn Integer Overflow (CWE-190) vulnerability in node-forge versions 1.3.1 and below enables remote, unauthenticated attackers to craft ASN.1 structures containing OIDs with oversized arcs. These arcs may be decoded as smaller, trusted OIDs due to 32-bit bitwise truncation, enabling the bypass of downstream OID-based security decisions.\n\n### Description\n\nAn ASN.1 OID Integer Truncation vulnerability exists in the node-forge `asn1.derToOid` function within `forge/lib/asn1.js`. OID components are decoded using JavaScript's bitwise left-shift operator (`\u003c\u003c`), which forcibly casts values to 32-bit signed integers. Consequently, if an attacker provides a mathematically unique, very large OID arc integer exceeding $2^{31}-1$, the value silently overflows and wraps around rather than throwing an error. \n\n### Impact\n\nThis vulnerability allows a specially crafted ASN.1 object to spoof an OID, where a malicious certificate with a massive, invalid OID is misinterpreted by the library as a trusted, standard OID, potentially bypassing security controls.\n\nThis vulnerability impacts the `asn1.derToOid` function in `node-forge` before patched version `1.3.2`. \n\nAny downstream application using this component is impacted. This component may be leveraged by downstream applications in ways that enables partial compromise of integrity, leading to potential availability and confidentiality compromises.","status":"published","published":"2025-11-26T22:07:44Z","modified":"2026-09-10T03:50:30.550089841Z","cvss":[{"version":"4.0","score":6.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N","level":"medium"}],"cwes":["CWE-190"],"updated_at":"2026-11-02T15:46:39.266402Z"},{"id":"ROOT-APP-NPM-CVE-2025-66030","title":"CVE-2025-66030 in node-forge - Patched by Root","description":"Root has patched CVE-2025-66030 in the node-forge package for Root:npm. Multiple fixed versions available.","status":"published","published":"2026-10-14T07:22:40Z","modified":"2026-10-14T08:15:04.051789652Z","cvss":[{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N","level":"medium"}],"updated_at":"2026-11-02T15:53:27.362922Z"},{"id":"UBUNTU-CVE-2025-66030","description":"Forge (also called `node-forge`) is a native implementation of Transport Layer Security in JavaScript. An Integer Overflow vulnerability in node-forge versions 1.3.1 and below enables remote, unauthenticated attackers to craft ASN.1 structures containing OIDs with oversized arcs. These arcs may be decoded as smaller, trusted OIDs due to 32-bit bitwise truncation, enabling the bypass of downstream OID-based security decisions. This issue has been patched in version 1.3.2.","status":"published","published":"2025-11-26T23:15:00Z","modified":"2025-12-09T08:26:15.513595Z","cvss":[{"version":"4.0","score":6.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N","level":"medium"},{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N","level":"medium"}],"updated_at":"2026-11-02T16:55:52.345622Z"},{"id":"AZL-71131","title":"CVE-2025-66030 affecting package reaper for versions less than 3.1.1-21","description":"Forge (also called `node-forge`) is a native implementation of Transport Layer Security in JavaScript. An Integer Overflow vulnerability in node-forge versions 1.3.1 and below enables remote, unauthenticated attackers to craft ASN.1 structures containing OIDs with oversized arcs. These arcs may be decoded as smaller, trusted OIDs due to 32-bit bitwise truncation, enabling the bypass of downstream OID-based security decisions. This issue has been patched in version 1.3.2.","status":"published","published":"2025-11-26T23:15:49Z","modified":"2026-04-21T04:36:31.504252Z","updated_at":"2026-11-02T15:28:08.907584Z"},{"id":"CLSA-2026-1774916733","title":"TuxCare security update for node-forge (4 CVEs)","description":"TuxCare rebuilt node-forge to address 4 CVEs. Fixed in 0.10.0-tuxcare.4.","status":"published","published":"2026-08-04T14:52:17Z","modified":"2026-10-23T13:58:16.950569859Z","updated_at":"2026-11-02T15:43:43.621843Z"},{"id":"CLSA-2026-1791028051","title":"TuxCare security update for node-forge (3 CVEs)","description":"TuxCare rebuilt node-forge to address 3 CVEs. Fixed in 1.3.1-tuxcare.1.","status":"published","published":"2026-10-03T11:47:31Z","modified":"2026-10-15T09:47:38.666412316Z","updated_at":"2026-11-02T15:43:49.016976Z"},{"id":"GHSA-5rrq-pxf6-6jx5","title":"Prototype Pollution in node-forge debug API.","description":"### Impact\nThe `forge.debug` API had a potential prototype pollution issue if called with untrusted input. The API was only used for internal debug purposes in a safe way and never documented or advertised.  It is suspected that uses of this API, if any exist, would likely not have used untrusted inputs in a vulnerable way.\n\n### Patches\nThe `forge.debug` API and related functions were removed in 1.0.0.\n\n### Workarounds\nDon't use the `forge.debug` API directly or indirectly with untrusted input.\n\n### References\n- https://www.huntr.dev/bounties/1-npm-node-forge/\n\n### For more information\nIf you have any questions or comments about this advisory:\n* Open an issue in [forge](https://github.com/digitalbazaar/forge).\n* Email us at support@digitalbazaar.com.","status":"published","published":"2022-01-08T00:22:42Z","modified":"2022-01-07T22:20:53Z","cwes":["CWE-1321"],"updated_at":"2026-11-02T15:46:38.911014Z"},{"id":"ROOT-APP-NPM-GHSA-5rrq-pxf6-6jx5","title":"GHSA-5rrq-pxf6-6jx5 in node-forge - Patched by Root","description":"Root has patched GHSA-5rrq-pxf6-6jx5 in the node-forge package for Root:npm. Multiple fixed versions available.","status":"published","published":"2026-08-27T11:32:45Z","modified":"2026-08-27T13:45:02.631179627Z","updated_at":"2026-11-02T15:53:27.940619Z"}]}}
