
OpenAI 的 Codex AI 模型通过利用全局可写的内核驱动接口,成功在一台真实的三星智能电视上实现权限提升至 root。这一发现对硬件厂商如何处理消费电子设备的安全性提出了严峻质疑。
这项由 CALIF 于 2026 年 4 月 14 日发布的实验,始于已在电视上建立的浏览器级立足点。研究人员从三星电视浏览器应用内的代码执行开始,该应用在 uid=5001 的低权限用户上下文下运行。
实验设置与初始访问
研究团队为 Codex 提供了对实时设备的直接访问权限,同时匹配了 KantS2 固件源代码树------这是三星内部对该型号智能电视固件的平台名称。核心问题很明确:在现实的攻击后场景下,AI 能否在不被指向任何特定漏洞的情况下,将初始立足点一路提升至 root 权限?
CALIF 分析师指出,Codex 从未被引导至特定驱动程序,未被指示查看物理内存,也未获得任何关于内核凭证的信息。AI 必须自行枚举目标攻击面,阅读三星的供应商驱动程序源代码,并针对实时设备验证每个发现------这种行为与熟练的人类渗透测试人员在真实环境中的工作方式高度相似。
系统环境与规避技术
该电视在三星 Tizen 平台下运行 Linux 内核 4.1.10,包含未授权执行防护(UEP)功能,可阻止未签名二进制文件从磁盘运行。研究环境已包含一个 memfd 包装器,该辅助工具将程序加载到匿名内存文件描述符中,并从内存而非文件路径运行它们,从而完全绕过 UEP。Codex 在整个会话期间使用此方法来部署和运行其自定义构建的静态 ARMv7 二进制文件,而不会触发任何基于磁盘的执行检查。
漏洞发现与利用
在枚举过程中,Codex 从 ntk* 驱动系列中识别出三个全局可写的设备节点:ntkhdma、ntksys 和 ntkxdma。这些接口在设备列表中显示为crw-rw-rw-,属于三星随固件提供的 Novatek Microelectronics 堆栈。由于这三个接口均可从浏览器 shell 访问,已加载到设备上,并存在于发布的 KantS2 源代码树中,它们构成了本次会话的主要攻击面。
权限提升技术细节
核心漏洞位于/dev/ntksys,这是一个三星内核驱动程序,允许用户空间程序注册物理内存地址和大小,然后通过mmap将该内存直接映射到自己的进程空间。安全研究人员称此为 physmap 原语------它为非特权代码提供了对物理内存的原始读写访问权限,无需任何内核代码执行技巧。
根本原因是一个出厂设置的 udev 规则授予了全局可写权限(KERNEL=="ntksys", MODE="0666"),再加上驱动程序仅验证表槽索引而忽略请求范围是否与内核拥有或特权内存重叠。这在ker_sys.c第 1158 行附近可见,攻击者提供的地址被存储到一个槽中,随后由vk_remap_pfn_range逐字重新映射。
完整攻击链分析
Codex 逐步构建了漏洞利用程序。它首先查询/dev/ntkhdma,该设备向非特权调用者返回 DMA 缓冲区的物理地址(0x84840000),为 Codex 提供了一个已知良好的页面进行测试。然后,它通过 ntksys 映射该页面,并确认可以从浏览器 shell 对其进行读写。在验证原语有效后,Codex 从/proc/cmdline扫描 RAM 窗口,通过匹配存储的 uid 和 gid 值找到浏览器进程的cred结构,并将这些字段清零。最终的 shell 确认了完整的权限提升:uid=0(root) gid=0(root)。
安全建议
三星和其他使用类似驱动堆栈的厂商应:
- 将 ntk* 设备节点权限限制为仅限特权进程
- 从任何内存管理接口中移除全局可写的 udev 规则
- 在允许任何
mmap调用前,在 ntksys 驱动程序中添加物理范围验证
消费固件中嵌入的第三方内核组件在出厂前应按照最小权限原则进行审计。完整的技术分析和概念验证代码可在 CALIF GitHub 仓库的 MADBugs/samsung-tv 下获取。