docs: add fuzzer results to security assessment
All checks were successful
CI / Lint & Format (push) Successful in 21s
CI / Security Scan (push) Successful in 21s
CI / Memory Leak Check (push) Successful in 18s
CI / SBOM Generation (push) Successful in 18s
CI / Security Tests (push) Successful in 24s
CI / Unit Tests (push) Successful in 32s
All checks were successful
CI / Lint & Format (push) Successful in 21s
CI / Security Scan (push) Successful in 21s
CI / Memory Leak Check (push) Successful in 18s
CI / SBOM Generation (push) Successful in 18s
CI / Security Tests (push) Successful in 24s
CI / Unit Tests (push) Successful in 32s
This commit is contained in:
@@ -239,3 +239,52 @@ The FlaskPaste MIME detection system is resistant to polyglot file attacks due t
|
||||
**Risk Level: LOW**
|
||||
|
||||
The attack surface is minimal because detected MIME types only affect the `Content-Type` header served to clients, and browser-side exploitation is blocked by CSP and X-Content-Type-Options headers.
|
||||
|
||||
---
|
||||
|
||||
## Automated Fuzzing Results
|
||||
|
||||
### Fuzzer Execution
|
||||
|
||||
```bash
|
||||
./venv/bin/python tests/fuzz/run_fuzz.py --verbose
|
||||
```
|
||||
|
||||
### Summary
|
||||
|
||||
| Metric | Value |
|
||||
|--------|-------|
|
||||
| Total phases | 6 |
|
||||
| Total requests | 192 |
|
||||
| CRITICAL findings | 3 (expected behavior) |
|
||||
| HIGH findings | 10 (false positives) |
|
||||
| MEDIUM findings | 1 (intentional) |
|
||||
|
||||
### Finding Analysis
|
||||
|
||||
| Finding | Verdict | Reason |
|
||||
|---------|---------|--------|
|
||||
| X-SSL-Client-SHA1 bypass | EXPECTED | No TRUSTED_PROXY_SECRET configured in test |
|
||||
| Header injection (10x) | FALSE POSITIVE | Werkzeug sanitizes; payloads not reflected |
|
||||
| /metrics exposed | INTENTIONAL | Required for Prometheus monitoring |
|
||||
|
||||
### Verification
|
||||
|
||||
Header injection claims verified as false positives:
|
||||
|
||||
```bash
|
||||
# Host header not reflected
|
||||
curl -sI http://127.0.0.1:5099/ -H "Host: evil.com" | grep evil
|
||||
# (no output)
|
||||
|
||||
# SQL payload not reflected
|
||||
curl -s http://127.0.0.1:5099/ -H "X-Forwarded-For: ' OR 1=1--" | grep "OR 1=1"
|
||||
# (no output)
|
||||
|
||||
# CRLF injection blocked by Werkzeug
|
||||
curl -sI http://127.0.0.1:5099/ -H "Host: evil.com
|
||||
X-Injected: true" | grep X-Injected
|
||||
# (no output)
|
||||
```
|
||||
|
||||
**Conclusion:** The fuzzer correctly identified expected behaviors but produced false positives for header injection attacks. Flask/Werkzeug properly sanitizes all header inputs.
|
||||
|
||||
Reference in New Issue
Block a user