VRDA Feed by JPCERT/CC
  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.