Versions of the package black before 24.3.0 are vulnerable to Regular Expression Denial of Service (ReDoS) via the lines_with_leading_tabs_expanded function in the strings.py file. An attacker could exploit this vulnerability by crafting a malicious input that causes a denial of service. Exploiting this vulnerability is possible when running Black on untrusted input, or if you habitually put thousands of leading tab characters in your docstrings.
The product uses a regular expression with an inefficient, possibly exponential worst-case computational complexity that consumes excessive CPU cycles.
Name | Vendor | Start Version | End Version |
---|---|---|---|
Red Hat Ansible Automation Platform 2.4 for RHEL 8 | RedHat | python3x-black-0:22.8.0-2.el8ap | * |
Red Hat Ansible Automation Platform 2.4 for RHEL 9 | RedHat | python-black-0:22.8.0-2.el9ap | * |
Black | Ubuntu | mantic | * |
Attackers can create crafted inputs that
intentionally cause the regular expression to use
excessive backtracking in a way that causes the CPU
consumption to spike.