GHSA-m6xf-fq7q-8743

Suggest an improvement
Source
https://github.com/advisories/GHSA-m6xf-fq7q-8743
Import Source
https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2020/03/GHSA-m6xf-fq7q-8743/GHSA-m6xf-fq7q-8743.json
JSON Data
https://api.osv.dev/v1/vulns/GHSA-m6xf-fq7q-8743
Aliases
Published
2020-03-24T15:06:32Z
Modified
2024-09-12T21:27:03.726600Z
Severity
  • 6.1 (Medium) CVSS_V3 - CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N CVSS Calculator
  • 5.3 (Medium) CVSS_V4 - CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N CVSS Calculator
Summary
Bleach vulnerable to mutation XSS via whitelisted math or svg and raw tag
Details

Impact

A mutation XSS affects users calling bleach.clean with all of:

  • the svg or math in the allowed/whitelisted tags
  • an RCDATA tag (see below) in the allowed/whitelisted tags
  • the keyword argument strip=False

Patches

Users are encouraged to upgrade to bleach v3.1.2 or greater.

Workarounds

  • modify bleach.clean calls to use strip=True, or not whitelist math or svg tags and one or more of the following tags:

    script
    noscript
    style
    noframes
    xmp
    noembed
    iframe
    
  • A strong Content-Security-Policy without unsafe-inline and unsafe-eval script-srcs) will also help mitigate the risk.

References

  • https://bugzilla.mozilla.org/show_bug.cgi?id=1621692
  • https://cure53.de/fp170.pdf
  • https://nvd.nist.gov/vuln/detail/CVE-2020-6816
  • https://www.checkmarx.com/blog/vulnerabilities-discovered-in-mozilla-bleach

Credits

  • Reported by Yaniv Nizry from the CxSCA AppSec group at Checkmarx

For more information

If you have any questions or comments about this advisory:

References

Affected packages

PyPI / bleach

Package

Affected ranges

Type
ECOSYSTEM
Events
Introduced
0Unknown introduced version / All previous versions are affected
Fixed
3.1.2

Affected versions

0.*

0.1
0.1.1
0.1.2
0.2
0.2.1
0.2.2
0.3
0.3.1
0.3.3
0.3.4
0.5.0
0.5.1

1.*

1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.1.0
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.2
1.2.1
1.2.2
1.4
1.4.1
1.4.2
1.4.3
1.5.0

2.*

2.0.0
2.1
2.1.1
2.1.2
2.1.3
2.1.4

3.*

3.0.0
3.0.1
3.0.2
3.1.0
3.1.1