Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Remote, low-complexity, but requires low-privilege authentication (PR:L); delete-only primitive gives no confidentiality (C:N) yet high integrity and availability impact (I:H/A:H).
Primary rating from NVD.
CVSS VectorNVD
Lifecycle Timeline
6DescriptionCVE.org
Hermes WebUI contains an arbitrary file deletion vulnerability in the /api/session/delete endpoint that allows authenticated attackers to delete files outside the session directory by supplying an absolute path or path traversal payload in the session_id parameter. Attackers can exploit unvalidated session identifiers to construct paths that bypass the SESSION_DIR boundary and delete writable JSON files on the host system.
AnalysisAI
Arbitrary file deletion in Hermes WebUI (nesquena/hermes-webui, all versions prior to the PR #409 fix) allows an authenticated attacker to delete arbitrary writable JSON files on the host by supplying an absolute path or path-traversal sequence in the session_id parameter of the /api/session/delete endpoint. Because the endpoint concatenates the unvalidated identifier onto SESSION_DIR without canonicalization, an attacker can escape the intended session directory and destroy files outside it. Publicly available exploit code exists (VulnCheck advisory and upstream regression tests demonstrate the payloads), but it is not listed in CISA KEV and EPSS is low (0.09%, 26th percentile), indicating no evidence of widespread automated exploitation.
Technical ContextAI
The vulnerability is a classic CWE-22 path traversal in a Python-based web UI. In api/routes.py the delete handler built the target path as SESSION_DIR / f"{sid}.json" using the client-supplied session_id directly, with no allow-list validation or canonical-path containment check. Python's pathlib treats an absolute path on the right side of the / operator as replacing the base entirely, and it does not collapse ../ segments, so both an absolute path (e.g. /etc/something) and a ../../../ traversal payload resolve outside SESSION_DIR. The upstream fix adds two defenses: a strict character allow-list restricting sid to [0-9a-z_], and a canonicalization check that calls .resolve() on the constructed path and then .relative_to(SESSION_DIR.resolve()), rejecting anything that escapes the boundary. CPE cpe:2.3:a:nesquena:hermes-webui identifies the single affected product.
RemediationAI
Vendor-released patch: upgrade to Hermes WebUI v0.50.132 (or the v0.50.32 tagged release), which incorporate the fix from pull request https://github.com/nesquena/hermes-webui/pull/409 (with follow-up https://github.com/nesquena/hermes-webui/pull/412 and commit 3cc5839bf303fa6758bfdac538507407a2929655). The fix adds a strict [0-9a-z_] character allow-list on session_id plus a canonical-path containment check (resolve() followed by relative_to(SESSION_DIR)). If you cannot upgrade immediately, restrict network access to the /api/session/delete endpoint and to the Hermes WebUI service generally (place it behind authenticated reverse-proxy access controls or bind it to localhost), which prevents remote reach at the cost of limiting legitimate remote use; additionally, run the service under a low-privilege account whose write access is confined to the session directory so that traversal payloads cannot reach sensitive files elsewhere on the host (trade-off: may require adjusting file ownership for other application data). Consult the VulnCheck advisory at https://www.vulncheck.com/advisories/nesquena-hermes-webui-arbitrary-file-deletion-via-unvalidated-session-id for details.
More in Hermes Webui
View allUnauthenticated remote code execution in Hermes WebUI before version 0.51.788 lets remote attackers run arbitrary shell
Authentication bypass in Hermes WebUI before 0.51.307 lets unauthenticated remote attackers reach onboarding endpoints t
Authentication bypass in Hermes WebUI before 0.51.409 allows unauthenticated remote attackers to register the first pass
Unauthenticated initial-setup hijack in Hermes WebUI before 0.51.358 allows any remote attacker who can reach the settin
Cross-profile authorization bypass in Hermes WebUI before 0.51.368 allows authenticated users to access sessions, files,
Information disclosure in Hermes WebUI before v0.51.221 allows authenticated remote attackers to read arbitrary files ou
Cross-profile data disclosure in Hermes WebUI before 0.51.269 allows authenticated users to read session titles and tran
Cross-profile session data exfiltration in Hermes WebUI before 0.51.443 lets any authenticated user retrieve session tra
Cross-profile session disclosure in Hermes WebUI before 0.51.443 lets any authenticated user retrieve conversation trans
Resource exhaustion in Hermes WebUI before v0.51.270 allows unauthenticated remote attackers to degrade service availabi
Resource exhaustion in Hermes WebUI before 0.51.468 exposes an unauthenticated POST /api/onboarding/oauth/start endpoint
Cross-profile workspace isolation bypass in Hermes WebUI before 0.51.521 allows an authenticated low-privilege user oper
Same weakness CWE-22 – Path Traversal
View allSame technique Path Traversal
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-24517