JVNDB-2026-023800 | |
LinuxのLinux Kernelにおける解放済みメモリの使用に関する脆弱性 | |
| 概要 | |
Linuxカーネルにおいて、以下の脆弱性が修正されました。net: qrtr: qrtr_port_remove関数における参照カウントの飽和および潜在的なUse-After-Free(UAF)の問題が修正されました。qrtr_port_remove()関数内で、ポートがqrtr_portsのXArrayから削除され、RCUの猶予期間が経過する前に、__sock_put()を介してソケットの参照カウントが減少されていました。これは基本的なRCU更新パラダイムを破壊していました。これにより、同時に動作するRCUリーダー(qrtr_reset_ports()やqrtr_port_lookup()など)がXArrayからソケットへのポインタを取得し、既に参照カウントがゼロに落ちているソケットに対してsock_hold()を呼び出そうとする競合状態のウィンドウが発生していました。このまさに同一の競合状態はsyzkallerのファジング中に発見され、以下の参照カウント飽和警告および潜在的なUse-After-Freeが引き起こされました。 refcount_t: saturated; leaking memory. WARNING: CPU: 3 PID: 1273 at lib/refcount.c:22 refcount_warn_saturate+0xae/0x1d0 モジュールリンクイン: qrtr(+) bochs drm_shmem_helper ... コールトレース: <TASK> qrtr_reset_ports net/qrtr/af_qrtr.c:768 [inline] [qrtr] __qrtr_bind.isra.0+0x48b/0x570 net/qrtr/af_qrtr.c:805 [qrtr] qrtr_bind+0x17d/0x210 net/qrtr/af_qrtr.c:901 [qrtr] kernel_bind+0xe4/0x120 net/socket.c:3592 qrtr_ns_init+0x1a6/0x380 net/qrtr/ns.c:715 [qrtr] qrtr_proto_init+0x3b/0xff0 net/qrtr/af_qrtr.c:169 [qrtr] do_one_initcall+0xf5/0x5e0 init/main.c:1283 ... </TASK>この問題は、xa_erase()およびsynchronize_rcu()の完了後まで参照カウントの減算を遅延させることで修正されています。(補足:本パッチのv1では__sock_put()を誤ってsock_put()に置き換えていました。Simon Horman氏の指摘により、qrtr_port_remove()の呼び出し元は依然としてソケットへの参照を保持しているため、ここでソケットメモリを解放すると呼び出し元で後のUAFが発生することが判明しました。そのため、__sock_put()は保持されていますが、RCU競合を解消するために位置のみが変更されています。) | |
| CVSS による深刻度 (CVSS とは?) | |
|
CVSS v3 による深刻度
基本値: 7.8 (重要) [その他]
| |
| 影響を受けるシステム | |
|
| |
Linux | |
|
| |
| 想定される影響 | |
・当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。 | |
| 対策 | |
リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 | |
| ベンダ情報 | |
|
| |
| CWEによる脆弱性タイプ一覧 CWEとは? | |
| |
| 共通脆弱性識別子(CVE) CVEとは? | |
|
| |
| 参考情報 | |
| |
| 更新履歴 | |
|
| 公表日 | 2026/06/24 |
| 登録日 | 2026/07/16 |
| 最終更新日 | 2026/07/16 |



