Moderate severityNVD Advisory· Published Feb 16, 2023· Updated Mar 10, 2025
CRLF Injection in Nodejs ‘undici’ via host
CVE-2023-23936
Description
Undici is an HTTP/1.1 client for Node.js. Starting with version 2.0.0 and prior to version 5.19.1, the undici library does not protect host HTTP header from CRLF injection vulnerabilities. This issue is patched in Undici v5.19.1. As a workaround, sanitize the headers.host string before passing to undici.
Affected packages
Versions sourced from the GitHub Security Advisory.
| Package | Affected versions | Patched versions |
|---|---|---|
undicinpm | >= 2.0.0, < 5.19.1 | 5.19.1 |
Affected products
1Patches
1a2eff0540135Merge pull request from GHSA-5r9g-qh6m-jxff
2 files changed · +40 −0
lib/core/request.js+3 −0 modified@@ -304,6 +304,9 @@ function processHeader (request, key, val) { key.length === 4 && key.toLowerCase() === 'host' ) { + if (headerCharRegex.exec(val) !== null) { + throw new InvalidArgumentError(`invalid ${key} header`) + } // Consumed by Client request.host = val } else if (
test/headers-crlf.js+37 −0 added@@ -0,0 +1,37 @@ +'use strict' + +const { test } = require('tap') +const { Client } = require('..') +const { createServer } = require('http') +const EE = require('events') + +test('CRLF Injection in Nodejs ‘undici’ via host', (t) => { + t.plan(1) + + const server = createServer(async (req, res) => { + res.end() + }) + t.teardown(server.close.bind(server)) + + server.listen(0, async () => { + const client = new Client(`http://localhost:${server.address().port}`) + t.teardown(client.close.bind(client)) + + const unsanitizedContentTypeInput = '12 \r\n\r\naaa:aaa' + + try { + const { body } = await client.request({ + path: '/', + method: 'POST', + headers: { + 'content-type': 'application/json', + 'host': unsanitizedContentTypeInput + }, + body: 'asd' + }) + await body.dump() + } catch (err) { + t.same(err.code, 'UND_ERR_INVALID_ARG') + } + }) +})
Vulnerability mechanics
Generated by null/stub on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.
References
6- github.com/advisories/GHSA-5r9g-qh6m-jxffghsaADVISORY
- nvd.nist.gov/vuln/detail/CVE-2023-23936ghsaADVISORY
- github.com/nodejs/undici/commit/a2eff05401358f6595138df963837c24348f2034ghsax_refsource_MISCWEB
- github.com/nodejs/undici/releases/tag/v5.19.1ghsax_refsource_MISCWEB
- github.com/nodejs/undici/security/advisories/GHSA-5r9g-qh6m-jxffghsax_refsource_CONFIRMWEB
- hackerone.com/reports/1820955ghsax_refsource_MISCWEB
News mentions
0No linked articles in our index yet.