Forge: Denial of service in TLS record processing via a record interleaved with a fragmented handshake message
CVE-2026-119188
Summary A connection created with forge.tls.createConnection() throws an uncaught TypeError from process() when it receives a record of another content type while waiting for the rest of a handshake message that was split across records. A peer can trigger this with 18 bytes before the handshake, without authentication, which terminates Node.js processes that use the documented socket wiring. Fixed in node-forge 1.4.1. Details In lib/tls.js, readRecord() handles a record that arrives while a handshake message split across records is incomplete. If the record has any other content type (changecipherspec, alert, applicationdata or heartbeat), forge correctly reports "Invalid fragmented record." through c.error() with a fatal unexpectedmessage alert. That fatal error closes and resets the connection, which sets c.record to null. readRecord() then continues with c.record.ready = true and throws TypeError: Cannot set properties of null (setting 'ready') out of process(). The code is unchanged since the first release. RFC 5246 section 6.2.1 allows a handshake message to be fragmented across records, and RFC 8446 section 5.1 forbids interleaving handshake messages with other record…
Assessment
- CVSS
- 7.5 (v3.1)
- Severity
- High
- EPSS
- 0.00411% chance of exploitation in the next 30 days
- Known exploited
- Not listed in CISA KEV
- Exploit availability
- Nothing found in Exploit-DB, Metasploit, Nuclei or public PoC repositories
- Published
- 30 October 2026
- Last updated
- 30 October 2026
- Affected
- npm · node-forge
- Weakness
- CWE-248, CWE-476
CVSS vectorCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
At the source
References
- https://github.com/digitalbazaar/forge/security/advisories/GHSA-8hrf-8g6f-7xwp
- https://nvd.nist.gov/vuln/detail/CVE-2026-119188
- https://github.com/digitalbazaar/forge/commit/700d977d39f9f8f896c55b0763eebb940a2c087e
- https://github.com/digitalbazaar/forge/releases/tag/v1.4.1
- https://github.com/advisories/GHSA-8hrf-8g6f-7xwp
Query this programmatically
Agents can read this through the MCP endpoint, or over HTTP:
curl https://cve.zerocrew.in/api/cve/CVE-2026-119188