【活用ガイド】

JVNDB-2026-014826

LinuxのLinux Kernelにおける競合状態に関する脆弱性

概要

Linuxカーネルにおいて、usb: gadget: u_etherのgether_disconnect()とeth_stop()間の競合状態の脆弱性が修正されました。gether_disconnect()がエンドポイントを解放している間にeth_stop()が同時に実行されると、eth_stop()は解放済みのエンドポイント記述子にアクセスし、NULLポインタの参照違反(NPE)が発生します。具体的には、カーネルでNULLポインタ参照不能エラーが発生し、以下のコールトレースが記録されます:__dwc3_gadget_ep_enable+0x60/0x788、dwc3_gadget_ep_enable+0x70/0xe4、usb_ep_enable+0x60/0x15c、eth_stop+0xb8/0x108。さらに、eth_stop()はdev-lockを保持したままクラッシュするため、gether_disconnect()を実行しているスレッドが同じロックを取得できず永久にスピンし続け、ハードロックアップが発生します。これに関するコアのハードロックアップのデバッグ情報とコールトレースは次のとおりです:queued_spin_lock_slowpath+0x94/0x488、_raw_spin_lock+0x64/0x6c、gether_disconnect+0x19c/0x1e8、ncm_set_alt+0x68/0x1a0、composite_setup+0x6a0/0xc50。原因はgether_disconnect()内でdev-port_usbのクリアが関数の最後まで遅延されていることにあります。このクリア処理をgether_disconnect()の先頭に移動し、dev-lockを保持したまま実行することで接続を即座に切断し、eth_stop()がdev-port_usbがNULLであることを認識して安全に処理を中止できるようになりました。
CVSS による深刻度 (CVSS とは?)

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


Linux
  • Linux Kernel 2.6.27 以上 5.10.253 未満
  • Linux Kernel 5.11 以上 5.15.203 未満
  • Linux Kernel 5.16 以上 6.1.169 未満
  • Linux Kernel 6.13 以上 6.18.22 未満
  • Linux Kernel 6.19 以上 6.19.12 未満
  • Linux Kernel 6.2 以上 6.6.134 未満
  • Linux Kernel 6.7 以上 6.12.81 未満
  • Linux Kernel 7.0

想定される影響

当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。
また、当該ソフトウェアが扱う情報について、書き換えは発生しません。
さらに、当該ソフトウェアが完全に停止する可能性があります。
そして、この脆弱性を悪用した攻撃の影響は、他のソフトウェアには及びません。
対策

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

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

  1. 競合状態(CWE-362) [NVD評価]
共通脆弱性識別子(CVE)  CVEとは?

  1. CVE-2026-31728
参考情報

  1. National Vulnerability Database (NVD) : CVE-2026-31728
  2. 関連文書 : usb: gadget: u_ether: Fix race between gether_disconnect and eth_stop - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/f6813c2b2ae78def76b69e0f9d72f80e4a1c4aca)
  3. 関連文書 : usb: gadget: u_ether: Fix race between gether_disconnect and eth_stop - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/8ff689edfeceb5e3ec1623e09af2b2aa0f1098a8)
  4. 関連文書 : usb: gadget: u_ether: Fix race between gether_disconnect and eth_stop - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/e1e7a66584bf0aff3becb73c19fa31527889fc9e)
  5. 関連文書 : usb: gadget: u_ether: Fix race between gether_disconnect and eth_stop - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/a259ba0bce3b192c04334499690372a250f7d0b1)
  6. 関連文書 : usb: gadget: u_ether: Fix race between gether_disconnect and eth_stop - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/bbb09bb89ffa571475f66daca9482b974cd29d6a)
  7. 関連文書 : usb: gadget: u_ether: Fix race between gether_disconnect and eth_stop - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/6ad77458637b78ec655e3da5f112c862e6690a9d)
  8. 関連文書 : usb: gadget: u_ether: Fix race between gether_disconnect and eth_stop - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/e1eabb072c75681f78312c484ccfffb7430f206e)
  9. 関連文書 : usb: gadget: u_ether: Fix race between gether_disconnect and eth_stop - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/f02980594deef751e42133714aee25228f1494c6)
更新履歴

  • [2026年05月11日]
      掲載