CVE-2026-25732 json
NiceGUI's Path Traversal via Unsanitized FileUpload.name Enables Arbitrary File Write
published 2026-02-05 9 mo ago modified 2026-06-17 4 mo ago also EUVD-2026-5568 , GHSA-9ffm-fxg3-xrhh , PYSEC-2026-95
- cvss
- 7.5
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 3.4%
- EPSS 3.4% chance of exploitation in 30 days, percentile 88%
- public exploits
- 1
- Exploit-DB
Summary
NiceGUI is a Python-based UI framework. Prior to 3.7.0, NiceGUI's FileUpload.name property exposes client-supplied filename metadata without sanitization, enabling path traversal when developers use the pattern UPLOAD_DIR / file.name. Malicious filenames containing ../ sequences allow attackers to write files outside intended directories, with potential for remote code execution through application file overwrites in vulnerable deployment patterns. This design creates a prevalent security footgun affecting applications following common community patterns. Note: Exploitation requires application code incorporating file.name into filesystem paths without sanitization. Applications using fixed paths, generated filenames, or explicit sanitization are not affected. This vulnerability is fixed in 3.7.0.
Patch / fix
- pypi nicegui 3.7.0
- zauberzeug nicegui 3.7.0
Timeline
- Published
- First public exploit (EDB-52534)
CISA SSVC
- Exploitation
- none
- Automatable
- yes
- Technical impact
- partial
- Assessed
- 8 mo ago
Exploit prediction
3.38% chance of exploitation in the next 30 days, higher than 88% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- EDB-52534 NiceGUI 3.6.1 - Path Traversal webapps, 2026-04-30
- github.com https://github.com/zauberzeug/nicegui/security/advisories/GHSA-9ffm-fxg3-xrhh referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N |
| GitHub | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N |
| OSV | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | nicegui | <3.7.0 |
3.7.0 |
Affected products
- zauberzeug nicegui
Classification
References
-
github.com
/zauberzeug/nicegui/blob/main/nicegui/elements/upload_files.py#L110-L115
web, patch
-
github.com
/zauberzeug/nicegui/blob/main/nicegui/elements/upload_files.py#L79-L82
web, patch
-
github.com
/zauberzeug/nicegui/security/advisories/GHSA-9ffm-fxg3-xrhh
web, exploit, mitigation, vendor-advisory, evidence
-
nvd.nist.gov
/vuln/detail/CVE-2026-25732
advisory
-
github.com
/pypa/advisory-database/tree/main/vulns/nicegui/PYSEC-2026-95.yaml
web
-
github.com
/zauberzeug/nicegui
package
Sources
- CVE List CVE-2026-25732
- GitHub Advisory GHSA-9ffm-fxg3-xrhh
- NVD CVE-2026-25732
- OSV PYSEC-2026-95
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.