Severity by source
CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:L/SC:N/SI:N/SA:N/E:P/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
Local-only vector with low-privilege requirement; integrity and availability both low as write access to sensitive files may corrupt them but does not enable code execution.
Primary rating from NVD.
CVSS VectorNVD
Lifecycle Timeline
8DescriptionCVE.org
A security flaw has been discovered in NousResearch hermes-agent 0.8.0. This affects the function _check_sensitive_path of the file tools/file_tools.py. The manipulation results in symlink following. Attacking locally is a requirement. The exploit has been released to the public and may be used for attacks. Upgrading to version 0.9.0 is able to mitigate this issue. The patch is identified as 311dac197145e19e07df68feba2cd55d896a3cd1. Upgrading the affected component is recommended.
AnalysisAI
Symlink following in NousResearch hermes-agent 0.8.0 allows local low-privileged users to bypass sensitive filesystem path protections and write to restricted system files. The _check_sensitive_path function in tools/file_tools.py validated only the fully-resolved real path, not the original expanded path, enabling bypass on platforms where system directories are themselves symlinks (e.g., macOS /etc → /private/etc). A publicly available PoC exists; no confirmed active exploitation (not in CISA KEV), and the CVSS 4.0 score of 1.9 with EPSS at the 2nd percentile indicates low real-world risk.
Technical ContextAI
CWE-61 (UNIX Symbolic Link Following) describes the root cause: the function _check_sensitive_path in tools/file_tools.py called os.path.realpath(os.path.expanduser(filepath)) to resolve the input path before checking it against _SENSITIVE_PATH_PREFIXES and _SENSITIVE_EXACT_PATHS. On macOS, /etc is itself a symlink to /private/etc, so a path like /etc/hosts resolves to /private/etc/hosts. If the blocklist contained /etc/ but not /private/etc/, the resolved path silently bypassed the check. Additionally, the fallback in the except block assigned the unresolved original filepath (not even the expanded form) to resolved, creating a second bypass window if os.path.realpath() threw. The fix (commit 311dac197145e19e07df68feba2cd55d896a3cd1) checks both the expanded and resolved forms of the path against all sensitive prefix and exact-match lists, closing both gaps. Affected product per CPE: cpe:2.3:a:nousresearch:hermes-agent:*:*:*:*:*:*:*:*, version 0.8.0 confirmed by EUVD (EUVD-2026-26273).
RemediationAI
Upgrade to hermes-agent 0.9.0 (released as tag v2026.4.13), which includes the fix via commit 311dac197145e19e07df68feba2cd55d896a3cd1 (https://github.com/NousResearch/hermes-agent/commit/311dac197145e19e07df68feba2cd55d896a3cd1). The patched release is available at https://github.com/NousResearch/hermes-agent/releases/tag/v2026.4.13. If an immediate upgrade is not feasible, restrict local system access to hermes-agent's process to only trusted users, as the attack requires an existing local session with low privileges. On macOS deployments specifically, administrators should audit whether _SENSITIVE_PATH_PREFIXES in the current installation includes both /etc/ and /private/etc/ as a temporary compensating control, noting this is a manual workaround that does not address the underlying path resolution flaw and may be bypassed by other symlink configurations.
More in Hermes Agent
View allRemote code execution in NousResearch Hermes Agent 0.18.2-0.21.0 allows an unauthenticated attacker to execute arbitrary
Remote command injection in NousResearch hermes-agent allows unauthenticated attackers to execute arbitrary OS commands
Path traversal in NousResearch hermes-agent (all versions through 2026.5.16) exposes arbitrary server-side files via the
Path traversal in NousResearch hermes-agent through version 2026.4.16 allows remote unauthenticated attackers to bypass
Remote sandbox escape in NousResearch hermes-agent versions up to 2026.4.16 allows unauthenticated attackers to manipula
Path traversal in NousResearch hermes-agent 0.8.0 exposes arbitrary server-side files to unauthenticated remote attacker
Remote code/prompt injection in NousResearch Hermes Agent through 0.12.0 stems from improper neutralization in the _comp
Remote injection in NousResearch Hermes Agent through version 2026.4.30 allows unauthenticated attackers to manipulate t
Code injection in NousResearch hermes-agent 2026.4.23 allows remote unauthenticated attackers to inject and execute arbi
Improper output escaping in NousResearch Hermes Agent versions up to 2026.4.16 allows remote unauthenticated attackers t
Remote injection vulnerability in NousResearch hermes-agent versions up to 2026.4.23 enables unauthenticated attackers t
Uncontrolled resource consumption in NousResearch hermes-agent (all versions through 2026.4.30) allows remote unauthenti
Same weakness CWE-61 – UNIX Symbolic Link (Symlink) Following
View allSame technique Information Disclosure
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-26273