CVE-2026-54567
Received Received - Intake

Path Traversal in Flask-Reuploaded

Vulnerability report for CVE-2026-54567, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-09-14

Last updated on: 2026-09-14

Assigner: GitHub, Inc.

Description

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 Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-09-14
Last Modified
2026-09-14
Generated
2026-09-14
AI Q&A
2026-09-14
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Showing 1 associated CPE
Vendor Product Version / Range
flask_reuploaded flask_reuploaded 1.6.0

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-178 The product does not properly account for differences in case sensitivity when accessing or determining the properties of a resource, leading to inconsistent results.
CWE-434 The product allows the upload or transfer of dangerous file types that are automatically processed within its environment.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

CVE-2026-54567 is a vulnerability in Flask-Reuploaded versions up to 1.5.0. It involves a case-folding issue where the default upload path normalizes file extensions to lowercase, but a user-supplied name override preserves the original case. This allows attackers to bypass denylist restrictions by using mixed-case extensions like 'shell.PHP' or 'evil.pHp'.

Detection Guidance

Check Flask-Reuploaded version with pip show flask-reuploaded. If version is <=1.5.0, the system is vulnerable. Inspect application code for UploadSet.save() calls with user-controlled name parameters. Monitor upload directories for files with mixed-case extensions like .PHP or .pHp.

Impact Analysis

If exploited, this vulnerability could allow an attacker to upload malicious files to a server despite denylist protections. On case-insensitive systems, these files could execute with the web server's privileges, compromising confidentiality, integrity, and availability of the system.

Compliance Impact

This vulnerability could impact compliance with GDPR and HIPAA by potentially allowing unauthorized file uploads that execute malicious code. If exploited, it may lead to data breaches, unauthorized access, or data integrity issues, violating confidentiality and integrity requirements under these regulations.

Mitigation Strategies

Upgrade Flask-Reuploaded to version 1.6.0 or later immediately. Review and update file upload policies to use allowlists instead of denylists. Ensure all uploaded files have extensions normalized to lowercase before validation and storage.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-54567. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart