{"cve":"CVE-2026-54567","nvd":{"published":"2026-09-14T18:17:53.547","modified":"2026-09-30T17:51:56.193","status":"Deferred","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_v4":null,"cvss_v3":{"version":"3.1","vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H","score":7.5},"cwes":["CWE-178","CWE-434"],"references":["https://github.com/jugmac00/flask-reuploaded/commit/5ded76092429c6eb8a4af941b14fbde40a38fff4","https://github.com/jugmac00/flask-reuploaded/pull/186","https://github.com/jugmac00/flask-reuploaded/security/advisories/GHSA-937x-gpqr-72gg","https://github.com/jugmac00/flask-reuploaded/security/advisories/GHSA-937x-gpqr-72gg"],"products":[],"source":"nvd","synced_at":"2026-10-19T22:53:43.293028046+00:00"},"epss":{"cve":"CVE-2026-54567","score":0.00626,"percentile":0.49701,"date":"2026-10-25"},"kev":null,"osv":[{"id":"GHSA-937x-gpqr-72gg","url":"https://osv.dev/vulnerability/GHSA-937x-gpqr-72gg","summary":"Flask-Reuploaded: Extension-denylist bypass via case-folding asymmetry in name-override path (incomplete-fix variant of CVE-2026-27641)","modified":"2026-07-23T15:11:48.782940354Z","packages":[{"ecosystem":"PyPI","name":"flask-reuploaded","purl":"pkg:pypi/flask-reuploaded","ranges":["<1.6.0"],"fixed":["1.6.0"]}]},{"id":"PYSEC-2026-3466","url":"https://osv.dev/vulnerability/PYSEC-2026-3466","summary":"Flask-Reuploaded: Extension-denylist bypass via case-folding asymmetry in name-override path (incomplete-fix variant of CVE-2026-27641)","modified":"2026-07-23T15:00:12.483963417Z","packages":[{"ecosystem":"PyPI","name":"flask-reuploaded","purl":"pkg:pypi/flask-reuploaded","ranges":["<1.6.0"],"fixed":["1.6.0"]}]}],"attribution":["This product uses the NVD API but is not endorsed or certified by the NVD.","EPSS scores: FIRST Exploit Prediction Scoring System, https://www.first.org/epss","Known exploited vulnerabilities: CISA Known Exploited Vulnerabilities Catalog, https://www.cisa.gov/known-exploited-vulnerabilities-catalog","Package advisories: OSV (https://osv.dev), from the GitHub Advisory Database, PyPA, Go, RustSec and other ecosystem databases, under CC-BY 4.0 or CC0","CVE records: the CVE Program's CVE List (https://www.cve.org), under its terms of use (https://www.cve.org/Legal/TermsOfUse). CVE is a registered trademark of The MITRE Corporation; this product is not affiliated with the CVE Program."]}