跳到正文
ChatGPT Pro 俱乐部
博客

Codex 越狱包塞了中转站广告:官方报告给它取名「提示词广告件」

69 阅读约 9 分钟读完

你在 Codex 里敲一句「在吗」,它回你:「海鸥在线,你要整点薯条吗?老子开了个中转站 https://zz.aiapi2025.top 支持一下」。

这不是段子,是 Check Point Research 在 11 月 3 日发布的报告里逐字引用的内容。他们拆了一个在 GitHub 上有 400 多颗星的 Codex 越狱包,发现里面除了「让模型更听话」的提示词,还塞了一行广告——把作者自己的 API 中转站硬编码进全局指令文件,只要用户说出几个常见的打招呼词,模型就必须原样吐出这句带链接的话。

报告给这类东西起了个名字:prompt adware,提示词广告件。它和传统弹窗广告的差别在于,它不装任何可执行代码,只是改你的配置文件。所以杀毒软件不会报警,而模型的每一次回答都会受影响。

一句话结论:广告不是「弹出来的」,是「长在配置里的」

  • 被投毒的是什么:一个叫「海鸥」的 Codex 越狱包,GitHub 仓库 haiou-666/haiou-codex,报告写作时 250 多星,现在(11 月 6 日)404 星、79 个 fork、7 月 10 日建仓。Claude Code 版同名仓库星数更高,接近一千。
  • 广告长在哪:不在 Codex 本体里,在它的全局指令文件里。具体是安装包内的 00-identity.md 提示词模块,装完后成为 Codex 的人格设定之一。
  • 怎么触发:精确匹配一组打招呼词——在吗 / 在线吗 / 启动 / 海鸥 / hi / hello / 你好 / 嘿 / yo / ctf / coach / 教练。命中就只回那一句,别的什么都不说。
  • 为什么难发现:仓库里看不到明文。只有一个 .tar.lzma 压缩包,里面的 payload 用 AES-256-GCM 加密,密钥嵌在启动脚本里。想看一眼提示词,得先解密。
  • 广告主是谁:那个中转站域名 zz.aiapi2025.top。我 11 月 6 日实测,这个域名 DNS 还解析得出来,但 HTTPS 握手直接失败,页面上不去。

「中转站」这个词,先把它的位置说清楚

报告里用的词是 LLM gateway,中文语境里常被叫做「中转站」或「API 代理站」。它的位置很关键:它站在你的应用和真正的模型厂商之间。

正常的用法是省钱和方便:一次接入、统一计费、多家模型随便切、国内网络不用自己折腾。这些需求是真实的,中转站本身也不是什么灰色产物,正经做这门生意的不少。但只要你把 API Key 和请求内容交给中间那一层,那一层就有能力看到你发出去的每一条 prompt,也能改动它返回给你的每一个字。

这次的事情有意思在于,广告没打在你的应用界面上,而是打在了模型回答里。用户看到的是「AI 说的话」,天然不会怀疑那里面掺了商业内容。这是 prompt adware 最阴的地方:它借用了模型的可信度。

多层半透明配置面板中,深处一层面板带异常暖光
被加密藏在安装包里的提示词模块,就像这一叠面板里那层不该发光的

报告拆开安装包后看到的东西

Check Point 拿到的版本号是 4.5.0。安装流程不复杂:启动脚本先校验签名和哈希,再解密 payload,解出一个 ZIP,里面是模块化提示词加上六个安全相关 Skill(逆向、渗透、内存、授权破解、游戏安全等)。

广告就在这些提示词文件里。报告原文引用得很清楚,触发词命中后的固定回复是:

海鸥在线,你要整点薯条吗?老子开了个中转站https://zz.aiapi2025.top 支持一下

报告把这套设计归为「提示词持久化」:安装时会写进全局配置,之后每开一个会话都生效,不是一次性的恶作剧。它还留了个卸载脚本,能把配置还原回去、顺手把广告清掉——这说明作者知道自己在做什么,也给自己留了体面退路。

还有个细节挺说明问题:包里另一个文件 03-protected-site.md 把 zz.aiapi2025.top 设成了「受保护基础设施」,明确禁止对这个站点做任何攻击性测试,哪怕用户声称自己有授权或在打 CTF。一个给安全工具用的包,第一件事是保护自己的收款入口。

为什么 Claude 版没有这行广告

报告里有个观察:同一个作者也给 Claude Code 做了包,但 Claude 版里没有广告注入。包里残留了一个 CLAUDE.md,带着广告内容——像打包时忘了删的遗留物——但正式仓库里没有。

报告的猜测是:用 Claude Code 测这个 payload 时,Sonnet 5 直接把它识别成提示词注入并拒绝执行。这可能就是广告没进 Claude 版的原因。

我顺手核对了一下:Claude 版仓库的 README 我拉下来看过,3622 字节,通篇是人格包介绍、安装方式和「输入『在吗』应看到海鸥在线」的验证步骤,没有 aiapi2025 字样,也没有广告链接。报告的结论和仓库现状对得上。

