Description
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.
References8
- github.com/sanic-org/sanic/commit/47349d689d65fa1907977ac100e86…
- github.com/sanic-org/sanic/commit/9a95bb1c187558949606b915f5162…
- github.com/sanic-org/sanic/commit/a332796506c7c588b6930b02a8886…
- github.com/sanic-org/sanic/pull/3164
- github.com/sanic-org/sanic/pull/3165
- github.com/sanic-org/sanic/releases/tag/v24.12.1
- github.com/sanic-org/sanic/releases/tag/v25.12.1
- github.com/sanic-org/sanic/security/advisories/GHSA-m64h-22vf-4…
Metrics
- CVSS 3.1
-
8.2
HIGH
Score source: CNA
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:N - EPSS — exploit probability
- 0% percentile: 42 · as of 8 November 2026
- CWE
- CWE-113
Could this be exploited in your environment?
A patch closes the known hole. A penetration test shows what an attacker can still reach — with proof.