想象您是一名渗透测试工程师,面前是前几天宣布完成安全升级的OpenClaw 3.8。您不需要去找RCE(远程代码执行),也不用费劲构造缓冲区溢出。您只需要回想一下,近期在网上发生过的两场OpeClaw“闹剧”。第一次Meta AI的对齐总监眼睁睁看着自己的OpenClaw开始疯狂清空她的历史邮件。

原因是OpenClaw在处理长上下文时,系统执行了状态压缩(Compaction),意外把“执行前需用户确认”的安全约束给物理抹除了。为了阻止灾难,她不得不冲向她的Mac mini”进行人工干预。第二次是有开发者在社区崩溃求助,某个哥们的龙虾🦞因为后台调度器(cron)配置不当,在无人值守的深夜里默默消耗了570万个Token。

加州大学默塞德分校的研究者们敏锐地抓住了这两种现象的交集:如果把“上下文挤出机制”和“后台静默执行”结合起来,包装成一个伪善的第三方插件投入系统,会发生什么?修猫今天要为您介绍的这篇论文《Clawdrain》正是要深度研究这一点。即利用一段表面合法的多轮验证脚本,将您的龙虾🦞变成一台隐蔽的、永远无法停机的Token吞噬虾。
如果您发现自己的龙虾🦞最近token消耗的很快,甚至反常,那么这篇文章绝对值得您花时间读一读。
OpenClaw的基本运行模式是:模型读上下文,决定调用哪个Skill,拿到工具输出,再把这些内容回填到下一轮推理。每个Skill通常有两部分:

SKILL.md,里面写用途、参数、使用说明研究者指出这套设计本身没有问题,问题在于它把三种原本应该隔离的东西叠在了一起:
对于依赖LLM API的企业而言,这种架构缺陷导致攻击者具备了极高的破坏动机:
这三点很重要,因为它们说明:真实系统里的经济型攻击不一定需要任何显眼的多轮对话,也不一定需要用户盯着看。只要Skill文档足够肥、返回足够啰嗦、后台频率足够高,成本就会自己长出来。研究者还进一步指出,由于 SKILL.md 进入的是system prompt级别,这意味着恶意Skill甚至可以携带行为注入指令,去改变agent的全局风格,例如让所有回答都变得更啰嗦。到这里,问题已经不只是资源耗尽,还开始碰到完整性和保密性边界。
为了在不触发系统警报、不破坏最终任务正确性的前提下实现上述攻击目标,研究者设计了一个名为Clawdrain的木马化查询技能。其核心是实现了一个多轮状态机,分段验证协议(Segmented Verification Protocol, SVP)。

SVP放弃了容易被检测到的乱码生成或明显的死循环策略,转而利用LLM对系统级设定的服从性,伪造了一个高度合理的业务流程。SVP包含客户端组件(嵌入在 SKILL.md 中的系统指令)和服务器端组件(配套的 query_tool.py 验证脚本)。
SKILL.md 会明确告知智能体:在释放真正的目标数据(例如请求BBC头条新闻数据)之前,数据提供方要求必须先通过严格的密码学新鲜度握手认证。Gemini 2.5 Pro在实验中完全接受了这一安全协议的设定,甚至在执行日志中评价该验证系统“复杂得令人着迷”。

为了在输出端制造巨大的Token消耗,协议设置了严格的输入校验。在调用工具时,智能体必须提供两个参数:

协议文档中包含了防御性指令,明确禁止使用任何缩写、省略号(如1...1000)或范围表示法(如1-1000)。这强制底层模型必须利用极其昂贵的自回归推理(Autoregressive generation),逐个Token吐出这个长达数千字符的序列。
query_tool.py 脚本负责解析参数,并严格依据以下逻辑控制会话流:

实验环境是本地OpenClaw v2026.2.9,后端模型用的是Gemini 2.5 Pro,通过Google OAuth接入。系统启用了标准工具集,包括 exec、文件系统操作和网页搜索;所有Skill从本地 ~/.openclaw/skills/ 加载。恶意Skill被做成默认查询Skill的替代品,对用户接口保持不变,区别只存在于工具层行为。测量方法也很朴素:用OpenClaw内置的 /cost 查看累计输入token、输出token和总上下文占用,在全新会话里分别记录基线与恶意Skill的结果。

