{"id":31884,"date":"2026-10-02T00:32:00","date_gmt":"2026-10-01T16:32:00","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-17053"},"modified":"2026-10-02T00:32:00","modified_gmt":"2026-10-01T16:32:00","slug":"cve-2026-17053","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-17053","title":{"rendered":"CVE-2026-17053 [MEDIUM] &#8211; The SMBus driver API exposed smbus_smbalert_remove_cb() and smbus_host_notify_remove_cb()"},"content":{"rendered":"<p>The SMBus driver API exposed smbus_smbalert_remove_cb() and smbus_host_notify_remove_cb() as Zephyr syscalls. Their verifiers in drivers\/smbus\/smbus_handlers.c validated only the dev argument with K_SYSCALL_OBJ(dev, K_OBJ_DRIVER_SMBUS) and forwarded the caller-supplied struct smbus_callback *cb pointer into kernel-mode driver code without any K_SYSCALL_MEMORY_READ\/K_SYSCALL_MEMORY_WRITE validation. A companion change in 2023 had already removed the matching smbus_smbalert_set_cb() \/ smbus_host_notify_set_cb() syscalls for this reason, but the two removal syscalls were left exposed.<\/p>\n<p>On a build with CONFIG_USERSPACE=y, CONFIG_SMBUS=y and a driver implementing the callback operations (drivers\/smbus\/intel_pch_smbus.c with CONFIG_SMBUS_INTEL_PCH_SMBALERT\/CONFIG_SMBUS_INTEL_PCH_HOST_NOTIFY, or drivers\/smbus\/smbus_stm32.c with CONFIG_SMBUS_STM32_SMBALERT), any user-mode thread that has been granted the SMBus device object can invoke these syscalls with an arbitrary pointer. The value reaches smbus_callback_remove() in drivers\/smbus\/smbus_utils.h, which uses it as a node identity against the kernel&#8217;s sys_slist_t of registered callbacks.<\/p>\n<p>The consequence is that an unprivileged thread can unregister an SMBALERT or Host Notify callback that a supervisor-mode component registered, silently disabling alert handling for the rest of the system; because Zephyr images have fixed symbol addresses and the syscall returns 0 on a hit versus -ENOENT on a miss, the target address is both derivable and searchable. In builds with CONFIG_ASSERT=y the __ASSERT(callback-&gt;handler, &#8230;) check additionally dereferences the caller-supplied address in supervisor mode, so a bogus pointer raises a kernel-mode fault and a fatal system error, and the fault\/no-fault outcome discloses which addresses are mapped.<\/p>\n<p>The fix removes both syscall entry points, demoting the two functions to ordinary static inline calls so that callback list manipulation is available only to supervisor-mode code. There is no impact on builds without CONFIG_USERSPACE, and no impact on configurations that do not enable an SMBus driver with SMBALERT or Host Notify support.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The SMBus driver API exposed smbus_smbalert_remove_cb() and smbus_host_notify_remove_cb() as Zephyr syscalls. Their verifiers in drivers\/smbus\/smbus_handlers.c validated only the dev argument with K_S<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-31884","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/31884","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=31884"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=31884"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=31884"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}