CVE-2026-53504: Python Regex Overlapping Digit Quantifiers Redos

Overlapping digit matchers (`\d+\.\?\d*` or `[\d]+\.\?[\d]*`) inside regular expressions allow ambiguous partitioning of integer inputs. When evaluated inside repeated groups, this leads to catastrophic exponential backtracking (ReDoS) on non-matching strings. Replace optional dot and trailing digits with explicit non-capturing groups such as `(?:\.\d*)?`.

Provally CuratedPublic repositoryMediumMedium confidenceVerifiedApache-2.0Python
greprules fetch cve-2026-53504-python-regex-overlapping-digit-quantifiers-redos --engine opengrep

Description

Overlapping digit matchers (`\d+\.\?\d*` or `[\d]+\.\?[\d]*`) inside regular expressions allow ambiguous partitioning of integer inputs. When evaluated inside repeated groups, this leads to catastrophic exponential backtracking (ReDoS) on non-matching strings. Replace optional dot and trailing digits with explicit non-capturing groups such as `(?:\.\d*)?`.