Unrestricted file upload in jugmac00 flask-reuploaded
Key facts
- Attack vector
- Network
- Privileges required
- Low
- User interaction
- None
- Attack complexity
- High
- Impact type
- Code execution
- Confidentiality · integrity · availability
- High · High · High
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub. Impact type from CWE-434.
Summary
Flask-Reuploaded provides file uploads for Flask. From 1.5.0 until 1.6.0, UploadSet.save(storage, name=...) in src/flask_uploads/flask_uploads.py applies lowercase_ext to the default upload path but uses the case-preserving extension helper for a caller-supplied name before extension_allowed evaluates an AllExcept denylist. An attacker who controls the name override can use a mixed-case dangerous extension to bypass a lowercase denylist and store the file in the served upload directory. Exploitation requires a denylist configuration, a user-influenced name override, and a deployment that resolves or executes extensions case-insensitively; pure allowlists remain protected and path containment is not bypassed. On an execution-capable upload directory, the stored file can execute with the web server's privileges and affect confidentiality, integrity, and availability. This issue is fixed in version 1.6.0.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| jugmac00 | flask-reuploaded | before 1.6.0 | 1.6.0 | Patch available | CNA |
| — | Flask-Reuploaded (PyPI) | before 1.6.0 | 1.6.0 | Patch available | GHSA-937x-gpqr-72gg |
- flask-reuploaded Vendorjugmac00 Affected before 1.6.0 Fixed in 1.6.0 Patch available CNA
- Flask-Reuploaded (PyPI) Vendor— Affected before 1.6.0 Fixed in 1.6.0 Patch available GHSA-937x-gpqr-72gg
Remediation
- Fix · CNA flask-reuploaded (jugmac00) Fixed in 1.6.0
- Fix · GHSA-937x-gpqr-72gg Flask-Reuploaded (PyPI) Fixed in 1.6.0 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2026-54567
- 2026-10-03 Alias added: GHSA-937x-gpqr-72gg
- 2026-10-31 EPSS moved to the 50th–90th percentile
References
More jugmac00 vulnerabilities
- TI-2026-22023 Flask-Reuploaded vulnerable to Remote Code Execution via Server-Side Template Injection CVSS 3.1CRITICAL 9.8
Sources
- CVE-2026-54567 · CVE Program
- CVE-2026-54567 · NVD
- FIRST EPSS
- GHSA-937x-gpqr-72gg · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences