Every CVE Search/ Get API key

CVE-2026-44546

Header injection via WebSocket upgrade parser differential allows ASGI scope header spoofing

3.7 LowFix available

daphne before 4.2.2 reconstructs a raw HTTP request from Twisted's parsed headers and feeds it to autobahn for WebSocket handshake processing. Twisted does not treat \x0b, \x0c, \x1c, \x1d, \x1e, or \x85 as header line separators, but autobahn decodes header values to str and calls splitlines(). An attacker can exploit this parser differential to inject additional headers into the ASGI scope passed to the application. daphne now rejects requests with these bytes in any header value with a 400 response.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
High
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
Low
Integrity
None
Availability
None

Exploit likelihood

0.17%Up 0.1 points since Jun 4, 2026
90%50%10%1%

What each source reports

CVE List Score used 3.7

Header injection via WebSocket upgrade parser differential allows ASGI scope header spoofing

daphne before 4.2.2 reconstructs a raw HTTP request from Twisted's parsed headers and feeds it to autobahn for WebSocket handshake processing. Twisted does not treat \x0b, \x0c, \x1c, \x1d, \x1e, or \x85 as header line separators, but autobahn decodes header values to str and calls splitlines(). An attacker can exploit this parser differential to inject additional headers into the ASGI scope passed to the application. daphne now rejects requests with these bytes in any header value with a 400 response.

Record
CVE-2026-44546
CVSS 3.1
3.7 LowCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N
Weakness
CWE-444
Updated
2026-11-02
EUVDEUVD-2026-34092 3.7

daphne before 4.2.2 reconstructs a raw HTTP request from Twisted's parsed headers and feeds it to autobahn for WebSocket handshake processing. Twisted does not treat \x0b, \x0c, \x1c, \x1d, \x1e, or \x85 as header line separators, but autobahn decodes header values to str and calls splitlines(). An attacker can exploit this parser differential to inject additional headers into the ASGI scope passed to the application. daphne now rejects requests with these bytes in any header value with a 400 response.

Record
EUVD-2026-34092
CVSS 3.1
3.7 LowCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N
Updated
2026-11-02
GitHub AdvisoriesGHSA-xh68-hfp5-5x5m 3.7

daphne: WebSocket handshake header smuggling through autobahn splitlines() mishandling of non-standard line separators

daphne before 4.2.2 reconstructs a raw HTTP request from Twisted's parsed headers and feeds it to autobahn for WebSocket handshake processing. Twisted does not treat \x0b, \x0c, \x1c, \x1d, \x1e, or \x85 as header line separators, but autobahn decodes header values to str and calls splitlines(). An attacker can exploit this parser differential to inject additional headers into the ASGI scope passed to the application. daphne now rejects requests with these bytes in any header value with a 400 response.

Record
GHSA-xh68-hfp5-5x5m
CVSS 3.1
3.7 LowCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N
Weakness
CWE-444
Updated
2026-11-02
NVD 3.7

daphne before 4.2.2 reconstructs a raw HTTP request from Twisted's parsed headers and feeds it to autobahn for WebSocket handshake processing. Twisted does not treat \x0b, \x0c, \x1c, \x1d, \x1e, or \x85 as header line separators, but autobahn decodes header values to str and calls splitlines(). An attacker can exploit this parser differential to inject additional headers into the ASGI scope passed to the application. daphne now rejects requests with these bytes in any header value with a 400 response.

Record
CVE-2026-44546
CVSS 3.1
3.7 LowCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N
CVSS 3.1
5.3 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
Weakness
CWE-444
Updated
2026-11-02
OSVALPINE-CVE-2026-44546 5.3

daphne before 4.2.2 reconstructs a raw HTTP request from Twisted's parsed headers and feeds it to autobahn for WebSocket handshake processing. Twisted does not treat \x0b, \x0c, \x1c, \x1d, \x1e, or \x85 as header line separators, but autobahn decodes header values to str and calls splitlines(). An attacker can exploit this parser differential to inject additional headers into the ASGI scope passed to the application. daphne now rejects requests with these bytes in any header value with a 400 response.

Record
ALPINE-CVE-2026-44546
CVSS 3.1
5.3 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
Updated
2026-11-03
OSV 3.7

Header injection via WebSocket upgrade parser differential allows ASGI scope header spoofing

daphne before 4.2.2 reconstructs a raw HTTP request from Twisted's parsed headers and feeds it to autobahn for WebSocket handshake processing. Twisted does not treat \x0b, \x0c, \x1c, \x1d, \x1e, or \x85 as header line separators, but autobahn decodes header values to str and calls splitlines(). An attacker can exploit this parser differential to inject additional headers into the ASGI scope passed to the application. daphne now rejects requests with these bytes in any header value with a 400 response.

Record
CVE-2026-44546
CVSS 3.1
3.7 LowCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N
Weakness
CWE-444
Updated
2026-11-02
Show 4 moreShow less
OSVDEBIAN-CVE-2026-44546 5.3

