{"api_version":"1","generated_at":"2026-11-04T05:16:24+00:00","cve":"CVE-2026-118776","urls":{"html":"https://cve.report/CVE-2026-118776","api":"https://cve.report/api/cve/CVE-2026-118776.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-118776","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-118776"},"summary":{"title":"Forge: Incomplete PKCS#7 padding validation in AES/DES CBC and ECB decryption","description":"Forge (also called node-forge) is a native implementation of Transport Layer Security in JavaScript. Prior to 1.4.1, the affected implementation used decipher.finish(), CBC and ECB modes, PKCS#7 padding to process the relevant input or security decision. node-forge validated only the final byte of PKCS#7 padding during CBC and ECB decryption and accepted zero, oversized, or mismatched padding bytes. Malformed ciphertext could consequently be accepted and up to four plaintext blocks could be silently removed, causing an integrity failure in applications that treated successful decryption as proof of valid padding. This issue is fixed in version 1.4.1.","state":"PUBLISHED","assigner":"GitHub_M","published_at":"2026-10-29 19:17:20","updated_at":"2026-11-04 02:17:15"},"problem_types":["CWE-20","CWE-354","CWE-20 CWE-20: Improper Input Validation","CWE-354 CWE-354: Improper Validation of Integrity Check Value"],"metrics":[{"version":"3.1","source":"security-advisories@github.com","type":"Secondary","score":"3.7","severity":"LOW","vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N","data":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N","baseScore":3.7,"baseSeverity":"LOW","attackVector":"NETWORK","attackComplexity":"HIGH","privilegesRequired":"NONE","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"NONE","integrityImpact":"LOW","availabilityImpact":"NONE"}},{"version":"3.1","source":"CNA","type":"DECLARED","score":"3.7","severity":"LOW","vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N","data":{"attackComplexity":"HIGH","attackVector":"NETWORK","availabilityImpact":"NONE","baseScore":3.7,"baseSeverity":"LOW","confidentialityImpact":"NONE","integrityImpact":"LOW","privilegesRequired":"NONE","scope":"UNCHANGED","userInteraction":"NONE","vectorString":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N","version":"3.1"}}],"references":[{"url":"https://github.com/digitalbazaar/forge/releases/tag/v1.4.1","name":"https://github.com/digitalbazaar/forge/releases/tag/v1.4.1","refsource":"security-advisories@github.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://github.com/digitalbazaar/forge/security/advisories/GHSA-2vgq-wchc-25w7","name":"https://github.com/digitalbazaar/forge/security/advisories/GHSA-2vgq-wchc-25w7","refsource":"134c704f-9b21-4f2e-91b3-4a467353bcc0","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://github.com/digitalbazaar/forge/commit/81774ff99e2da64aec9a43591df45a360040c136","name":"https://github.com/digitalbazaar/forge/commit/81774ff99e2da64aec9a43591df45a360040c136","refsource":"security-advisories@github.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-118776","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-118776","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"digitalbazaar","product":"forge","version":"affected < 1.4.1","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":{"cve_year":"2026","cve_id":"118776","cve":"CVE-2026-118776","epss":"0.001310000","percentile":"0.026550000","score_date":"2026-11-01","updated_at":"2026-11-02 00:05:54"},"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"adp":[{"metrics":[{"other":{"content":{"id":"CVE-2026-118776","options":[{"Exploitation":"poc"},{"Automatable":"no"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","timestamp":"2026-11-04T01:35:37.243713Z","version":"2.0.3"},"type":"ssvc"}}],"providerMetadata":{"dateUpdated":"2026-11-04T01:36:02.050Z","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","shortName":"CISA-ADP"},"references":[{"tags":["exploit"],"url":"https://github.com/digitalbazaar/forge/security/advisories/GHSA-2vgq-wchc-25w7"}],"title":"CISA ADP Vulnrichment"}],"cna":{"affected":[{"product":"forge","vendor":"digitalbazaar","versions":[{"status":"affected","version":"< 1.4.1"}]}],"descriptions":[{"lang":"en","value":"Forge (also called node-forge) is a native implementation of Transport Layer Security in JavaScript. Prior to 1.4.1, the affected implementation used decipher.finish(), CBC and ECB modes, PKCS#7 padding to process the relevant input or security decision. node-forge validated only the final byte of PKCS#7 padding during CBC and ECB decryption and accepted zero, oversized, or mismatched padding bytes. Malformed ciphertext could consequently be accepted and up to four plaintext blocks could be silently removed, causing an integrity failure in applications that treated successful decryption as proof of valid padding. This issue is fixed in version 1.4.1."}],"metrics":[{"cvssV3_1":{"attackComplexity":"HIGH","attackVector":"NETWORK","availabilityImpact":"NONE","baseScore":3.7,"baseSeverity":"LOW","confidentialityImpact":"NONE","integrityImpact":"LOW","privilegesRequired":"NONE","scope":"UNCHANGED","userInteraction":"NONE","vectorString":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N","version":"3.1"}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-20","description":"CWE-20: Improper Input Validation","lang":"en","type":"CWE"}]},{"descriptions":[{"cweId":"CWE-354","description":"CWE-354: Improper Validation of Integrity Check Value","lang":"en","type":"CWE"}]}],"providerMetadata":{"dateUpdated":"2026-10-29T18:37:32.362Z","orgId":"a0819718-46f1-4df5-94e2-005712e83aaa","shortName":"GitHub_M"},"references":[{"name":"https://github.com/digitalbazaar/forge/security/advisories/GHSA-2vgq-wchc-25w7","tags":["x_refsource_CONFIRM"],"url":"https://github.com/digitalbazaar/forge/security/advisories/GHSA-2vgq-wchc-25w7"},{"name":"https://github.com/digitalbazaar/forge/commit/81774ff99e2da64aec9a43591df45a360040c136","tags":["x_refsource_MISC"],"url":"https://github.com/digitalbazaar/forge/commit/81774ff99e2da64aec9a43591df45a360040c136"},{"name":"https://github.com/digitalbazaar/forge/releases/tag/v1.4.1","tags":["x_refsource_MISC"],"url":"https://github.com/digitalbazaar/forge/releases/tag/v1.4.1"}],"source":{"advisory":"GHSA-2vgq-wchc-25w7","discovery":"UNKNOWN"},"title":"Forge: Incomplete PKCS#7 padding validation in AES/DES CBC and ECB decryption"}},"cveMetadata":{"assignerOrgId":"a0819718-46f1-4df5-94e2-005712e83aaa","assignerShortName":"GitHub_M","cveId":"CVE-2026-118776","datePublished":"2026-10-29T18:37:32.362Z","dateReserved":"2026-10-28T19:20:05.018Z","dateUpdated":"2026-11-04T01:36:02.050Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-10-29 19:17:20","lastModifiedDate":"2026-11-04 02:17:15","problem_types":["CWE-20","CWE-354","CWE-20 CWE-20: Improper Input Validation","CWE-354 CWE-354: Improper Validation of Integrity Check Value"],"metrics":{"cvssMetricV31":[{"source":"security-advisories@github.com","type":"Secondary","cvssData":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N","baseScore":3.7,"baseSeverity":"LOW","attackVector":"NETWORK","attackComplexity":"HIGH","privilegesRequired":"NONE","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"NONE","integrityImpact":"LOW","availabilityImpact":"NONE"},"exploitabilityScore":2.2,"impactScore":1.4}],"ssvcV203":[{"source":"134c704f-9b21-4f2e-91b3-4a467353bcc0","ssvcData":{"timestamp":"2026-11-04T01:35:37.243713Z","id":"CVE-2026-118776","options":[{"exploitation":"poc"},{"automatable":"no"},{"technicalImpact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}]},"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"118776","Ordinal":"1","Title":"Forge: Incomplete PKCS#7 padding validation in AES/DES CBC and E","CVE":"CVE-2026-118776","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"118776","Ordinal":"1","NoteData":"Forge (also called node-forge) is a native implementation of Transport Layer Security in JavaScript. Prior to 1.4.1, the affected implementation used decipher.finish(), CBC and ECB modes, PKCS#7 padding to process the relevant input or security decision. node-forge validated only the final byte of PKCS#7 padding during CBC and ECB decryption and accepted zero, oversized, or mismatched padding bytes. Malformed ciphertext could consequently be accepted and up to four plaintext blocks could be silently removed, causing an integrity failure in applications that treated successful decryption as proof of valid padding. This issue is fixed in version 1.4.1.","Type":"Description","Title":"Forge: Incomplete PKCS#7 padding validation in AES/DES CBC and E"}]}}}