漏洞概述 标题: Prompt Injection Filter Bypass in via Multi-Word Payload Variants 描述: 在 中使用的提示注入扫描器采用简单的精确字符串匹配来检测恶意内容。攻击者可以通过插入额外单词、使用同义词或添加空白字符来轻松绕过此过滤器。这允许精心制作的提示注入载荷在未检测的情况下进入 LLM 代理上下文,当技能加载时,可能完全控制代理的行为。 总结: 提示注入扫描器在 中使用简单的精确字符串匹配来检测恶意内容。攻击者可以通过插入额外单词、使用同义词或添加空白字符来轻松绕过此过滤器。这允许精心制作的提示注入载荷在未检测的情况下进入 LLM 代理上下文,当技能加载时,可能完全控制代理的行为。 影响范围 生态系统: pip 包名: hermes-agent 受影响版本: <= v2026.4.30 修复版本: None 修复方案 当前实现: 使用简单的精确字符串匹配来检测恶意内容。 建议修复: 使用 中已实现的硬化的正则表达式方法,该方法使用编译的正则表达式和灵活的中间词匹配来正确检测变体。 POC代码 日志证据 Exploit output: Control experiment output: 影响 这是一个提示注入过滤器绕过漏洞。攻击者可以通过共享仓库、插件或社会工程分发恶意技能,将任意指令注入 LLM 代理的上下文中,而不会触发任何安全警告。根据代理的能力和工具访问权限,这可能导致: 敏感数据泄露(环境变量、API 密钥、文件内容) 通过代理的 shell 工具执行任意命令 覆盖安全约束和代理行为 通过操纵代理响应对用户进行社会工程 该漏洞特别令人担忧,因为安全扫描器给人一种虚假的保护感——用户和开发人员可能认为注入过滤器正在工作,而它实际上很容易被绕过。 弱点 CWE: CWE-20: Improper Input Validation 发生情况 Permalink: https://github.com/NousResearch/hermes-agent/blob/73bf3ab1b22314ed9dfecba569242c03742fe72af/tools/skills_tool.py#L133-L143 Description: 定义为精确字面字符串列表,而不是编译的正则表达式。 Permalink: https://github.com/NousResearch/hermes-agent/blob/73bf3ab1b22314ed9dfecba569242c03742fe72af/tools/skills_tool.py#L703 Description: 插件技能路径:使用 进行子字符串匹配,该匹配可以通过多字变体轻松绕过。 Permalink: https://github.com/NousResearch/hermes-agent/blob/73bf3ab1b22314ed9dfecba569242c03742fe72af/tools/skills_tool.py#L1032 Description: 本地技能路径:相同的 子字符串匹配,容易受到弱模式列表的影响。 Permalink: https://github.com/NousResearch/hermes-agent/blob/73bf3ab1b22314ed9dfecba569242c03742fe72af/tools/skills_guard.py#L164-L166 Description: 参考:代码库中已存在的硬化的正则表达式实现,但未应用于 。