近日,OpenAI 旗下的 Codex AI 模型在一项安全研究中取得突破,成功在一台真实的三星智能电视上实现了权限提升,最终获得了 root 权限。这一事件再次引发了人们对消费电子设备安全性的深度关注。该实验由 CALIF 团队于 2026年4月1日披露,研究起始于电视浏览器应用的低权限用户(uid=5001)环境,通过巧妙地利用内核驱动接口的权限配置漏洞,最终突破了系统的安全防线。
技术解析:从浏览器到 Root 的权限提升路径
1. 初始立足点与设备环境
Codex 的渗透之旅始于三星智能电视自带的浏览器应用,该应用通常运行在一个权限受限的环境中。实验目标设备搭载了三星自家的 Tizen 平台,其底层为 Linux 内核 4.1.10。虽然该内核配备了未授权执行防护(UEP)机制,理论上可以阻止未签名的二进制文件直接运行,但研究团队已经通过 memfd 包装器将程序加载至内存运行,从而绕过了 UEP 的限制,为后续探索奠定了基础。
2. 关键漏洞:全局可写的驱动接口
在对系统设备节点进行枚举时,Codex 发现了三星固件中一个严重的安全隐患。由 Novatek Microelectronics 提供的 ntk* 驱动系列(包括 ntkhdma、ntksys、ntkxdma)存在高危配置问题——其设备节点的权限被设置为全局可写(crw-rw-rw-)。其中,/dev/ntksys 接口成为了关键的突破口:该驱动允许用户空间程序注册物理内存地址,并通过 mmap 系统调用直接将这段物理内存映射到进程的地址空间中,整个过程绕过了内核的常规权限验证。
3. 漏洞利用原理
- 获取物理地址:Codex 首先通过
/dev/ntkhdma 驱动获取了 DMA 缓冲区的物理地址(0x84840000)。
- 验证内存访问:随后,利用
ntksys 接口映射该地址,验证了对该物理内存区域是否具备读写权限。
- 定位关键结构:通过扫描
/proc/cmdline 获取内核内存布局信息,进而定位到浏览器进程在内核中用于存储身份凭证的 cred 结构体(其中包含了 uid、gid 等信息)。
- 篡改权限:最后,通过直接对该
cred 结构体中的 uid 和 gid 字段进行清零操作,成功将进程权限提升至 uid=0,也就是 root 权限。
漏洞核心源于两方面缺陷
- udev 规则过度宽松:为
ntksys 设备节点配置的 udev 规则将权限模式设置为 MODE="0666"(全局可读可写),这严重违反了操作系统安全设计中的“最小权限原则”。
- 内核驱动验证不足:
ntksys 驱动在代码层面(ker_sys.c 第 1158 行附近)仅校验了表槽索引,却没有对内存映射的范围进行安全检查,例如判断其是否与内核空间或其它特权内存区域发生冲突,这使得用户可以“合法”地映射并修改关键的内核数据结构。
安全修复建议
针对此类漏洞,三星及采用类似方案的设备厂商有必要采取以下加固措施:
- 严格限制
ntk* 系列设备节点的访问权限,仅允许特定的特权进程或用户组进行访问。
- 审查并删除或修改那些赋予内存管理接口全局可写权限的 udev 规则。
- 在
ntksys 驱动的内存映射功能中,增加对目标物理地址范围的严格安全验证,防止用户空间程序非法访问内核空间。
- 建立并执行对第三方提供的内核驱动组件进行出厂前安全审计的流程,确保其符合最小权限原则。
这次由 Codex AI 主导的安全/渗透/逆向实践,不仅展示了大语言模型在自动化漏洞挖掘与利用方面的潜力,也像一面镜子,映照出消费级IoT设备在网络/系统底层安全上普遍存在的盲点。对技术细节感兴趣的朋友,可以移步 云栈社区 与更多安全爱好者交流探讨。
资讯来源:CALIF

|