CVE-2026-9728 in Zephyr
Сводка
по VulDB • 24.08.2026
Верификатор системных вызовов в пространстве пользователя z_vrfy_mbox_send(), расположенный в файле drivers/mbox/mbox_handlers.c, проверял поля msg->data и msg->size структуры, напрямую считывая их из активной памяти пространства пользователя, а затем передавал оригинальный указатель на структуру mbox_msg * (msg), который всё ещё мог изменяться пользователем, функции z_impl_mbox_send() и соответствующему драйверу. В промежутке между проверкой доступа и использованием msg->data в драйвере этот проверенный указатель мог быть заменён, что создавало окно уязвимости типа time-of-check/time-of-use (TOCTOU).
В системе, собранной с параметром CONFIG_USERSPACE, любой непривилегированный поток пространства пользователя может вызвать системный вызов mbox_send(). Второй поток, разделяющий адресное пространство с вызывающим потоком, может выполнить атаку на опережение (race condition), чтобы перезаписать msg->data супертским (ядерным) адресом после того, как проверка границ верификатором успешно пройдена, но до момента разыменования этого указателя драйвером. В результате драйвер выполняет чтение из адреса, выбранного злоумышленником, в контексте супервизора (например, операция memcpy(&data32, msg->data, msg->size) в почтовом драйвере NXP, байты которой затем передаются на конечную точку другогоmailbox-устройства).
Последствиями являются обход контроля доступа из пространства пользователя к уровню супертвизора: раскрытие содержимого памяти ядра (высокое влияние на конфиденциальность) или, в случае недействительного/неотображенного целевого адреса, сбой чтения ядра, приводящий к отказу в обслуживании. Исправление заключается в создании снимка всей структуры mbox_msg путем копирования её в стек ядра с помощью функции k_usermode_from_copy() и передачи этой неизменяемой копии для дальнейшей проверки и использования, что устраняет состояние гонки (race condition).
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.