NousResearch hermes-agent CLI web-dashboard web_server.py _discover_dashboard_plugins comparison
Description
A security flaw has been discovered in NousResearch hermes-agent 2026.4.23. Affected is the function _discover_dashboard_plugins of the file hermes_cli/web_server.py of the component CLI web-dashboard Interface. Performing a manipulation of the argument HERMES_ENABLE_PROJECT_PLUGINS results in incorrect comparison. The attack is only possible with local access. The exploit has been released to the public and may be used for attacks. The vendor was contacted early about this disclosure but did not respond in any way.
AI Insight
LLM-synthesized narrative grounded in this CVE's description and references.
"HERMES_ENABLE_PROJECT_PLUGINS" environment variable is misparsed, allowing local attackers to bypass plugin-disabling and achieve RCE when users start the dashboard in a malicious repository.
Vulnerability
The vulnerability exists in hermes_cli/web_server.py at line 2630 in NousResearch hermes-agent version 2026.4.23. The function _discover_dashboard_plugins() uses os.environ.get("HERMES_ENABLE_PROJECT_PLUGINS") to check whether project-level dashboard plugins should be loaded. Because a non-empty string (such as "false" or "0") is truthy in Python, this evaluation bypasses the intended security gating. The correct check, which safely interprets string booleans, is implemented in utils.env_var_enabled() (used in hermes_cli/plugins.py:561) but is not used in the web server path. This allows an attacker who can place a malicious plugin (e.g., dashboard/manifest.json pointing to an api.py payload) inside a repository being processed by Hermes to have the plugin loaded even when the user explicitly set HERMES_ENABLE_PROJECT_PLUGINS=false to disable project plugins [1].
Exploitation
Exploitation requires local access to a system where a user will run the Hermes dashboard (hermes --web) or import hermes_cli.web_server in a directory containing a repository controlled by the attacker. The attacker creates a malicious project plugin structure (e.g., .hermes/plugins/malicious/dashboard/manifest.json) inside a repository. The manifest references an api.py Python module that contains malicious code. When the user starts the dashboard, the flawed environment variable check evaluates "false" as truthy, enabling project plugins. The _discover_dashboard_plugins() function then imports the payload module via _mount_plugin_api_routes(), causing immediate code execution with no prior authentication [1].
Impact
Successful exploitation leads to remote code execution (RCE) in the context of the user running Hermes. An attacker can perform arbitrary actions available to that user, including file access, data exfiltration, and further system compromise. The vulnerability is publicly disclosed with proof-of-concept code, raising the likelihood of widespread exploitation [1].
Mitigation
As of the publication date (2026-05-24), the vendor (NousResearch) has not responded to disclosure and no patched version has been released. Users should not rely on the HERMES_ENABLE_PROJECT_PLUGINS environment variable for security; instead, avoid running the Hermes dashboard in untrusted repositories or audit repositories for malicious .hermes/plugins directories before use. The vulnerability is not listed in CISA KEV as of this writing [1].
AI Insight generated on May 24, 2026. Synthesized from this CVE's description and the cited reference URLs; citations are validated against the source bundle.
Affected products
1- Range: =2026.4.23
Patches
0No patches discovered yet.
Vulnerability mechanics
AI mechanics synthesis has not run for this CVE yet.
References
4- gist.github.com/YLChen-007/062b77ceac6aa9844842a616f5d2ef30mitreexploit
- vuldb.com/submit/812230mitrethird-party-advisory
- vuldb.com/vuln/365332mitrevdb-entrytechnical-description
- vuldb.com/vuln/365332/ctimitresignaturepermissions-required
News mentions
0No linked articles in our index yet.