Medium

Cross-site scripting in Bleach

  • Disclosed: 02.02.2021
  • Updated: 11.10.2026 13:19

Impact

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

  • svg or math in the allowed tags
  • p or br in allowed tags
  • style, title, noscript, script, textarea, noframes, iframe, or xmp in allowed tags
  • the keyword argument strip_comments=False

Note: none of the above tags are in the default allowed tags and strip_comments defaults to True.

Patches

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

Note: bleach v3.3.0 introduces a breaking change to escape HTML comments by default.

Workarounds

  • modify bleach.clean calls to at least one of:

    • not allow the style, title, noscript, script, textarea, noframes, iframe, or xmp tag
    • not allow svg or math tags
    • not allow p or br tags
    • set strip_comments=True
  • A strong Content-Security-Policy without unsafe-inline and unsafe-eval script-srcs) will also help mitigate the risk.

References

Credits

  • Reported by Yaniv Nizry from the CxSCA AppSec group at Checkmarx
  • Additional eject tags not mentioned in the original advisory and the CSP mitigation line being truncated in the revised advisory reported by Michał Bentkowski at Securitum

For more information

If you have any questions or comments about this advisory:

Affected software

Click a technology to see all vulnerabilities affecting it.

PlatformPackageVulnerable versionsFixed in
Python (PyPI) bleach < 3.3.0 3.3.0

References

CVSS score 6.1/10
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
Weakness (CWE)
CWE-79
Platform
Python (PyPI)
Package
bleach
Disclosed
02.02.2021
Updated
11.10.2026 13:19

Sources and licenses

OSV / GitHub Advisory Database - PYSEC-2021-865 - PyPA Advisory Database; CC BY 4.0

OSV / GitHub Advisory Database - GHSA-vv2x-vrpj-qqpq - CC BY 4.0

Vulnerability history: bleach

All published vulnerabilities of this package (Python (PyPI)), newest first. Shows whether this is a one-off slip or a package that needs watching.

Total entries
8
First → latest
03.2018 06.2026
Without a fix
1
Exploited in attacks
0

Severity breakdown

  • Critical 1
  • High 1
  • Medium 5
  • Low 1

Disclosures per year

  1. 2018: 1
  2. 2019: 0
  3. 2020: 3
  4. 2021: 1
  5. 2022: 0
  6. 2023: 0
  7. 2024: 0
  8. 2025: 0
  9. 2026: 3
  1. Cross-site scripting in Bleach this entry
    Medium · 6.1 CVE-2021-23980 < 3.3.0 3.3.0
  2. High · 7.5 CVE-2020-6817 < 3.1.4 3.1.4
  3. Medium · 6.1 CVE-2020-6802 < 3.1.1 3.1.1
  4. Critical · 9.8 CVE-2018-7753 >= 2.1.0, < 2.1.3 2.1.3

Know which vulnerabilities affect your application

With the DockRay integration and software inventory enabled, DockRay checks reported component versions against known vulnerabilities and notifies you about confirmed matches. Coverage depends on the supported technology and available advisory data.

Connect your application
DockRay newsletter

Application security in your inbox

Important vulnerabilities, actionable guidance and practical advice for your applications. Choose your technologies and follow what matters to your project.

  • A daily digest of new vulnerabilities, critical ones included.
  • Notifications about important updates.
  • Practical advice on application security and monitoring.

Leave empty to receive updates for every technology.

Free to subscribe. Unsubscribe with one click in any email.