【活用ガイド】

JVNDB-2026-023765

LinuxのLinux Kernelにおける解放済みメモリの使用に関する脆弱性

概要

Linuxカーネルにおいて、以下の脆弱性が修正されました。net: usb: rtl8150: rtl8150_start_xmit()内のuse-after-freeを修正しました。syzbotは、usb_submit_urb()が呼び出された後に送信統計のためにskb->lenにアクセスした際、rtl8150_start_xmit()内でKASAN slab-use-after-free読み取りを報告しました。具体的には、BUG: KASAN: slab-use-after-free in rtl8150_start_xmit+0x71f/0x760 drivers/net/usb/rtl8150.c:712 という内容で、タスク kworker/0:4/5226 によるアドレス ffff88810eb7a930 のサイズ4の読み取りが発生しました。URB完了ハンドラのwrite_bulk_callback()はdev_kfree_skb_irq(dev->tx_skb)を介してskbを解放します。URBはusb_submit_urb()が呼び出し元で戻る前に別のCPUのsoftirqコンテキストで完了する可能性があるため、呼び出し元がskb->lenを読む時点でskbは既にCPUごとのcompletion_queueにキューイングされ、net_tx_action()により解放されています。具体的な流れは以下の通りです。 CPU A (送信)では dev->tx_skb = skb; そして usb_submit_urb() が呼ばれ、CPU B (USB完了softirq)では write_bulk_callback() が実行され、dev_kfree_skb_irq(dev->tx_skb) によってskbが解放されます。その後 net_tx_action() と napi_skb_cache_put() により解放処理が完了します。一方、netdev->stats.tx_bytes に対しては += skb->len; が行われ、この時にuse-after-freeの読み取りが発生していました。修正としては、URBを送信する前にskb->lenの値をキャッシュし、tx_bytesカウンタを更新する際はキャッシュした値を用いるようにしました。既存のtx_bytesのセマンティクスは保持しています。カウンタは元のフレーム長(skb->len)を追跡しており、デバイスに渡されるETH_ZLEN/USBアラインメントでパディングされた"count"値ではありません。これを変更するとユーザに見えるアカウンティングの変更となってしまうため、このuse-after-free修正の範囲外としています。
CVSS による深刻度 (CVSS とは?)

CVSS v3 による深刻度
基本値: 9.8 (緊急) [その他]
  • 攻撃元区分: ネットワーク
  • 攻撃条件の複雑さ: 低
  • 攻撃に必要な特権レベル: 不要
  • 利用者の関与: 不要
  • 影響の想定範囲: 変更なし
  • 機密性への影響(C): 高
  • 完全性への影響(I): 高
  • 可用性への影響(A): 高
影響を受けるシステム


Linux
  • Linux Kernel 2.6.12.1 以上 5.10.258 未満
  • Linux Kernel 5.11 以上 5.15.209 未満
  • Linux Kernel 5.16 以上 6.1.175 未満
  • Linux Kernel 6.13 以上 6.18.33 未満
  • Linux Kernel 6.19 以上 7.0.10 未満
  • Linux Kernel 6.2 以上 6.6.141 未満
  • Linux Kernel 6.7 以上 6.12.91 未満
  • Linux Kernel 2.6.12
  • Linux Kernel 7.1

想定される影響

・当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。
・当該ソフトウェアが扱う全ての情報が書き換えられる可能性があります。
・当該ソフトウェアが完全に停止する可能性があります。
対策

リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。
ベンダ情報

CWEによる脆弱性タイプ一覧  CWEとは?

  1. 解放済みメモリの使用(CWE-416) [NVD評価]
共通脆弱性識別子(CVE)  CVEとは?

  1. CVE-2026-52982
参考情報

  1. National Vulnerability Database (NVD) : CVE-2026-52982
  2. 関連文書 : net: usb: rtl8150: fix use-after-free in rtl8150_start_xmit() - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/6999d70e0eda39af029fa1891c48f0a8832b09d5)
  3. 関連文書 : net: usb: rtl8150: fix use-after-free in rtl8150_start_xmit() - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/24831b0b2ada9fef18d1f486b7b7c444ee5ba637)
  4. 関連文書 : net: usb: rtl8150: fix use-after-free in rtl8150_start_xmit() - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/4dd7eb94f79486b77ca6b4c8676aedbc465dc802)
  5. 関連文書 : net: usb: rtl8150: fix use-after-free in rtl8150_start_xmit() - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/30cf9829d09ca958279c937af8e35495cd2f1e09)
  6. 関連文書 : net: usb: rtl8150: fix use-after-free in rtl8150_start_xmit() - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/423b5b86e14e190f6e3161eb5f2ea5f908295ba7)
  7. 関連文書 : net: usb: rtl8150: fix use-after-free in rtl8150_start_xmit() - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/23f0e34c64acba15cad4d23e50f41f533da195fa)
  8. 関連文書 : net: usb: rtl8150: fix use-after-free in rtl8150_start_xmit() - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/5af290c86fa81ddbc86a08d54229af5daa40c6a4)
  9. 関連文書 : net: usb: rtl8150: fix use-after-free in rtl8150_start_xmit() - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/5db090ca07b28a63fb1499690cf19a3f3adafacb)
更新履歴

  • [2026年07月16日]
      掲載