---
id: CVE-2026-118776
title: 'Forge: Incomplete PKCS#7 padding validation in AES/DES CBC and ECB decryption'
summary: >-
  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 s…
severity: low
cvss: 3.7
cvssVector: 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N'
cvssSource: cna
cwe:
  - CWE-20
  - CWE-354
vendor: digitalbazaar
product: forge
affected:
  - forge < 1.4.1
ssvc:
  exploitation: poc
  automatable: 'no'
  technicalImpact: partial
  timestamp: '2026-11-04T01:35:37.243713Z'
exploitAvailable: true
published: '2026-10-29'
updated: '2026-11-04'
sourceUpdated: '2026-11-04T01:36:02.050Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-118776'
references:
  - url: >-
      https://github.com/digitalbazaar/forge/security/advisories/GHSA-2vgq-wchc-25w7
    label: >-
      https://github.com/digitalbazaar/forge/security/advisories/GHSA-2vgq-wchc-25w7
  - url: >-
      https://github.com/digitalbazaar/forge/commit/81774ff99e2da64aec9a43591df45a360040c136
    label: >-
      https://github.com/digitalbazaar/forge/commit/81774ff99e2da64aec9a43591df45a360040c136
  - url: 'https://github.com/digitalbazaar/forge/releases/tag/v1.4.1'
    label: 'https://github.com/digitalbazaar/forge/releases/tag/v1.4.1'
tags:
  - cve.org
  - exploit-available
epss: 0.00131
epssPercentile: 0.0269
exploits:
  github: 1
  githubRepos:
    - 'https://github.com/zebbernCVE/CVE-2026-118776'
  checkedAt: '2026-11-05T20:33:42.477Z'
ingestedAt: '2026-11-01T23:03:55.430Z'
---

## Overview

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.

## Affected

- `forge < 1.4.1`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
