| タイトル | 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 月 ago) |
|---|
| モデレーション | 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 |
|---|