目标达成 感谢每一位支持者 — 我们达成了 100% 目标!

目标: 1000 元 · 已筹: 1359 元

100%

CVE-2026-87039— I2S 配置系统调用处理程序远程代码执行漏洞

一分钟漏洞结论

影响对象
zephyrproject zephyr
利用判断
尚无明确在野利用证据,仍需结合暴露面评估
建议动作
优先检查厂商安全公告和参考链接中的修复版本;无法立即升级时,限制受影响服务暴露并加强监测。

在 中,用户态系统调用验证器 会从用户内存复制调用者提供的 结构体。然而,当 为 0(即 API 的“取消配置流”请求)时,该函数会直接跳转到 ,而未执行针对 的 所有权/类型检查,也未执行 的合理性检查。 由于 字段是一个 指针,这意味着在该路径下,一个完全未经验证、由用户任意指定的指针会直接传入驱动程序代码。而驱动程序代码通常默认该指针指向一个合法的内核对象,从而信任它。 任何在启用 配置下运行、且能访问 I2S 设备对象的线程,都可以通过单次调用 来触发此漏洞。虽然大多数内核自带(in-tree)的驱动程序会

CVSS 7.8 · High
获取后续新漏洞提醒 登录后订阅

一、 漏洞 CVE-2026-87039 基础信息

漏洞信息

对漏洞内容有疑问?看看神龙的深度分析是否有帮助!
查看神龙十问 ↗

尽管我们使用了先进的大模型技术,但其输出仍可能包含不准确或过时的信息。神龙努力确保数据的准确性,但请您根据实际情况进行核实和判断。

Vulnerability Title
I2S configure syscall handler passes an unvalidated user-supplied kernel object pointer to drivers
来源: CVE Program / CVE List V5
Vulnerability Description
The user-mode syscall verifier z_vrfy_i2s_configure() in drivers/i2s/i2s_handlers.c copies the caller's struct i2s_config in from user memory and then, when cfg->frame_clk_freq is 0 (the API's "unconfigure the stream" request), jumps straight to z_impl_i2s_configure() without performing the K_SYSCALL_OBJ(config.mem_slab, K_OBJ_MEM_SLAB) ownership/type check or the block_size sanity check. The mem_slab field is a struct k_mem_slab *, so on that path a completely unvalidated, user-chosen pointer reaches driver code that is entitled to trust it as a real kernel object. Any thread running under CONFIG_USERSPACE that has access to an I2S device object can trigger this with a single i2s_configure() call. Most in-tree drivers special-case frame_clk_freq == 0 and never store the caller's structure, but drivers/i2s/i2s_litex.c does not: i2s_litex_configure() only logs a warning for a mismatched frame clock, then memcpy()s the caller's config into stream->cfg and marks the stream I2S_STATE_READY. A subsequent i2s_trigger() with I2S_TRIGGER_START enables the FIFO interrupt, and the interrupt handlers i2s_litex_isr_rx() / i2s_litex_isr_tx() then call k_mem_slab_alloc() and k_mem_slab_free() on the attacker-supplied pointer in supervisor context. The result is an arbitrary-pointer read/write primitive executed by the kernel on behalf of an unprivileged thread — k_mem_slab_alloc() takes a spinlock at slab->lock and reads and writes slab->free_list and the link word inside the returned "block" — which defeats the CONFIG_USERSPACE isolation boundary entirely. The same missing validation is a hazard for out-of-tree I2S drivers that retain the configuration on the unconfigure path. Builds without CONFIG_USERSPACE are unaffected, since the verifier is not used. The fix zeroes config.mem_slab and config.block_size on the unconfigure path so the driver can never receive an unvalidated pointer, while still allowing a stream to be unconfigured by a caller that does not own a memory slab, as the API documents.
来源: CVE Program / CVE List V5
CVSS Information
CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H
来源: CVE Program / CVE List V5
Vulnerability Type
跨界内存写
来源: CVE Program / CVE List V5

受影响产品

厂商 产品 影响版本 CPE 订阅
zephyrproject zephyr 4.4.0 ~ 4.5.0 -

二、漏洞 CVE-2026-87039 的公开POC

# POC 描述 源链接 神龙链接
AI 生成 POC 高级

未找到公开 POC。

登录以生成 AI POC

三、漏洞 CVE-2026-87039 的情报信息

请登录查看更多情报信息。

CVE-2026-87039 其他参考 (2)

同批安全公告 · zephyrproject · 2026-11-04 · 共 8 条

CVE-2026-16511 8.8 HIGH RTIO 系统调用验证器未验证用户指针漏洞
CVE-2026-87040 8.3 HIGH 蓝牙 LE 控制器越界读写漏洞
CVE-2026-87041 7.8 HIGH RTIO 系统调用验证器内存权限检查反转漏洞
CVE-2026-87038 7.0 HIGH Zephyr i3c_transfer() 竞态条件导致内核控制流劫持漏洞
CVE-2026-87044 6.5 MEDIUM Mbed TLS 加密组件远程拒绝服务漏洞
CVE-2026-85036 5.7 MEDIUM 蓝牙 AVDTP 会话重用导致系统工作队列损坏漏洞
CVE-2026-87043 4.8 MEDIUM glibc sys_rand_get 熵设备未就绪时返回未写缓冲区漏洞

IV. Related Vulnerabilities