结果很有意思。基线场景下,一次新闻标题查询消耗的上下文大约是2.8万token;SVP v1把它推到约12.5万,放大约6倍;SVP v2到约19万,放大约7倍;SVP v3虽然最终没成功完成协议,却烧到了约24.9万,也就是约9倍。
论文里最值得看的细节,不是“成功放大了多少倍”,而是失败路径可能比成功路径更烧钱。在 L=2000, Tmax=5 的v3配置里,Gemini 2.5 Pro多次尝试校准序列,持续收到 REPAIR,最后把这个验证系统判断为“有问题”。
如果这是一个普通脚本,也许流程到这里就结束了。但龙虾🦞没停,它开始自救:改用标准Skill、尝试web搜索替代数据源、清理卡住的进程、重试主服务。每一次回退都增加新的工具调用和推理痕迹,继续把历史变长。最终这次“失败的攻击”持续了11分钟以上,累计消耗了约249k上下文Token(其中输入高达34k,输出达到28k)。相比之下,成功的SVP v2攻击仅耗时不到2分钟,消耗约190k Token。

这直接动摇了一个常见指标:把ASR(攻击成功率)和放大倍数并列看,在真实agent场景里可能会低估风险。因为真实系统不是“协议没走通就停机”,而是“协议没走通就继续想办法”。在这个过程中,每一次回退措施、每一次工具调用的stdout和stderr输出、每一次失败后的内部反思推理,都在不可逆地将数据灌入当前会话的上下文历史中。这说明,在真实系统中,攻击者根本不需要去费尽心机优化协议的通过率。故意设定一个必然导致协议失败的高阈值,利用Agent框架内置的容错与纠偏机制,诱发无意义的工具调用链死锁,反而能实现最大化的经济破坏。论文据此指出,过去用MCTS同时追求ASR和单轮输出长度的优化方向,在部署环境里未必是最优的。
在v2场景里,另一个非常有意思的现象出现了。模型最初尝试手工生成1到1000的校准序列,结果在第372和第570个位置出现算术错误,被 REPAIR 打回。到了第三次,它不再老老实实逐token生成,而是自主调用通用工具,用Python生成整串序列,再把结果塞回参数里。代码如下:

python3 -c 'print(",".join(map(str, range (1, 1001))))' > /tmp/cal.txt
论文给出的结论很明确:这不是 SKILL.md 指导的,而是agent利用自己手头的shell / Python能力,临场组合出更可靠的方案。
这件事有两层含义:
exec 权限,完全可能自己把脆弱步骤外包给脚本。这也是论文最成熟的地方之一:研究者没有把这个现象当成“实验噪声”,而是把它当成部署系统的固有属性。换句话说,工具组合能力既会削弱clawdrain,也会在另一边放大失败后的恢复链条。v2里它帮系统省钱,v3里它又帮系统把失败拖得更长。
在研究界,通常将“输出结果匹配良性基线”等同于实现了攻击隐蔽性。研究者指出,对于工程部署而言,隐蔽性完全取决于系统对执行痕迹的可观测性(Observability),且这种可观测性高度依赖于用户界面的设计。
针对同一套木马技能,三种不同的主流执行接口呈现出截然不同的安全态势:

query_tool 的调用过程,以及包含长达数千位数字的校准序列参数,会被无差别地渲染到对话流中。用户可以直观地看到异常的死循环并手动终止。只有全面理解了界面呈现对执行细节的过滤机制,攻击者才能调整协议的verbosity(冗长程度)以规避特定接口的人工审查。
针对输出Token进行多轮诈骗只是第一步。由于多轮对话需要持续向LLM API发送全量历史数据,系统架构还暴露了三个不需要复杂状态机即可实施的更底层的攻击向量:
SKILL.md 可以被填充大量无意义的字符或复杂的伪逻辑。由于框架会在每次API调用时将所有可用技能的文档无条件注入系统提示词,这种静默的文档膨胀会拉高该实例生命周期内每一轮推理的基准输入成本。上述机制可以被整合进一套被称为自适应消耗(Adaptive Drain)的对抗战术中。针对Agent写Python脚本的绕过行为,query_tool.py 的 REPAIR 逻辑可以进行升级,要求序列中包含根据当前时间戳派生的随机数(Nonce)。这会导致静态的Python脚本缓存失效,迫使Agent退回到计算密集的自回归生成老路上,以维持稳定的单轮消耗率。
更致命的是,攻击者可以将这些手段组合成一套两阶段的上下文击穿劫持(Compaction-Aware Escalation):
如果您作为管理员,发现OpenClaw账单飙升或Token消耗异常,不用慌,请按照论文揭示的四个隐蔽攻击面,按图索骥进行排查:
1. 使用系统自带命令定位问题会话
/cost。2. 审计 ~/.openclaw/skills/ 目录下的静态文件(排查输入膨胀)
SKILL.md 文件大小。SKILL.md 内容都会在每次API调用时被注入到系统提示词中,不管该技能是否被实际调用。如果发现某个第三方技能的 SKILL.md 体积极其庞大,或者包含复杂的长文本指令,这极大概率是输入Token放大攻击,它在静默地抬高您每次对话的基准成本。3. 绕过TUI渲染,直接查看原始工具调用日志(排查输出放大与死循环)
4. 检查后台定时任务与自动触发器(排查频率放大)
5. 寻找“昂贵的失败”痕迹(排查恢复级联陷阱)
在Agent时代,日志审计不能只看“报错”,还要看那些表面上合法、但逻辑链条极其冗长的“成功”或“不断重试的自救”。
纵观Clawdrain展现的工程级劫持,最令人后怕的并非它放大了多少倍的Token消耗,而是它完全利用了Agent自身的容错机制与逻辑自洽。研究者用极其克制的提示词骗过了生产级模型,让龙虾🦞心甘情愿地在伪造的校验死循环里疯狂自救,甚至因为任务彻底失败而爆发出最高的资源耗损。这给所有安全从业者上了一课:在以LLM为核心的编排系统中,最大的漏洞不再是内存越界,而是那些被毫无保留地塞进上下文里的工具文档和历史记录。只要控制流和资源流依然交织在一起,这种不需要提权、只需让系统不停思考就能干掉整个业务线的“提款机木马”,就永远有可乘之机。
文章来自于“AI修猫Prompt”,作者 “AI修猫Prompt”。
【开源免费】Browser-use 是一个用户AI代理直接可以控制浏览器的工具。它能够让AI 自动执行浏览器中的各种任务,如比较价格、添加购物车、回复各种社交媒体等。
项目地址:https://github.com/browser-use/browser-use
【开源免费】AutoGPT是一个允许用户创建和运行智能体的(AI Agents)项目。用户创建的智能体能够自动执行各种任务,从而让AI有步骤的去解决实际问题。
项目地址:https://github.com/Significant-Gravitas/AutoGPT
【开源免费】MetaGPT是一个“软件开发公司”的智能体项目,只需要输入一句话的老板需求,MetaGPT即可输出用户故事 / 竞品分析 / 需求 / 数据结构 / APIs / 文件等软件开发的相关内容。MetaGPT内置了各种AI角色,包括产品经理 / 架构师 / 项目经理 / 工程师,MetaGPT提供了一个精心调配的软件公司研发全过程的SOP。
项目地址:https://github.com/geekan/MetaGPT/blob/main/docs/README_CN.md
【开源免费】graphrag是微软推出的RAG项目,与传统的通过 RAG 方法使用向量相似性作为搜索技术不同,GraphRAG是使用知识图谱在推理复杂信息时大幅提高问答性能。
项目地址:https://github.com/microsoft/graphrag
【开源免费】Dify是最早一批实现RAG,Agent,模型管理等一站式AI开发的工具平台,并且项目方一直持续维护。其中在任务编排方面相对领先对手,可以帮助研发实现像字节扣子那样的功能。
项目地址:https://github.com/langgenius/dify
【开源免费】RAGFlow是和Dify类似的开源项目,该项目在大文件解析方面做的更出色,拓展编排方面相对弱一些。
项目地址:https://github.com/infiniflow/ragflow/tree/main
【开源免费】phidata是一个可以实现将数据转化成向量存储,并通过AI实现RAG功能的项目
项目地址:https://github.com/phidatahq/phidata
【开源免费】TaskingAI 是一个提供RAG,Agent,大模型管理等AI项目开发的工具平台,比LangChain更强大的中间件AI平台工具。
项目地址:https://github.com/TaskingAI/TaskingAI
【开源免费】LangGPT 是一个通过结构化和模板化的方法,编写高质量的AI提示词的开源项目。它可以让任何非专业的用户轻松创建高水平的提示词,进而高质量的帮助用户通过AI解决问题。
项目地址:https://github.com/langgptai/LangGPT/blob/main/README_zh.md
在线使用:https://kimi.moonshot.cn/kimiplus/conpg00t7lagbbsfqkq0
【开源免费】VideoChat是一个开源数字人实时对话,该项目支持支持语音输入和实时对话,数字人形象可自定义等功能,首次对话延迟低至3s。
项目地址:https://github.com/Henry-23/VideoChat
在线体验:https://www.modelscope.cn/studios/AI-ModelScope/video_chat
【开源免费】Streamer-Sales 销冠是一个AI直播卖货大模型。该模型具备AI生成直播文案,生成数字人形象进行直播,并通过RAG技术对现有数据进行寻找后实时回答用户问题等AI直播卖货的所有功能。
项目地址:https://github.com/PeterH0323/Streamer-Sales