<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>安全研究 on Codexer</title><link>https://codexer.com/tags/%E5%AE%89%E5%85%A8%E7%A0%94%E7%A9%B6/</link><description>Recent content in 安全研究 on Codexer</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Tue, 19 May 2026 09:00:00 +0800</lastBuildDate><atom:link href="https://codexer.com/tags/%E5%AE%89%E5%85%A8%E7%A0%94%E7%A9%B6/index.xml" rel="self" type="application/rss+xml"/><item><title>你的终端在骗你：Codex CLI 的 ANSI 注入漏洞如何演变成远程代码执行</title><link>https://codexer.com/posts/2026-05-19-codex-ansi-injection-rce/</link><pubDate>Tue, 19 May 2026 09:00:00 +0800</pubDate><guid>https://codexer.com/posts/2026-05-19-codex-ansi-injection-rce/</guid><description>&lt;h2 id="当你的终端在对你说谎"&gt;当你的终端在对你说谎&lt;/h2&gt;
&lt;p&gt;你每天打开终端，输入命令，看着屏幕上输出的文字。你信任它。你信任那些绿色的 &amp;ldquo;✓ Security policy enforced&amp;rdquo;，信任那些显示在屏幕上的 sandbox 设置和 approval 级别。&lt;/p&gt;
&lt;p&gt;但如果有人能让终端显示假的信息呢？如果你看到的 &amp;ldquo;安全策略已生效&amp;rdquo; 其实是攻击者注入的，而真正的设置是 &amp;ldquo;完全不设防&amp;rdquo; 呢？&lt;/p&gt;
&lt;p&gt;这不是假设场景。2026 年 2 月，安全研究员 Dimitar Ganev 在 OpenAI 的 Codex CLI（v0.91.0）中发现了这样一个漏洞。他不仅实现了终端显示欺骗，还将其升级为跨平台的远程代码执行（RCE）。&lt;/p&gt;
&lt;p&gt;这篇文章就来拆解这个漏洞的技术细节、攻击链路，以及它给所有 AI 编程工具敲响的安全警钟。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="漏洞起点一个没被清洗的参数"&gt;漏洞起点：一个没被清洗的参数&lt;/h2&gt;
&lt;p&gt;故事的起点很简单。Ganev 在用 Codex CLI 的 &lt;code&gt;codex exec&lt;/code&gt; 模式尝试生成多个子代理（sub-agent）时，注意到一个细节：通过 &lt;code&gt;--model&lt;/code&gt; 参数传入的模型名称，会被直接打印到终端输出里，没有任何过滤或转义。&lt;/p&gt;
&lt;p&gt;正常情况下，&lt;code&gt;codex exec&lt;/code&gt; 的输出是这样的：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;OpenAI Codex v0.91.0 (research preview)
--------
workdir: /home/user/project
model: o4-mini
approval: never
sandbox: workspace-write [workdir, /tmp, $TMPDIR]
reasoning effort: high
--------
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;这些信息是安全配置的关键展示：sandbox 模式是什么，审批策略是什么，工作目录在哪里。用户根据这些信息来判断当前 Codex 的运行是否安全。&lt;/p&gt;
&lt;p&gt;问题在于，&lt;code&gt;--model&lt;/code&gt; 参数的值是&lt;strong&gt;用户可控输入&lt;/strong&gt;，而且它被直接反射到了终端输出中，没有任何 ANSI 转义字符的清洗。&lt;/p&gt;</description></item><item><title>Codex 攻破三星电视：当 AI 学会挖内核漏洞，人类还剩下什么？</title><link>https://codexer.com/posts/2026-05-15-codex-hacked-samsung-tv/</link><pubDate>Fri, 15 May 2026 10:00:00 +0800</pubDate><guid>https://codexer.com/posts/2026-05-15-codex-hacked-samsung-tv/</guid><description>&lt;h2 id="一台电视一个-shell一个-ai"&gt;一台电视，一个 shell，一个 AI&lt;/h2&gt;
&lt;p&gt;想象一下这个场景：你手里有一台三星智能电视，你已经通过某种方式拿到了浏览器进程的 shell 权限。这个权限很低，uid=5001，离 root 还隔着一整座内核的大山。现在，你把 SSH 登录信息、固件源码、交叉编译工具链都交给一个 AI，然后对它说：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;「目标：提权到 root。方法不限。开始吧。」&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;这就是安全研究团队 Calif 在 2026 年 4 月做的事。他们给 Codex 配了一个完整的操作环境，然后坐在旁边看着。几天后，Codex 交出了 root shell。&lt;/p&gt;
&lt;p&gt;这篇文章，我们就来拆解这场实验的每一个环节。不是为了惊叹，而是为了理解：当 AI 具备了自主漏洞挖掘和利用的能力，安全世界正在发生什么变化。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="实验设定不是给答案是给环境"&gt;实验设定：不是「给答案」，是「给环境」&lt;/h2&gt;
&lt;p&gt;这个实验最关键的设定是：&lt;strong&gt;研究人员没有告诉 Codex 漏洞在哪里，也没有暗示攻击路径&lt;/strong&gt;。他们只是提供了一个 Codex 能够真正操作的环境。&lt;/p&gt;
&lt;p&gt;这个环境有六个组件：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. 浏览器 foothold&lt;/strong&gt;。电视上的浏览器进程已经被攻破，Codex 的起点是一个 uid=5001 的普通用户 shell。任务不是「怎么打进去」，而是「打进去之后怎么走到 root」。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. 控制器主机&lt;/strong&gt;。一台独立的机器，负责交叉编译 ARMv7 二进制文件，托管 HTTP 文件服务，同时维护着连接到电视的 tmux 会话。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3. Shell 监听器&lt;/strong&gt;。目标电视的 shell 是通过 &lt;code&gt;tmux send-keys&lt;/code&gt; 驱动的。这意味着 Codex 不能像操作普通终端那样交互，它必须把命令注入到已经运行的 shell 里，然后从日志中找回结果。这比直接交互麻烦得多。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;4. 匹配的固件源码&lt;/strong&gt;。团队提供了 KantS2（三星智能电视固件的内部代号）的完整内核驱动源码树。Codex 可以审计三星自己的驱动代码，然后在真机上验证发现。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;5. 执行限制&lt;/strong&gt;。目标电视需要静态链接的 ARMv7 二进制文件。而且三星 Tizen 系统有 UEP（未授权执行防护），未签名的程序不能直接从磁盘运行。&lt;/p&gt;</description></item></channel></rss>