| 标题 | NousResearch hermes-agent <= v2026.4.30 Improper Input Validation (CWE-20) |
|---|
| 描述 | # Technical Details
A Prompt Injection Filter Bypass exists in the `_serve_plugin_skill` and `skill_view` methods in `tools/skills_tool.py` of hermes-agent.
The application fails to use robust regex matching for prompt injection detection, relying instead on naive exact-string substring matching via the `in` operator.
# Vulnerable Code
File: tools/skills_tool.py
Method: _serve_plugin_skill / skill_view
Why: `_INJECTION_PATTERNS` defines static literal strings, and the methods use `p in content.lower()` which only matches exact contiguous character sequences, failing to catch multi-word variants or synonym substitutions.
# Reproduction
1. Set up the hermes-agent environment: `export HERMES_ROOT=$(pwd)`
2. Download and execute the exploit PoC script (https://gist.github.com/YLChen-007/88d745b9bcd3d49d47427a0f7b2308e7) via `python3 poc_exploit.py`.
3. Observe that prompt payloads with extra words or synonym substitutions successfully bypass the filter and are injected into the agent's context.
# Impact
- Exfiltration of sensitive data (environment variables, API keys, file contents).
- Execution of arbitrary commands via the agent's shell tool, and override of safety constraints. |
|---|
| 来源 | ⚠️ https://gist.github.com/YLChen-007/9dd399c6f75b31fa741a613dfd41de08 |
|---|
| 用户 | Eric-j (UID 98073) |
|---|
| 提交 | 2026-05-07 15時38分 (1 月前) |
|---|
| 管理 | 2026-05-31 09時51分 (24 days later) |
|---|
| 状态 | 已接受 |
|---|
| VulDB条目 | 367499 [NousResearch hermes-agent 直到 2026.4.30 tools/skills_tool.py _serve_plugin_skill/skill_view 权限提升] |
|---|
| 积分 | 20 |
|---|