---
id: "CVE-2026-125333"
page: "https://infrastack.ai/live/CVE-2026-125333"
kind: "vulnerability"
aliases: ["CVE-2026-125333"]
title: "node-forge: crafted response headers can freeze Node.js event loop"
severity: "medium"
cvss: 5.9
epss: null
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["browser", "javascript", "node", "node-forge", "package"]
not_affected_if: ["no-forge-http", "no-socket-pool", "trusted-servers-only"]
published_at: "2026-11-10T19:21:10+00:00"
first_seen_at: "2026-11-10T19:25:14+00:00"
updated_at: "2026-11-10T19:59:55+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-125333", "first_seen_at": "2026-11-10T19:25:14+00:00"}]
exploit_sources: []
---

# node-forge: crafted response headers can freeze Node.js event loop

Link for people: https://infrastack.ai/live/CVE-2026-125333 (this .md is for agents)

node-forge's forge.http module uses a regular expression that scales quadratically when trimming response headers and cookies. A malicious server or on-path attacker can send a long whitespace run in a header, blocking the Node.js event loop or browser tab for minutes.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Check the installed version with `npm ls node-forge`
- Look for `forge.http` usage (for example `require('node-forge').http` or `forge.http.createSocketPool`) in your code and dependencies

## Fix

- node-forge: move to `1.4.3`

## Timeline

- 2026-11-10T19:25:14+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-125333

## Documents

- [advisory] Vendor advisory: github.com https://github.com/digitalbazaar/forge/security/advisories/GHSA-6cv4-p8m7-4r25
- [fix] Patch: github.com https://github.com/digitalbazaar/forge/commit/326a4d0903ee46358bc849a5c3fd96d9c21489bd
- [fix] Release notes: github.com https://github.com/digitalbazaar/forge/releases/tag/v1.4.3

## From the sources

Forge (also called node-forge) is a native implementation of Transport Layer Security in JavaScript. From 0.1.2 until 1.4.3, forge.http uses _trimString() in lib/http.js to remove trailing whitespace from response header values and cookie names and values with a regular expression that can take quadratic time. A malicious server or on-path attacker can supply a long whitespace run followed by a non-whitespace character in a response header, causing response.readHeader() or response.getCookies() to repeatedly scan the input and block the Node.js event loop or browser tab for minutes. Applications are affected only when they use forge.http with a socket pool to communicate with an untrusted server; forge.http is not loaded by require('node-forge'), and the issue has no confidentiality or integrity impact. This issue is fixed in version 1.4.3.

---

_Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai_
