CVE-2026-85077: Sanic: HTTP response header injection via missing CR/LF validation in Sanic HTTP/1.1 responses

Published Sep 17, 2026
·
Updated

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.

Affected Software

2 affected components
Sanic Sanic<24.12.1, =25.12.0
Sanic Sanic HTTP/1.1 responses<24.12.1, =25.12.0

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade sanic to a version that resolves this vulnerability.

    Fixed in 24.12.1
  2. Upgrade

    Upgrade sanic to a version that resolves this vulnerability.

    Fixed in 25.12.1

Event History

Sep 17, 2026
CVE Published
via MITRE·02:26 PM
Data Sourced
via MITRE·02:26 PM
DescriptionSeverityWeakness

Frequently Asked Questions

1

Which deployments are exposed to this issue?

Sanic applications using HTTP/1.1 responses are affected if they run a version before 24.12.1 or version 25.12.0. Exposure is especially relevant where attacker-controlled input can reach response headers, download filenames, or cookie path or domain attributes.

2

What does an attacker need to exploit it?

An attacker needs a way to supply carriage-return or line-feed characters in data that the application places into response.headers, file(..., filename=...), or cookie path or domain attributes. No authentication or user interaction is required according to the supplied severity vector.

3

Are default applications necessarily vulnerable?

The affected HTTP/1.1 response pipeline does not reject CR/LF characters, but exploitation depends on the application passing attacker-controlled data into the affected response fields. The provided information does not establish that every default Sanic application exposes such input paths.

4

What should be done if upgrading cannot happen immediately?

Ensure untrusted data cannot be used in response header names or values, file response filenames, or cookie path and domain attributes, and reject or remove carriage-return and line-feed characters from those values. Upgrade to Sanic 24.12.1 or 25.12.1 when possible.

5

How can teams determine whether they are affected?

Check whether the application serves HTTP/1.1 responses on a Sanic version before 24.12.1 or exactly 25.12.0. Review response construction for untrusted data reaching response.headers, file(..., filename=...), and cookie path or domain settings.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203