CVE-2026-85078
MediumCVSS 6.5Summary
In Sanic version 25.12.0, 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, which Sanic parses and routes as a hidden second request. This breaks HTTP request-boundary integrity and can provide a request-smuggling primitive when Sanic is deployed behind intermediaries.
Risk Assessment
The vulnerability may allow an attacker to bypass intermediary security controls such as WAFs or proxies and reach internal resources. This can lead to unauthorized access or cache poisoning.
Recommendation
Upgrade Sanic to version 25.12.1 or later. Until patched, consider limiting trust in headers forwarded by intermediaries.
Other vulnerabilities in Sanic
See all- CVE-2026-85077High
Sanic is an opensource python web server/framework. Prior to version 24.12.1, and in version 25.12.0, the HTTP/1.1 response pipeline in sanic/response/types.py serializes response header names and values without rejecting carriage-return or line-feed characters. Applications that place attacker-controlled data in response.headers, file(..., filename=...), or cookie path and domain attributes can therefore emit injected headers and may split responses. Depending on application and proxy behavior, this can enable session fixation through injected cookies, cache poisoning, or security-header corruption. This issue is fixed in versions 24.12.1 and 25.12.1.
- CVE-2017-16762High
Sanic versions before 0.5.1 allow reading arbitrary files through directory traversal, as demonstrated by the /static/..%2f substring.
Original NVD description (English source)
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.

