CVE-2026-84305
sqlparse is a non-validating SQL parser module for Python. Prior to 0.6.0, sqlparse.format(sql, reindent=True) and sqlformat --reindent route attacker-controlled parenthesized tuple lists through ReindentFilter._get_offset() in sqlparse/filters/reindent.py, where _flatten_up_to_token() repeatedly rebuilds and joins the statement prefix. Thousands of offset calculations walk an expanding token tree, producing quadratic CPU consumption for inputs that remain below MAX_GROUPING_TOKENS and causing request delays, reduced throughput, or worker starvation. This issue is fixed in version 0.6.0.
Scoring
- Severity
- MEDIUM
- CVSS base score
- 5.1
- CVSS vector
- CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N
- EPSS probability
- 0.13%
- CWE
- CWE-407
- Published
- 2026-09-01
- Last modified
- 2026-09-01
Affected products
- andialbrecht sqlparse
Weakness type
Related vulnerabilities
- CVE-2026-87822 — t-digest 3.1 through 3.3 Denial of Service via NaN Centroid Means in MergingDigest.fromBytes
- CVE-2024-58382 — league/commonmark before 2.6.0 Denial of Service via Quadratic Complexity
- CVE-2023-54395 — PocketMine-MP before 4.12.5 Denial of Service via ModalFormResponsePacket
- CVE-2026-86435 — commonmark 1.5.0 before 2.8.4 Denial of Service via Footnote
- CVE-2026-86434 — commonmark 2.0.0 through 2.8.3 Denial of Service via Slug Collision
- CVE-2026-86433 — commonmark 1.5.0 before 2.8.4 Denial of Service via Attributes
- CVE-2026-86430 — league/commonmark before 2.9.1 Denial of Service via parsing
- CVE-2026-86429 — commonmark before 2.9.1 Denial of Service via SmartPunct and Attributes