CVE-2020-5217
Last modified
CVE-2020-5217 is a medium-severity vulnerability rated 5.8/10 on the CVSS scale. In Secure Headers (RubyGem secure_headers), a directive injection vulnerability is present in versions before 3.8.0, 5.1.0, and 6.2.0. If user-supplied input was passed into append/override_content_security_policy_directives, a semicolon could be injected leading to directive injection. EPSS estimates a 1.81% chance of exploitation in the next 30 days.
Description
In Secure Headers (RubyGem secure_headers), a directive injection vulnerability is present in versions before 3.8.0, 5.1.0, and 6.2.0. If user-supplied input was passed into append/override_content_security_policy_directives, a semicolon could be injected leading to directive injection. This could be used to e.g. override a script-src directive. Duplicate directives are ignored and the first one wins. The directives in secure_headers are sorted alphabetically so they pretty much all come before script-src. A previously undefined directive would receive a value even if SecureHeaders::OPT_OUT was supplied. The fixed versions will silently convert the semicolons to spaces and emit a deprecation warning when this happens. This will result in innocuous browser console messages if being exploited/accidentally used. In future releases, we will raise application errors resulting in 500s. Depending on what major version you are using, the fixed versions are 6.2.0, 5.1.0, 3.8.0.
Metrics
Weakness Enumeration
Affected Software
| Vendor | Product | Versions |
|---|---|---|
| Secure Headers | < 3.8.0 | |
| Secure Headers | >= 5.0.0, < 5.1.0 | |
| Secure Headers | >= 6.0.0, < 6.2.0 |
References
- https://github.com/twitter/secure_headers/issues/418Exploit, Third Party Advisory
- https://github.com/twitter/secure_headers/pull/421Third Party Advisory
- https://github.com/twitter/secure_headers/security/advisories/GHSA-xq52-rv6w-397cMitigation, Third Party Advisory
- https://github.com/twitter/secure_headers/issues/418Exploit, Third Party Advisory
- https://github.com/twitter/secure_headers/pull/421Third Party Advisory
- https://github.com/twitter/secure_headers/security/advisories/GHSA-xq52-rv6w-397cMitigation, Third Party Advisory
Timeline
- Published
- Last Modified
- Status
- Modified
Frequently Asked Questions
What is CVE-2020-5217?
How severe is CVE-2020-5217?
How do I fix CVE-2020-5217?
How Strix Helps
- How Strix found a critical auth bypass in etcdStrix autonomously discovered a critical authentication bypass in etcd, later designated CVE-2026-33413.
- Autonomous PentestingAI agents that find and validate exploitable vulnerabilities like this one across your applications.
- PR ReviewsPentest every pull request so vulnerable code is caught before it ships to production.
- AI Penetration TestingHow AI-driven penetration testing continuously covers your attack surface.
Related CVEs from 2020
- CVE-2020-5211In NetHack before 3.6.5, an invalid extended command in valu…9.8
- CVE-2020-5212In NetHack before 3.6.5, an extremely long value for the MEN…9.8
- CVE-2020-5213In NetHack before 3.6.5, too long of a value for the SYMBOL …9.8
- CVE-2020-5214In NetHack before 3.6.5, detecting an unknown configuration …9.8
- CVE-2020-5215In TensorFlow before 1.15.2 and 2.0.1, converting a string (…7.5
- CVE-2020-5216In Secure Headers (RubyGem secure_headers), a directive inje…5.8
- CVE-2020-5218Affected versions of Sylius give attackers the ability to sw…4.3
- CVE-2020-5219Angular Expressions before version 1.0.1 has a remote code e…8.8
- CVE-2020-5220Sylius ResourceBundle accepts and uses any serialisation gro…5.3
- CVE-2020-5221In uftpd before 2.11, it is possible for an unauthenticated …7.2
- CVE-2020-5222Opencast before 7.6 and 8.1 enables a remember-me cookie bas…8.8
- CVE-2020-5223In PrivateBin versions 1.2.0 before 1.2.2, and 1.3.0 before …4.4
Are you affected by CVE-2020-5217?
Run a free Strix scan to check your systems for this vulnerability.
Scan your code nowSource: NVD / NIST
