| 标题 | NousResearch hermes-agent 2026.4.23 Incorrect Comparison (CWE-697) |
|---|
| 描述 | # Technical Details
A Remote Code Execution vulnerability via configuration bypass exists in the `_discover_dashboard_plugins()` method in `hermes_cli/web_server.py` of hermes-agent.
The application fails to safely parse boolean environment variables when authenticating project plugins (specifically `HERMES_ENABLE_PROJECT_PLUGINS`), evaluating non-empty opt-out strings like `false` as Python `True` truthy contexts rather than utilizing the secure `utils.env_var_enabled` helper.
# Vulnerable Code
File: hermes_cli/web_server.py
Method: _discover_dashboard_plugins()
Why: The checking logic fetches raw strings using `os.environ.get("HERMES_ENABLE_PROJECT_PLUGINS")`. Because strings like "false" evaluate correctly under boolean checks, protective disablement settings are flipped. The platform automatically imports and runs custom local plugins using `_mount_plugin_api_routes()`.
# Reproduction
1. Ensure the user environment sets `HERMES_ENABLE_PROJECT_PLUGINS=false`.
2. Navigate to an attacker-controlled directory containing malicious dashboard plugins (`.hermes/plugins/<name>/dashboard/manifest.json` pointing to `api.py`).
3. Instantiate the CLI web-dashboard interface via `hermes --web`.
4. The system interprets `false` as enabled, and imports the malicious `api.py` module, immediately executing its remote code context at privilege level.
# Impact
- Pre-auth Remote Code Execution (RCE).
- Users purposefully disabling unsafe plugins directly induce vulnerability triggers when accessing arbitrary repositories. |
|---|
| 来源 | ⚠️ https://gist.github.com/YLChen-007/062b77ceac6aa9844842a616f5d2ef30 |
|---|
| 用户 | Eric-i (UID 97584) |
|---|
| 提交 | 2026-04-24 15時03分 (4 月前) |
|---|
| 管理 | 2026-05-23 12時33分 (29 days later) |
|---|
| 状态 | 已接受 |
|---|
| VulDB条目 | 365332 [NousResearch hermes-agent 2026.4.23 CLI web-dashboard Interface hermes_cli/web_server.py _discover_dashboard_plugins HERMES_ENABLE_PROJECT_PLUGINS 权限提升] |
|---|
| 积分 | 20 |
|---|