|
VRDA Feed
by
Vulnerability Response Decision Assistance Feed : 脆弱性脅威分析用情報の定型データ配信 |
[ about VRDA Feed | JPCERT/CC ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 分析対象脆弱性情報 (リビジョン番号 : 1) | [ Download XML ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| JVNDB-2026-031749 ( CVE-2026-64045 | CVE-2026-64045 ) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| LinuxのLinux KernelにおけるNULL ポインタデリファレンスに関する脆弱性 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| https://jvndb.jvn.jp/ja/contents/2026/JVNDB-2026-031749.html | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
原文Linuxカーネルにおいて、以下の脆弱性が修正されました。ovpn: tcp - ovpn_tcp_close()内でキャッシュされたpeerポインターを使用します。ovpn_tcp_close()はrcu_read_lock()の下でrcu_dereference_sk_user_data()を使いovpn_socketを読み込み、sock->peerの参照を取得し、peerポインターをローカル変数にキャッシュした後、読み取りロックを解除します。その後、キャッシュされたローカル変数ではなくsock->peerをovpn_peer_del()に渡し、RCU読み取りセクション終了後にovpn_socketを再参照しています。同じ「RCU下で読み込み、ロック解除後に使用する」というパターンを用いていますが、ovpn_tcp_sendmsg()は関数全体でlock_sock()による保護がある一方、ovpn_tcp_close()はソケットロックなしで動作します。inet_release()はlock_sockを取得せずにsk_prot->close()を呼び出します。したがって、ovpn_socket_release()はovpn_tcp_close()がrcu_read_lock()を解除した後、sock->peerを再参照する前にkref_put -> detach -> synchronize_rcu -> kfree(sock)のシーケンスを並行して完了させることが可能です。ovpn_socket_release()内のsynchronize_rcu()はRCU読み取りセクション内でポインターを使用するリーダーを保護しますが、そのポインターをローカル変数に逃して後で使用する場合には保護しません。再現手順はコミット94560267d6c4("ovpn: tcp - tcp_close()後にNULLのsk_socketメンバーをデリファレンスしない")のパターンに従います。ユーザースペースがTCPファイルディスクリプタを閉じる瞬間にピア削除(キープアライブ期限切れやnetlinkのOVPN_CMD_DEL_PEER)をトリガーします。このコミットでは同じレースウィンドウのdetach側が修正されており、今回の修正は異なる対象であるclose側を修正します。エントリーブロックを厳密にし、sock->peerを1回だけキャッシュされたpeerローカル変数に読み込んで、その後のすべての使用(ホールドチェック、ovpn_peer_del()呼び出し、prot->close()呼び出し)をそのローカル変数を経由して行うようにします。sock->peerはovpn_socket_new()内でlock_sock()中に一度だけ書き込まれ、rcu_assign_sk_user_data()でovpn_socketが公開された後は再代入されませんが、以前の複数回読込のパターンではこの不変条件が暗黙的でした。同じ複数回読込パターンはovpn_tcp_recvmsg()、ovpn_tcp_sendmsg()、ovpn_tcp_data_ready()、ovpn_tcp_write_space()にも存在します。これらは後続のnet-nextシリーズの専用ヘルパーによってクリーンアップされます。翻訳 (表示) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
この情報について
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
分析情報提供元:
|
JVN iPedia
|
初版公開日:
|
2026-09-03 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
分析対象脆弱性情報の分類:
|
アドバイザリ・注意喚起
|
最終更新日:
|
2026-09-03 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
脆弱性の影響を受ける製品の識別子
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| cpe:/o:linux:linux_kernel | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
脆弱性の分析内容
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
関連情報
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Common Vulnerabilities and Exposures (CVE) CVE-2026-64045 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| National Vulnerability Database (NVD) CVE-2026-64045 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
参考情報
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| JVNDB CWE-476 NULL ポインタデリファレンス | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 関連文書 https://git.kernel.org/stable/c/d3ef441907fca7c340979e577a3db3bb634bf166 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 関連文書 ovpn: tcp - use cached peer pointer in ovpn_tcp_close() - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/e5460eb7238c19d651a9b22b2378b587033a4095) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 関連文書 ovpn: tcp - use cached peer pointer in ovpn_tcp_close() - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/775d8d7ad02aa345e1588424a6a8b9ae49fb9012) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Copyright © 2026 JPCERT/CC All Rights Reserved. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||