JVNDB-2026-028252 | |
LinuxのLinux Kernelにおける不特定の脆弱性 | |
| 概要 | |
Linuxカーネルにおいて、以下の脆弱性が修正されました:phonet/pepに関するものです。転送されたsk_receive_skb()の周囲でBHが無効化される問題があります。ネットワークの受信パスは通常softirqコンテキストで実行されますが、ソケットロックを取得するプロトコルの場合、パケットがバックログに蓄積され、後でプロセスコンテキストから処理されることがあります。その際、release_sock() -> __release_sock()はspin_unlock_bh()でslockを解放し、その後BHが有効な状態でsk->sk_backlog_rcv()を呼び出します。一般的なsk_backlog_rcvハンドラは、バックログを消費しているソケットを処理するため、エントリ時のBH状態は彼らが操作するslockに関しては無関係です。しかしpep_do_rcv()は異なります。受信したskbが既存のPEPパイプをターゲットにしている場合、skbはsk_receive_skb()経由で異なる子ソケットに転送されます。このヘルパーはbh_lock_sock_nested()(spin_lock_nested()に相当し、BHが既に無効であることを前提)で子ソケットのslockを取得します。したがって、同じ子ソケットのslockはBHが有効なパス(プロセスパス)とBHが無効なパス(softirqパス)の両方で取得されてしまいます。 プロセスコンテキスト softirqコンテキスト---------------------- ----------------------release_sock(listener) __netif_receive_skb()__release_sock() phonet_rcv()spin_unlock_bh() __sk_receive_skb(listener)[BHはここで有効] [BHは既に無効]sk_backlog_rcv: sk_backlog_rcv:pep_do_rcv() pep_do_rcv()sk_receive_skb(child) sk_receive_skb(child)bh_lock_sock_nested(child) bh_lock_sock_nested(child)=> SOFTIRQ-ON-W => IN-SOFTIRQ-WLockdepはこれを不整合なロック状態として検知し、同じCPU上でsoftirqが同じ子ソケットに対し、BH有効パスでslockが保持されている状態で受信しようとすると、実際のセルフデッドロックが発生します。 警告: ロック状態の不整合不整合な{SOFTIRQ-ON-W} -> {IN-SOFTIRQ-W}の使用。(slock-AF_PHONET/1){+.?.}-{3:3}, 場所: __sk_receive_skb+0x1cf/0x900 __sk_receive_skb net/core/sock.c:563 sk_receive_skb include/net/sock.h:2022 [インライン] pep_do_rcv net/phonet/pep.c:675 sk_backlog_rcv include/net/sock.h:1190 __release_sock net/core/sock.c:3216 release_sock net/core/sock.c:3815 pep_sock_accept net/phonet/pep.c:879転送されたsk_receive_skb()をlocal_bh_disable()/local_bh_enable()で囲み、子ソケットのslockが常にBH無効状態で取得されるようにしました。local_bh_disable()はsoftirqパスで安全にネストできます。この問題は社内のsyzkallerファジングにより発見され、同じ根本原因がlinux-6.1.yのsyzbotダッシュボード(extid 44f0626dd6284f02663c)にも存在しました。KASAN + LOCKDEP + PROVE_LOCKING環境下で再現可能で、再現コードは以下のURLで確認できます: https://pastebin.com/A3t8xzCR | |
| CVSS による深刻度 (CVSS とは?) | |
|
CVSS v3 による深刻度
基本値: 5.5 (警告) [NVD値]
| |
| 影響を受けるシステム | |
|
| |
Linux | |
|
| |
| 想定される影響 | |
・当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 | |
| 対策 | |
リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 | |
| ベンダ情報 | |
|
| |
| CWEによる脆弱性タイプ一覧 CWEとは? | |
| |
| 共通脆弱性識別子(CVE) CVEとは? | |
|
| |
| 参考情報 | |
| |
| 更新履歴 | |
|
| 公表日 | 2026/07/19 |
| 登録日 | 2026/08/17 |
| 最終更新日 | 2026/08/17 |



