Black vulnerable to Regular Expression Denial of Service (ReDoS)
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.
Affected software
Click a technology to see all vulnerabilities affecting it.
| Platform | Package | Vulnerable versions | Fixed in |
|---|---|---|---|
| Python (PyPI) | black | < 24.3.0 | 24.3.0 |
References
- https://security.snyk.io/vuln/SNYK-PYTHON-BLACK-6256273
- https://github.com/psf/black/releases/tag/24.3.0
- https://github.com/psf/black/commit/f00093672628d212b8965a8993cee8bedf5fe9b8
- https://github.com/advisories/GHSA-fj7x-q9j7-g6q6
- https://nvd.nist.gov/vuln/detail/CVE-2024-21503
- https://github.com/psf/black
- https://github.com/pypa/advisory-database/tree/main/vulns/black/PYSEC-2024-48.yaml
- CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L- Weakness (CWE)
CWE-1333, CWE-75- Platform
- Python (PyPI)
- Package
black- Disclosed
- 19.03.2024
- Updated
- 11.10.2026 15:17
Sources and licenses
OSV / GitHub Advisory Database - PYSEC-2024-48 - PyPA Advisory Database; CC BY 4.0
OSV / GitHub Advisory Database - GHSA-fj7x-q9j7-g6q6 - CC BY 4.0
Vulnerability history: black
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
- 3
- First → latest
- 03.2024 03.2026
- Without a fix
- 0
- Exploited in attacks
- 0
Severity breakdown
- Critical 1
- High 1
- Medium 1
Disclosures per year
- 2024: 1
- 2025: 0
- 2026: 2
-
Black vulnerable to Regular Expression Denial of Service (ReDoS) this entry
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.