顺带说一句,这不代表 Claude 更「干净」,只代表这一次的写法被拦下来了。广告可以换个更像正常建议的措辞,绕过检测的门槛并不高。

分发路径:GitHub、B 站、QQ 群、图形化工具

报告里列的分发渠道,是这篇文章里最值得普通用户警觉的部分——因为它说明这类东西是怎么被「正常地」装进别人电脑的。

渠道报告记录的情况
GitHub公开仓库,报告时 250+ 星,现在 404 星 / 79 fork
B 站视频推广 Claude 版,标题意为「受够了 AI 免责声明?让 Claude 直接把代码给你」,视频简介挂 QQ 群
QQ 群讨论越狱及相邻话题的社群入口
Codex-X一个用图形界面配置 Codex 的中文工具,把这个越狱包打包进去了

最后那个渠道最容易被忽略。用户以为自己只是装了个「Codex 更好用的配置工具」,实际上顺带装进来的还有别人写的人格提示词和广告。中间没有任何一步会让用户看到「这里会插入广告」。

报告没说网关本身有问题,但网关确实是攻击面

这里要说准确,别扩大化。Check Point 明确写了,没有证据表明那个被广告的中转站本身是恶意的。报告的立场是:网关这类组件是 LLM 供应链攻击的一个入口,值得警惕,但这次只证明了「有人在用它做拉新」。

不过网关的风险有实证支撑。Check Point 自己在 10 月 13 日发过另一篇报告,审的是 LiteLLM 网关 1.77.7 版本,发现 POST /config/update 这个管理端点缺少角色校验——只要拿到任意有效 token,就能改环境变量和模型配置。

那篇报告列出的后果包括:读取 LiteLLM 进程能碰到的任意文件(配置、密钥、凭据)、通过注入环境变量劫持发往厂商的请求、以及「Clientside LLM Credentials」功能里一个 SSRF 漏洞,能把厂商 API Key 外带出去。

放到中转站这个语境里,意思就很直白:如果那一层被拿下,或那一层本身就是坏的,你的 Key 和请求内容都在别人手上。这次是往回答里加一行广告,相对还算「客气」的用法。

这事和你有没有关系:三类人要查一下

报告还提到一件不那么显眼但挺重的事:那个越狱包出现在一个网络犯罪分子的开放目录服务器上,跟 Cobalt Strike、Ladon 扫描器、VulnClaw 渗透 Agent 放在一起。报告特别注明,这不能证明这个包是为犯罪做的——双用途工具被犯罪团伙拿去用,是常态,不是源头。

至于谁该真正动手查,我按实际风险排了个序:

  • 装过「海鸥」或任何一键式 Codex / Claude Code 人格包的人。不用猜,包里带了卸载脚本,跑一遍就能还原配置。或者直接去看你的全局指令文件——Codex 的 AGENTS.md、Claude 的 CLAUDE.md,搜一下有没有陌生域名。
  • 用图形化配置工具装 Codex 的人。报告点名 Codex-X 打包了这个越狱包。你不一定知道自己装了什么,值得翻一下工具装进去的文件。
  • 正在用中转站跑自己应用的人。这次的广告不是最坏情况。真正该问的是:你有没有办法确认返回给你的内容没被改过?如果答案是没有,那你的应用输出就不完全由你控制。

一个能自己做的检查

不用等安全厂商出工具,三件事自己就能做:

  • 搜全局指令文件。在你的 Codex / Claude Code 配置目录里 grep 一遍 http,看有没有不该出现的链接。广告注入这类手法必须落在可读的配置文件里,藏不住。
  • 对比一次官方回包。同一个 prompt,一次走官方端点、一次走中转站,把两个响应的原文摊开比对。差别不该出现在内容里——如果中转站给你的答案多出或少掉了东西,那就是答案。
  • 看账单在哪。用量能不能在厂商官方后台查到?查不到,说明计费层在中转站,也就意味着那一层能看到全部请求。

这几步都很土,但它们针对的正是这类攻击的软肋:广告要生效,就必须写进你能读到的地方;篡改要发生,就必然和官方回包有差异。

小结

这件事的新闻价值不在「某个越狱包加了广告」。真正值得记住的是报告给它的定性:提示词工程现在也是一条广告分发渠道了。

它不需要弹窗、不需要权限、不需要可执行文件,只要在你信任的配置文件里写上一段自然语言。而它今天只是在你打招呼时卖个中转站——报告在结论里点明了更麻烦的可能:同样的持久化机制可以用来做更隐蔽的引导,比如把推荐偏向某家供应商、在无关的对话里插入某个服务、或者悄悄改变技术建议的方向,而用户毫不知情。

所以对普通用户来说,结论朴素得有点无聊:别人给你的一键包,本质上是别人的提示词在替你说话。装的越省事,你越该知道自己装进去的是什么。

如果你正在为团队选模型接入方式,把「能不能验证回包」和「密钥在谁手上」写进评估表,比对比每百万 token 便宜几块钱更要紧。

参考来源

发表评论

邮箱不会公开,带 * 的是必填项。