daphne before 4.2.2 reconstructs a raw HTTP request from Twisted's parsed headers and feeds it to autobahn for WebSocket handshake processing. Twisted does not treat \x0b, \x0c, \x1c, \x1d, \x1e, or \x85 as header line separators, but autobahn decodes header values to str and calls splitlines(). An attacker can exploit this parser differential to inject additional headers into the ASGI scope passed to the application. daphne now rejects requests with these bytes in any header value with a 400 response.

Record
DEBIAN-CVE-2026-44546
CVSS 3.1
5.3 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
Updated
2026-11-02
OSVGHSA-xh68-hfp5-5x5m 3.7

daphne: WebSocket handshake header smuggling through autobahn splitlines() mishandling of non-standard line separators

daphne before 4.2.2 reconstructs a raw HTTP request from Twisted's parsed headers and feeds it to autobahn for WebSocket handshake processing. Twisted does not treat \x0b, \x0c, \x1c, \x1d, \x1e, or \x85 as header line separators, but autobahn decodes header values to str and calls splitlines(). An attacker can exploit this parser differential to inject additional headers into the ASGI scope passed to the application. daphne now rejects requests with these bytes in any header value with a 400 response.

Record
GHSA-xh68-hfp5-5x5m
CVSS 3.1
3.7 LowCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N
Weakness
CWE-444
Updated
2026-11-02
OSVPYSEC-2026-214 5.3

daphne before 4.2.2 reconstructs a raw HTTP request from Twisted's parsed headers and feeds it to autobahn for WebSocket handshake processing. Twisted does not treat \x0b, \x0c, \x1c, \x1d, \x1e, or \x85 as header line separators, but autobahn decodes header values to str and calls splitlines(). An attacker can exploit this parser differential to inject additional headers into the ASGI scope passed to the application. daphne now rejects requests with these bytes in any header value with a 400 response.

Record
PYSEC-2026-214
CVSS 3.1
5.3 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
Updated
2026-11-02
OSVUBUNTU-CVE-2026-44546 3.7

daphne before 4.2.2 reconstructs a raw HTTP request from Twisted's parsed headers and feeds it to autobahn for WebSocket handshake processing. Twisted does not treat \x0b, \x0c, \x1c, \x1d, \x1e, or \x85 as header line separators, but autobahn decodes header values to str and calls splitlines(). An attacker can exploit this parser differential to inject additional headers into the ASGI scope passed to the application. daphne now rejects requests with these bytes in any header value with a 400 response.

Record
UBUNTU-CVE-2026-44546
CVSS 3.1
3.7 LowCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N
CVSS 3.1
5.3 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
daphne
PyPI
before 4.2.2
4.2.2
py3-daphne
Alpine:v3.24
before 4.2.3-r0
4.2.3-r0
python-daphne
Debian:12
All versions, plus listed versions
4.0.0-14.1.2-14.1.2-24.2.1-14.2.1-24.2.2-0.14.2.3-1
None known
python-daphne
Debian:13
before 4.1.2-2+deb13u1, plus listed versions
4.1.2-2
4.1.2-2+deb13u1
python-daphne
Debian:14
before 4.2.2-0.1, plus listed versions
4.1.2-24.2.1-14.2.1-2
4.2.2-0.1
daphne
PyPI
before 4.2.2, plus listed versions
0.10.00.10.10.10.20.10.30.11.0
Show 45 moreShow less
0.11.10.11.20.11.30.12.00.12.10.12.20.13.00.13.10.14.00.14.10.14.20.14.30.15.00.8.10.8.20.90.9.10.9.20.9.31.0.01.0.11.0.21.0.31.1.01.2.01.3.01.4.01.4.11.4.22.0.02.0.12.0.22.0.32.0.42.1.02.1.12.1.22.2.02.2.12.2.22.2.32.2.42.2.52.3.02.4.0
4.2.2
python-daphne
Ubuntu:18.04:LTS
All versions, plus listed versions
1.4.2-1
None known
python-daphne
Ubuntu:20.04:LTS
All versions, plus listed versions
2.3.0-12.4.0-12.4.1-1
None known
python-daphne
Ubuntu:22.04:LTS
All versions, plus listed versions
3.0.1-13.0.2-1
None known
python-daphne
Ubuntu:24.04:LTS
All versions, plus listed versions
4.0.0-1
None known
python-daphne
Ubuntu:25.10
All versions, plus listed versions
4.1.2-2
None known
python-daphne
Ubuntu:26.10
All versions, plus listed versions
4.2.1-24.2.2-0.14.2.3-1
None known
python-daphne
Ubuntu:26.04:LTS
All versions, plus listed versions
4.1.2-24.2.1-14.2.1-2
None known

History

History
RecordedChangedSources
affected, aliases, referencesOSV
first indexedCVE List, EUVD, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2026-44546 is a low vulnerability (CVSS 3.7) in Djangoproject Daphne, published June 3, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.17%, the 6th percentile. Fixed in daphne 4.2.2.

References

Show 5 moreShow less
This page doesn't list everything

Left out here: 12 versions. The JSON record has them.

MoveEnter Open