CVE Catalog

CVE-2026-54567

HighCVSS 7.5
Published: Updated: Translated: NVD NIST

Exploitation Probability (EPSS)

Low risk
0.63%

48th percentile - higher than 48% of all known CVEs

Summary

In Flask-Reuploaded from 1.5.0 until 1.6.0, UploadSet.save(storage, name=...) applies lowercase_ext to the default path but uses the case-preserving extension helper for a caller-supplied name before extension_allowed evaluates an AllExcept denylist. An attacker can bypass a lowercase denylist with a mixed-case dangerous extension and store the file in the served upload directory.

Risk Assessment

If the upload directory is execution-capable, an attacker can store and execute malicious code with web server privileges, affecting confidentiality, integrity, and availability.

Recommendation

Upgrade Flask-Reuploaded to version 1.6.0, and until then use allowlists and disable execution in the upload directory.

Related vulnerabilities

Original NVD description (English source)

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.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS