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

目标: 1000 元 · 已筹: 1359 元

100%

CVE-2026-90834— Windows UART 宽数据系统调用验证器空指针调用漏洞

一分钟漏洞结论

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

在 中,针对 16 位("宽数据")UART API 的用户态系统调用验证器错误地校验了驱动操作。具体而言, 、 和 这三个函数均调用 去校验 8 位操作(即 、 、 ),而非其对应实现实际解引用的 16 位操作(即 、 、 )。 位于 中的实现函数 、 和 会无条件地调用这些操作,且自身未包含任何空指针(NULL)检查,因为原本应由验证器确保这些操作的存在性。 是一个由应用程序选配的选项,没有任何驱动程序主动启用它;树中仅有少数串口驱动实现了任何 操作,其余驱动均将 中对应的成员保留为 NULL,同时仍提供旧检查

CVSS 5.5 · Medium
获取后续新漏洞提醒 登录后订阅

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

漏洞信息

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

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

Vulnerability Title
UART wide-data syscall verifiers check the 8-bit driver op, allowing a user-mode thread to trigger a NULL function-pointer call in kernel mode
来源: CVE Program / CVE List V5
Vulnerability Description
The user-mode syscall verifiers for the 16-bit ("wide data") UART API in drivers/serial/uart_handlers.c validated the wrong driver operation. z_vrfy_uart_poll_out_u16(), z_vrfy_uart_tx_u16() and z_vrfy_uart_rx_enable_u16() each ran K_SYSCALL_DRIVER_UART() against the 8-bit op (poll_out, tx, rx_enable) rather than the 16-bit op that the corresponding implementation dereferences (poll_out_u16, tx_u16, rx_enable_u16). z_impl_uart_poll_out_u16(), z_impl_uart_tx_u16() and z_impl_uart_rx_enable_u16() in include/zephyr/drivers/uart/uart_internal.h call their op unconditionally, with no NULL guard of their own, because the verifier is supposed to have established that the op exists. CONFIG_UART_WIDE_DATA is an application-selectable option that no driver selects, and only a handful of the serial drivers in the tree implement any _u16 operation; every other driver leaves those struct uart_driver_api members NULL while still providing the 8-bit ops the old check inspected. In a build with CONFIG_USERSPACE and CONFIG_UART_WIDE_DATA (plus CONFIG_UART_ASYNC_API for the uart_tx_u16() and uart_rx_enable_u16() variants), an unprivileged user-mode thread that legitimately holds access to such a UART device object can invoke the _u16 syscall: the object, permission and op checks all pass, and the kernel-side implementation then performs an indirect call through a NULL function pointer while running at supervisor privilege. The result is a CPU exception taken in kernel context instead of the intended K_OOPS or -ENOSYS return. With the default k_sys_fatal_error_handler() this halts the system (or warm-reboots it under CONFIG_RESET_ON_FATAL_ERROR), so a thread confined by the userspace sandbox can deny service to the whole device — a capability the user-mode privilege boundary is specifically meant to withhold. The call target is a fixed NULL, so there is no attacker-controlled code execution and no memory disclosure; the separate K_SYSCALL_MEMORY_ARRAY_READ()/K_SYSCALL_MEMORY_ARRAY_WRITE() bounds checks on the caller's buffer were and remain correct. The fix points each verifier at the matching _u16 op, using a plain K_SYSCALL_OBJ() object check where the op does not exist or where the implementation already tests it for NULL.
来源: CVE Program / CVE List V5
CVSS Information
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
来源: CVE Program / CVE List V5
Vulnerability Type
空指针解引用
来源: CVE Program / CVE List V5

受影响产品

厂商 产品 影响版本 CPE 订阅
zephyrproject zephyr 3.0.0 ~ 4.3.2 -

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

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

未找到公开 POC。

登录以生成 AI POC

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

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

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

同批安全公告 · zephyrproject · 2026-11-10 · 共 6 条

CVE-2026-82391 9.1 CRITICAL Zephyr HTTP/2 服务器越界写入漏洞
CVE-2026-77685 8.3 HIGH 蓝牙经典协议栈 RFCOMM 整数下溢漏洞
CVE-2026-90833 7.8 HIGH 模拟 EEPROM 驱动越界读写漏洞
CVE-2026-87042 6.5 MEDIUM Zephyr PTP 远程拒绝服务漏洞
CVE-2026-90832 4.3 MEDIUM 蓝牙主机周期性广告报告重组越界读取漏洞

IV. Related Vulnerabilities