本文へ移動

#CVE-2026-85035

脆弱性の一覧へ戻る

編集部の見出し:Zephyr:一覧で 8.8(個別記録は未開封)

CVE(NVD)CVSS 8.8 HighEPSS 0.2%

NVD の情報

The can_add_rx_filter_msgq() system call installs a CAN RX filter whose callback (can_msgq_put() in drivers/can/can_common.c) is handed the caller's struct k_msgq * as user_data. The controller driver stores that raw pointer in its filter table and dereferences it from the RX path every time a matching frame arrives. The system call verifier z_vrfy_can_add_rx_filter_msgq() in drivers/can/can_handlers.c validated the queue only with K_SYSCALL_OBJ(), which is a point-in-time check of type, initialization and caller permission and says nothing about the object's lifetime. On a build with CONFIG_USERSPACE=y and CONFIG_DYNAMIC_OBJECTS=y, an unprivileged user-mode thread that has been granted access to a CAN device can obtain a message queue whose lifetime it fully controls: k_object_alloc(K_OBJ_MSGQ) followed by k_msgq_alloc_init(). The lifetime of such an object is driven solely by its permission bitmask, and a pointer retained by the kernel is not represented there. After registering the filter, the thread calls k_object_release() — or simply terminates — and unref_check() frees the struct k_msgq storage while the CAN driver still holds the pointer. The next matching CAN frame causes k_msgq_put() to run in supervisor context against freed memory that the attacker can have groomed with another kernel allocation: the frame payload is memcpy()d through the reused block's write_ptr, and the queue's wait_q (and poll_events under CONFIG_POLL) list nodes are manipulated. This yields kernel-heap corruption reachable from a user-mode thread, defeating the isolation CONFIG_USERSPACE is intended to provide; the same dangling pointer also arises benignly when an application thread exits without calling can_remove_rx_filter(). The fix validates the queue with K_SYSCALL_OBJ_STATIC(), which additionally rejects objects carrying K_OBJ_FLAG_ALLOC, so only statically defined queues (CAN_MSGQ_DEFINE()) may be registered from user mode. Supervisor-mode callers bypass the verifier and must themselves keep the queue valid until the filter is removed.

公開日
2026-11-03
最終更新(NVD)
2026-11-03
NVD の状態
Awaiting Analysis
脆弱性の種類
CWE-416

深刻度(CVSS)

  • 8.8 HighCVSS 3.1/副/評価:vulnerabilities@zephyrproject.orgCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H

悪用の状況

CISA KEV には掲載されていません(掲載されていないことは、悪用されていないことの証明ではありません)。

EPSS:今後30日に悪用される推定確率 0.23%(全体の上位 86.3%、評価日 2026-11-05)

解消方法

  • 解消方法の情報なし

「NVD の条件から推定」は、NVD が影響ありとする版の上限から読み取ったもので、修正版とは限りません。「解消方法の情報なし」は、修正が無いという意味ではありません。必ずベンダーの公告で確認してください。

編集部の記載(レポート掲載時)

レポートの編集部がベンダー公告などから転記した内容です。検証済みの値ではないため、必ず出典で確認してください。

参照(NVD)

NVD から取得:2026-11-05T16:10:21.260Z/EPSS 評価日:2026-11-05

This product uses the NVD API but is not endorsed or certified by the NVD.

悪用の確認情報は CISA Known Exploited Vulnerabilities Catalog(NVD 経由で取得)によります。EPSS は FIRST(www.first.org/epss)によります。