Cross-site scripting via unescaped long header
Published Jun 26, 2024 · Updated Dec 31, 2024
Cross-site scripting in Django REST framework before 3.15.2 allows remote attackers to inject script through long browsable-API headers. The break_long_headers filter marks generated HTML as safe after splitting an unescaped header value and inserting br elements, so attacker-controlled markup remains executable. Exploitation requires an application to place attacker-controlled data in a header longer than 160 characters and a user to view that response in the browsable API; script then runs in that user’s browser context.
Summary
What happened
Cross-site scripting in Django REST framework before 3.15.2 allows remote attackers to inject script through long browsable-API headers. The break_long_headers filter marks generated HTML as safe after splitting an unescaped header value and inserting br elements, so attacker-controlled markup remains executable. Exploitation requires an application to place attacker-controlled data in a header longer than 160 characters and a user to view that response in the browsable API; script then runs in that user’s browser context.
The record
- CVE
- CVE-2024-21520
- Published
- Jun 26, 2024
- Updated
- Dec 31, 2024
- Vendor
- Django REST framework
- Product
- Django REST framework
- Classifications
- CWE-79, T1203
- Attack vector
- network
- Privileges
- unauthenticated
Timeline
How it unfolded
- Jun 26, 2024CVE publishedPublication date reported by the CVE source.
- Dec 31, 2024Record updatedLatest update available in the CVE record.
Exploitability
Present is not the same as exploitable
Compare your product and version with the public record. A matching version still requires validation against your environment.
Is a vulnerable build present?
Compare these published version ranges with your installed build and any vendor patches.
- Affected versionversion=0 <3.15.2
What conditions does exploitation require?
What is affected?
Attacks
What attackers are doing with it
Daily unique IPs observed by Shadowserver honeypots for known exploited vulnerabilities (KEVs). Missing observations do not establish an absence of attacks.
Weakness, pattern, technique
Public exploit references
- Snyk break_long_headers proof of conceptproof of concept · demonstrated
Labels summarize the accepted research assessment. They do not indicate a test against your environment.
Technologies
Your stack
See the directory against your own environment.
Your stack
Check the software in your environment
Book a demo to see how Hinoki identifies affected software and validates exploitability in your environment.
Book a demo