CVE-2026-39847: Critical Path Traversal in Emmett RSGI Static Handler
Vulnerability ID: CVE-2026-39847
CVSS Score: 9.1
Published: 2026-04-08
The Emmett Python web framework contains a critical path traversal vulnerability in its RSGI static asset handler. Versions 2.5.0 through 2.8.0 fail to sanitize file paths passed to the internal /emmett/ routing prefix, allowing unauthenticated remote attackers to read arbitrary files from the server filesystem.
TL;DR
Unauthenticated remote attackers can read arbitrary local files via a path traversal flaw in Emmett's internal static asset handler (/emmett/). Upgrading to version 2.8.1 resolves the issue.
⚠️ Exploit Status: POC
Technical Details
- CWE ID: CWE-22
- Attack Vector: Network (Remote)
- CVSS v3.1 Score: 9.1 (Critical)
- Impact: High Confidentiality, High Availability
- Exploit Status: Proof of Concept Available
- CISA KEV Status: Not Listed
Affected Systems
- Emmett Framework versions 2.5.0 through 2.8.0
-
Emmett: >= 2.5.0, < 2.8.1 (Fixed in:
2.8.1)
Code Analysis
Commit: 1c0cc24
Security logic patch addressing path traversal in RSGI static handler
Introduces os.path.realpath and .startswith() checks for static asset validation
Exploit Details
- Security Advisories: Proof of Concept outlined in the official vulnerability disclosure report.
Mitigation Strategies
- Upgrade Emmett framework to patched version 2.8.1.
- Deploy reverse proxy rules blocking
../or%2e%2ein/__emmett__/routes. - Implement generic WAF rules targeting path traversal anomalies.
Remediation Steps:
- Verify the installed version of Emmett using
pip show emmett. - If the version is between 2.5.0 and 2.8.0, upgrade the package via
pip install --upgrade emmett. - Restart the application processes and web servers hosting the Emmett application.
- Verify the application functions correctly and test the
/__emmett__/route to ensure it returns a 404 for traversal attempts.
References
- GitHub Security Advisory: GHSA-pr46-2v3c-5356
- NVD Vulnerability Detail: CVE-2026-39847
- CVE.org Entry: CVE-2026-39847
Read the full report for CVE-2026-39847 on our website for more details including interactive diagrams and full exploit analysis.
Top comments (0)