CVE-2026-38360: dash-uploader has a directory traversal vulnerability
(updated )
An unauthenticated path traversal vulnerability exists in dash-uploader versions 0.1.0 through 0.7.0a2. The library’s HTTP request handler at dash_uploader/httprequesthandler.py reads three form parameters (upload_id, resumableFilename, resumableIdentifier) from request.form.get() and passes them directly to os.path.join() and os.makedirs() without any sanitization.
A single unauthenticated POST /API/dash-uploader request with upload_id set to a relative path (e.g. ../../etc/cron.d or ../venv/lib/python3.13/site-packages) escapes the application’s uploads/ directory and writes the supplied file content to the chosen target path under the privilege of the gunicorn / WSGI process.
When the chosen target is a Python site-packages directory and the dropped file is a .pth file containing an import-prefixed line, Python’s site module executes that line on the next interpreter startup, yielding remote code execution. Other escalation paths reachable from the same primitive include overwriting the running WSGI module, dropping ~/.ssh/authorized_keys, or writing JavaScript into a Dash-served assets/ directory for stored XSS.
References
- github.com/a1ohadance/CVE-2026-38360
- github.com/advisories/GHSA-3rf6-x59v-5jfv
- github.com/fohrloop/dash-uploader
- github.com/fohrloop/dash-uploader/blob/dev/dash_uploader/httprequesthandler.py
- github.com/fohrloop/dash-uploader/blob/stable/dash_uploader/httprequesthandler.py
- github.com/fohrloop/dash-uploader/issues/153
- nvd.nist.gov/vuln/detail/CVE-2026-38360
- pypi.org/project/dash-uploader
Code Behaviors & Features
Detect and mitigate CVE-2026-38360 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →