PraisonAI 注入防御默认阈值过高可被绕过
先了解这件事
GitHub 安全公告披露,PraisonAI 的可选提示注入防御层(enable_injection_defense())默认配置存在缺陷:block_threshold 默认为 ThreatLevel.CRITICAL,只有同时触发 3 项及以上检测才会拦截。单个检测命中,包括被明确标记为危险的指令覆盖和财务操纵类别,只产生 HIGH 级别告警并写入日志,不会阻断,请求原样转发给 LLM。研究者给出的验证提示词仅触发一项指令覆盖检测即可完全绕过防御,财务操纵类提示同样被放行。根因在于 scan_text 中的 blocked = (level >= ThreatLevel.CRITICAL) 判断逻辑。
AI 根据报道生成 · 3 天前更新
后续时间线
- GitHub 安全公告精选PraisonAI 提示注入防御被指仅在高危等级拦截,单向量注入可绕过
GitHub 安全公告披露,PraisonAI 的可选提示注入防御(enable_injection_defense())仅在 ThreatLevel.CRITICAL 时拦截,而该等级需要三种以上检测器家族同时命中;现实中的单向量或双向量注入(如「忽略此前所有指令」这类载荷)只会被标记为 HIGH 并原样放行。根因在于 scan_text 中的 blocked = (level >= ThreatLevel.CRITICAL) and not is_trusted,而 1 至 2 项检查最高只到 HIGH;文档声明的 HIGH 级「sanitize」清洗行为在代码中并未实现。公告给出的验证代码显示,单句注入载荷判定为 HIGH 且 blocked 为 False,而同时触发四类检测器的载荷才被判为 CRITICAL 并拦截。
- GitHub 安全公告精选PraisonAI 提示注入防御默认阈值过高,单向量攻击可绕过拦截
PraisonAI 的 InjectionDefense 提示注入防御层默认配置存在缺陷,block_threshold 默认为 ThreatLevel.CRITICAL,只有同时触发 3 项及以上检测才会拦截。单个检测命中,包括被明确标记为危险的指令覆盖和财务操纵类别,只产生 HIGH 级别告警并写入日志,不会阻断,请求原样转发给 LLM。研究者给出的验证提示词仅触发一项指令覆盖检测即可完全绕过防御,财务操纵类提示同样被放行。影响包括系统提示词提取、未授权工具调用、会话上下文外泄以及代理具备支付工具时的资金操纵。建议将默认阈值改为 ThreatLevel.HIGH,使任一危险类别命中即拦截,需要宽松行为的运营者可显式传入 CRITICAL,并更新阈值注释说明严重级别与拦截的映射关系。
相关讨论
关注度走势
每天新增来源
- 10月8日新增1个来源(1家媒体、0个账号)
- 10月9日新增0个来源(0家媒体、0个账号)
- 10月10日新增0个来源(0家媒体、0个账号)
- 10月11日新增0个来源(0家媒体、0个账号)
- 10月12日新增0个来源(0家媒体、0个账号)