ReDoctor¶
The Python ReDoS Vulnerability Scanner
Protect your applications from Regular Expression Denial of Service attacks with static analysis and intelligent fuzzing.
What is ReDoS?¶
Regular Expression Denial of Service (ReDoS) is a type of algorithmic complexity attack that exploits the worst-case behavior of regex engines. A vulnerable regex can cause your application to hang for minutesβor even hoursβwhen processing malicious input.
This innocent-looking regex is VULNERABLE!
ReDoctor detects these vulnerabilities before they reach production.
Quick Start¶
Features¶
Hybrid Analysis Engine¶
Combines static automata-based analysis with intelligent fuzzing for comprehensive detection. Catches vulnerabilities that single-approach tools miss.
Fast & Zero Dependencies¶
Pure Python with no external dependencies. Runs in milliseconds for most patterns. Compatible with Python 3.6+.
Accurate Results¶
Generates proof-of-concept attack strings with complexity analysis (O(nΒ²), O(2βΏ), etc.). Low false-positive rate through recall validation.
Source Code Scanning¶
Scan your entire Python codebase for vulnerable regex patterns. Integrates seamlessly with CI/CD pipelines.
Complexity Analysis¶
ReDoctor classifies vulnerabilities by their time complexity:
| Complexity | Description | Risk Level |
|---|---|---|
O(n) | Linear β Safe | |
O(nΒ²) | Quadratic | |
O(nΒ³) | Cubic | |
O(2βΏ) | Exponential |
How It Works¶
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β ReDoctor Engine β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β βββββββββββββββββββ βββββββββββββββββββ β
β β Automaton β β Fuzz β β
β β Checker β β Checker β β
β β β β β β
β β β’ NFA analysis β β β’ VM execution β β
β β β’ Witness gen β β β’ Step countingβ β
β ββββββββββ¬βββββββββ ββββββββββ¬βββββββββ β
β β β β
β βββββββββββββ¬ββββββββββββββββ β
β β β
β ββββββββββΌβββββββββ β
β β Recall Validatorβ β
β ββββββββββ¬βββββββββ β
β β β
β ββββββββββΌβββββββββ β
β β Diagnostics β β
β βββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Learn more about how ReDoctor works β
Get Started¶
500+ Tests Passing
0 Dependencies
3.6+ Python Version
<10ms Typical Analysis