atomic-agents-stack: Dashboard HTTP server path traversal allows arbitrary file read
Key facts
- Attack vector
- —
- Privileges required
- —
- User interaction
- —
- Attack complexity
- —
- Impact type
- —
- Confidentiality · integrity · availability
- —
- Fix status
- Fixed
No CVSS vector from any source. Fix status from GitHub.
Summary
The optional dashboard HTTP server (`atomic_agents/dashboard/serve.py`) builds filesystem paths directly from the request path and serves them without a containment check. It is the only per-request untrusted-path site in the codebase that does not route through `_io.safe_resolve_under`. Literal `../` segments survive `urlparse` and `Path` joining, so a request can read files outside the intended `agents_root` (including via the static branch). **Impact:** arbitrary file read. The default bind is loopback, but `--host` is an operator-settable documented flag; binding `0.0.0.0` exposes this to the LAN. Even on loopback it is reachable via DNS-rebinding from a browser or SSRF from a co-located service. **Affected:** `dashboard/serve.py` (`DashboardHandler.do_GET` / `_serve_file`), all versions through 1.0.0. **Fix:** route every served path through `_io.safe_resolve_under` against the intended root and return 404 on `PathTraversalError`; reject `..`/separators early; optionally refuse a non-loopback `--host` unless an explicit auth/allow flag is set (matching `serve/_app.py`).
Why it matters now
SSVC decision points
Not available: CISA has not published SSVC decision points for this record.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| — | atomic-agents-stack (PyPI) | before 1.1.0 | 1.1.0 | Patch available | GHSA-rm43-82j9-r4mj |
- atomic-agents-stack (PyPI) Vendor— Affected before 1.1.0 Fixed in 1.1.0 Patch available GHSA-rm43-82j9-r4mj
Remediation
- Fix · GHSA-rm43-82j9-r4mj atomic-agents-stack (PyPI) Fixed in 1.1.0 Advisory →
Timeline
- 2026-10-03 Threatist record created from GHSA-rm43-82j9-r4mj
References
Sources
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences