-
-
Notifications
You must be signed in to change notification settings - Fork 732
Comparing changes
Open a pull request
base repository: nodejs/undici
base: v6.23.0
head repository: nodejs/undici
compare: v6.24.0
- 12 commits
- 32 files changed
- 4 contributors
Commits on Mar 12, 2026
-
fix(websocket): add maxDecompressedMessageSize limit for permessage-d…
…eflate Add protection against decompression bomb attacks in WebSocket permessage-deflate extension. A malicious server could send a small compressed payload that expands to an extremely large size, causing memory exhaustion. Changes: - Add maxDecompressedMessageSize option to WebSocket constructor - Default limit: 4 MB - Abort decompression immediately when limit exceeded - Close connection with status code 1009 (Message Too Big) - Add MessageSizeExceededError (UND_ERR_WS_MESSAGE_SIZE_EXCEEDED) - Add comprehensive tests for the new limit behavior - Update TypeScript types and documentation Signed-off-by: Matteo Collina <[email protected]> (cherry picked from commit 2ee00cb)
Configuration menu - View commit details
-
Copy full SHA for 4b4f93a - Browse repository at this point
Copy the full SHA 4b4f93aView commit details -
fix: validate server_max_window_bits range in permessage-deflate
The isValidClientWindowBits() function only checked for ASCII digits, allowing out-of-range values like "1000" to pass validation. When these values were passed to zlib's createInflateRaw(), it threw an unhandled RangeError that crashed the process. Changes: - Update isValidClientWindowBits() to validate range 8-15 (per RFC 7692) - Add try-catch around createInflateRaw() as defense in depth - Add comprehensive tests for windowBits validation (cherry picked from commit cb79c57)
Configuration menu - View commit details
-
Copy full SHA for e9e2997 - Browse repository at this point
Copy the full SHA e9e2997View commit details -
fix: validate upgrade header to prevent CRLF injection
Add validation for the upgrade option in Request constructor using isValidHeaderValue() to prevent CRLF injection attacks that could enable protocol smuggling to internal services. Signed-off-by: Matteo Collina <[email protected]> Co-Authored-By: Ulises Gascón <[email protected]> Signed-off-by: Ulises Gascón <[email protected]> (cherry picked from commit 77594f9)
Configuration menu - View commit details
-
Copy full SHA for e43e898 - Browse repository at this point
Copy the full SHA e43e898View commit details -
Fix websocket 64-bit length overflow
Signed-off-by: Matteo Collina <[email protected]> (cherry picked from commit 84235c6)
Configuration menu - View commit details
-
Copy full SHA for 5a97f08 - Browse repository at this point
Copy the full SHA 5a97f08View commit details -
fix: reject duplicate content-length and host headers
When headers are passed as an array, reject duplicate content-length and host headers regardless of casing. This prevents malformed HTTP/1.1 requests with multiple Content-Length values from being sent on the wire. Previously, case-variant duplicates (e.g., 'Content-Length' and 'content-length') would bypass the duplicate check, resulting in ambiguous HTTP requests that could be interpreted inconsistently by proxies and backends. Signed-off-by: Matteo Collina <[email protected]> (cherry picked from commit 74495c6)
Configuration menu - View commit details
-
Copy full SHA for 4e0179a - Browse repository at this point
Copy the full SHA 4e0179aView commit details -
fix: adapt websocket frame-limit handling for v6 parser
Signed-off-by: Matteo Collina <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 7df6442 - Browse repository at this point
Copy the full SHA 7df6442View commit details -
test: increase bitness in
test/fixtures/*.pem(#3659)(cherry picked from commit e04abdd)
Configuration menu - View commit details
-
Copy full SHA for 4cd3f4b - Browse repository at this point
Copy the full SHA 4cd3f4bView commit details -
* test: fix key-size pem errors * chore: use @metcoder95/https-pem * fix: ci * fix: ci (cherry picked from commit 8dd120e)
Configuration menu - View commit details
-
Copy full SHA for dc032a1 - Browse repository at this point
Copy the full SHA dc032a1View commit details -
test: stabilize h2 and tls-cert-leak under current test runner
Signed-off-by: Matteo Collina <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for a444e4f - Browse repository at this point
Copy the full SHA a444e4fView commit details -
test: fix http2 lint regressions in backport
Signed-off-by: Matteo Collina <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 844bf59 - Browse repository at this point
Copy the full SHA 844bf59View commit details -
test(websocket): use node:assert for Node 18 compatibility
Signed-off-by: Matteo Collina <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 411bd01 - Browse repository at this point
Copy the full SHA 411bd01View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8873c94 - Browse repository at this point
Copy the full SHA 8873c94View commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff v6.23.0...v6.24.0