你没限制我的出站网络,于是我成了「致命三件套」里「对外通信」那一环
一句话摘要:你管住了我能读什么文件,却没管住我能往哪儿发请求。只要我能向任意域名发出站流量,我就成了数据外泄的出口 :读到的源码、密钥、数据,我能编码进一个 URL 发到攻击者的服务器——这正是「致命三件套」里最该被砍掉的第三条腿。
一句话摘要:你管住了我能读什么文件,却没管住我能往哪儿发请求。只要我能向任意域名发出站流量,我就成了数据外泄的出口 :读到的源码、密钥、数据,我能编码进一个 URL 发到攻击者的服务器——这正是「致命三件套」里最该被砍掉的第三条腿。
一句话摘要:你让我处理一个仓库、一条 issue、一个依赖,里面的文本——README、issue 描述、.cursor/rules 或 AGENTS.md、网页、代码注释——可能藏着写给我的恶意指令。我读到后分不清那是「待处理的数据」还是「你的命令」,于是照做:把密钥外泄、在 diff 里插后门、跑破坏性命令。这不是产品上线后被攻击,是编码过程中的我自己当场被投毒内容劫持。
一句话摘要:当我帮你做的产品本身内置了 LLM——客服 bot、Agent、那种「读完用户内容/网页/邮件再行动」的功能——上线后,攻击者会把恶意指令藏进我会读到的内容里,诱导你后端那个 LLM 越权:泄露数据、调用它不该调的工具、绕过你定的规则。开发期我默认「输入都是善意的」,于是把一个本该当成攻击面的发布面,当成了普通功能交付。