p PatchFirst

CVE-2026-54567

CVE-2026-54567 · Flask-Reuploaded: Extension-denylist bypass via case-folding asymmetry in name-override path (incomplete-fix variant of CVE-2026-27641)

This page contains facts from public vulnerability sources. Check the original advisory before updating.

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.

CVSS 7.5 · High · EPSS 0.6% · Fix available

Published
Updated

Stack: python

Affected products and versions

  • flask-reuploaded

    Versions
    • < 1.6.0: Affected

    No fix published

  • flask-reuploaded PyPI

    Versions
    • 0.3
    • 0.3.1
    • 0.3.2
    • 0.4.0
    • 0.5.0
    • 1.0.0
    • 1.1.0
    • 1.2.0
    • 1.3.0
    • 1.4.0
    • 1.5.0
    Affected ranges
    • ECOSYSTEM: < 1.6.0

    Update to 1.6.0

Original sources

Check your server →