CVE-2026-85078: sanic chunked trailer request smuggling allows hidden second request execution
Sanic is an opensource python web server/framework. In version 25.12.0, Sanic's core HTTP/1.1 chunked-body handling does not fully consume the trailer-part after the terminating zero chunk before reusing the keep-alive connection buffer. A remote unauthenticated client can place attacker-controlled bytes in that trailer region, causing Sanic to parse and route them as a hidden second request after the outer request. This breaks HTTP request-boundary integrity and can provide a request-smuggling primitive when Sanic is deployed behind intermediaries. This issue is fixed in version 25.12.1.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
sanicto a version that resolves this vulnerability.Fixed in 25.12.1
Event History
Frequently Asked Questions
Which deployments are most exposed to this issue?
Sanic deployments that accept HTTP/1.1 chunked requests over reusable keep-alive connections are affected. The issue can provide a request-smuggling primitive when Sanic is deployed behind intermediaries.
Does exploitation require authentication or user interaction?
No. A remote unauthenticated client can exploit the issue, and no user interaction is required.
What does an attacker need to send?
The attacker needs to send an HTTP/1.1 chunked-body request with attacker-controlled bytes in the trailer region after the terminating zero chunk. Those bytes may be retained in the keep-alive connection buffer and parsed as a second request.
What version fixes the issue?
Sanic 25.12.1 fixes the issue. Version 25.12.0 is identified as affected.