regular expression denial-of-service (ReDoS) in Bleach

2020-03-30T19:45:56
ID GHSA-VQHP-CXGC-6WMM
Type github
Reporter GitHub Advisory Database
Modified 2020-06-17T16:13:30

Description

Impact

bleach.clean behavior parsing style attributes could result in a regular expression denial of service (ReDoS).

Calls to bleach.clean with an allowed tag with an allowed style attribute are vulnerable to ReDoS. For example, bleach.clean(..., attributes={'a': ['style']}).

Patches

3.1.4

Workarounds

  • do not whitelist the style attribute in bleach.clean calls

  • limit input string length

References

  • https://bugzilla.mozilla.org/show_bug.cgi?id=1623633
  • https://www.regular-expressions.info/redos.html
  • https://blog.r2c.dev/posts/finding-python-redos-bugs-at-scale-using-dlint-and-r2c/
  • https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-6817

Credits

  • Reported by schwag09 of r2c

For more information

If you have any questions or comments about this advisory:

  • Open an issue at https://github.com/mozilla/bleach/issues
  • Email us at security@mozilla.org