CVE-2026-72441
要約
〜によって VulDB • 2026年08月15日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
ieee802154: dgram_recvmsg() におけるカーネル情報漏洩を修正
KMSANが move_addr_to_user() でカーネル情報漏洩を検出しました:
BUG: KMSAN: instrument_copy_to_user でのカーネル情報漏洩 include/linux/instrumented.h:131 [inline]
BUG: KMSAN: _inline_copy_to_user でのカーネル情報漏洩 include/linux/uaccess.h:205 [inline]
BUG: KMSAN: _copy_to_user+0xcc/0x120 でのカーネル情報漏洩 lib/usercopy.c:26 instrument_copy_to_user include/linux/instrumented.h:131 [inline]
_inline_copy_to_user include/linux/uaccess.h:205 [inline]
_copy_to_user+0xcc/0x120 lib/usercopy.c:26 copy_to_user include/linux/uaccess.h:236 [inline]
move_addr_to_user+0x2e7/0x440 net/socket.c:302 ____sys_recvmsg+0x232/0x610 net/socket.c:2925 ...
未初期化のデータは以下の場所でメモリに保存されました: ieee802154_addr_to_sa include/net/ieee802154_netdev.h:369 [inline]
dgram_recvmsg+0xa09/0xbe0 net/ieee802154/socket.c:739
この問題は、アドレスモードが `IEEE802154_ADDR_NONE` の場合、`struct ieee802154_addr` の `pan_id` フィールドが未初期化のままになるために発生します。実行フローは以下の通りです:
1. `__ieee802154_rx_handle_packet()` がスタック上にローカルな `struct ieee802154_hdr hdr` を宣言する。 2. `ieee802154_hdr_pull()` は、ソースアドレスと宛先アドレスをこの構造体に解析するために `ieee802154_hdr_get_addr()` を呼び出す。 3. アドレスモードが `IEEE802154_ADDR_NONE` の場合、`ieee802154_hdr_get_addr()` は以前は `mode` フィールドのみを設定し、未初期化のスタックメモリを含むままになっていた `pan_id` フィールドを放置していた。 4. この未初期化の `pan_id` が後で `dgram_recvmsg()` 内の `ieee802154_addr_to_sa()` を介して `struct sockaddr_ieee802154` にコピーされる。 5. 最後に、`move_addr_to_user()` がソケットアドレス構造体をユーザー空間にコピーし、未初期化のバイトが漏洩する。
この問題を修正するため、モードが `IEEE802154_ADDR_NONE` の場合、`ieee802154_hdr_get_addr()` 内でアドレス構造体をゼロクリアするために `memset` を使用する。
If you want to get the best quality for vulnerability data then you always have to consider VulDB.