CVE-2025-66645·Python vulnerability
NiceGUI is a Python-based UI framework. Versions 3.3.1 and below are vulnerable to directory traversal through the App.add_media_files() function, which allows a remote attacker to read arbitrary files on the server filesystem. This issue is fixed in version 3.4.0.
- Severity
- high
- Software
- Python
- Fixed in
- 3.4.0
- Published
- 2025-12-09
Affected versions
Until: 3.4.0
Fixed in: 3.4.0
How to fix this CVE
Organizations using NiceGUI must upgrade to version 3.4.0 or later to patch a path traversal vulnerability in the App.add_media_files() function. This flaw allows remote attackers to read sensitive files from the server without authentication. If you have Python applications running NiceGUI, prioritize this update immediately to prevent unauthorized file disclosure.
sudo dnf update python3-niceguiDefensia detects this vulnerability
What an exploitation attempt looks like
Sample log line indicative of exploitation attempts:
GET|POST /.*\.\.(\\|/).*(?:etc|passwd|config|env|aws|secret)|(%2e%2e(%2f|%5c))+(?:etc|passwd|config|env)WAF mitigation (if patching is not yet possible)
Add this rule to your WAF to block exploitation attempts while you schedule the patch.
Implement URL path normalization and reject requests containing encoded or raw path traversal sequences (../, ..\, %2e%2e/) before they reach the NiceGUI application. Additionally, restrict media file serving to a whitelisted directory and enforce strict input validation on file path parameters passed to add_media_files().How to check if you are affected
- Step 1: Check the installed NiceGUI version by running `python3 -c "import nicegui; print(nicegui.__version__)"` on systems where it is installed
- Step 2: Search application source code for calls to `App.add_media_files()` with user-controlled or dynamic path parameters
- Step 3: Review web server and application logs for HTTP GET/POST requests containing path traversal patterns like `../`, `..\`, or URL-encoded equivalents (`%2e%2e/`) targeting media file endpoints
- Step 4: After upgrading to 3.4.0, re-run the version check and verify the vulnerability scanner no longer flags this CVE in your environment
FAQ
What is CVE-2025-66645?
CVE-2025-66645 is a directory traversal vulnerability in NiceGUI versions 3.3.1 and below that allows unauthenticated attackers to bypass path restrictions in the App.add_media_files() function and read arbitrary files from the server filesystem.
Is CVE-2025-66645 being actively exploited?
No, this vulnerability is not listed on the CISA Known Exploited Vulnerabilities (KEV) catalog and no public exploits are currently available, though the vulnerability details are disclosed and remediation should still be prioritized.
What versions of Python are affected by CVE-2025-66645?
The vulnerability affects NiceGUI versions up to and including 3.3.1; the underlying Python version is not the root cause—the issue is in the NiceGUI framework's media file handling logic. Upgrade NiceGUI to 3.4.0 or later regardless of your Python version.
How do I check if my server is vulnerable to CVE-2025-66645?
Run `python3 -c "import nicegui; print(nicegui.__version__)"` to identify the installed NiceGUI version. If it returns 3.3.1 or lower, your deployment is vulnerable. Additionally, check your application configuration for any exposed media file endpoints.
Does Defensia detect CVE-2025-66645?
Yes — Defensia's CVE advisory scanner compares installed package versions against the NVD database. If NiceGUI or Python with NiceGUI is installed on a monitored server, CVE-2025-66645 will appear in your dashboard with remediation steps.
Related Python CVEs
References
Track CVEs across your fleet automatically
Defensia scans your Linux servers and tells you exactly which ones are running vulnerable versions — including CVE-2025-66645. Free for 1 server.
Get started free