【活用ガイド】

JVNDB-2026-023042

LinuxのLinux Kernelにおける解放済みメモリの使用に関する脆弱性

概要

Linuxカーネルにおいて、以下の脆弱性が解決されました。tcp: reqsk_queue_hash_req()内にpreempt_{disable,enable}_nested()を追加しました。syzbotは__inet_csk_reqsk_queue_drop()内で異常なreqsk->rsk_refcntのアンダーフローを報告しました。__inet_csk_reqsk_queue_drop()でのreqsk_put()は、reqskがehashから正常に削除された場合にのみ呼び出されます。さらに、reqsk_timer_handler()はその後にもう一度reqsk_put()を呼び出しています。これは、該当reqskがehashとタイマー自体の両方のrefcntを欠いていたことを示していました。すべてのsyzbotレポートでPREEMPT_RTが有効だったため、想定される唯一のシナリオはmod_timer()の後、refcount_set()の前にreqsk_queue_hash_req()がプリエンプトされ、その後1秒後にタイマーが発火し、リスナーのclose()によりreqskが中止されたことです。そこでmod_timer()とrefcount_set()をpreempt_disable_nested()とpreempt_enable_nested()でラップすることにしました。inet_ehash_insert()は通常のspin_lock()(PREEMPT_RT環境ではミューテックス)を保持しているため、preempt_disable_nested()の外で呼び出す必要がありますが、これは問題ありません。ルックアップパスはehash内のsk_refcntが0のエントリを無視し、別のreqskを作ろうとしますが、inet_ehash_insert()で失敗します。[0]: refcount_t: アンダーフロー; use-after-free。WARNING: lib/refcount.c:28 at refcount_warn_saturate+0xb2/0x110 lib/refcount.c:28, CPU#0: ktimers/0/16 モジュール読み込み済み: CPU: 0 UID: 0 PID: 16 Comm: ktimers/0 Tainted: G L syzkaller #0 PREEMPT_{RT,(full)} Tainted: [L]=SOFTLOCKUP ハードウェア名: Google Google Compute Engine/Google Compute Engine, BIOS Google 04/18/2026 RIP: 0010:refcount_warn_saturate+0xb2/0x110 lib/refcount.c:28 コードスニペットとレジスタ情報等... 呼び出しトレース: <TASK> __refcount_sub_and_test include/linux/refcount.h:400 [inline] __refcount_dec_and_test include/linux/refcount.h:432 [inline] refcount_dec_and_test include/linux/refcount.h:450 [inline] reqsk_put include/net/request_sock.h:136 [inline] __inet_csk_reqsk_queue_drop+0x3ce/0x440 net/ipv4/inet_connection_sock.c:1007 reqsk_timer_handler+0x651/0xdf0 net/ipv4/inet_connection_sock.c:1137 call_timer_fn+0x192/0x5e0 kernel/time/timer.c:1748 expire_timers kernel/time/timer.c:1799 [inline] __run_timers kernel/time/timer.c:2374 [inline] __run_timer_base+0x6a3/0x9f0 kernel/time/timer.c:2386 run_timer_base kernel/time/timer.c:2395 [inline] run_timer_softirq+0x67/0x170 kernel/time/timer.c:2403 handle_softirqs+0x1de/0x6d0 kernel/softirq.c:622 __do_softirq kernel/softirq.c:656 [inline] run_ktimerd+0x69/0x100 kernel/softirq.c:1151 smpboot_thread_fn+0x541/0xa50 kernel/smpboot.c:160 kthread+0x388/0x470 kernel/kthread.c:436 ret_from_fork+0x514/0xb70 arch/x86/kernel/process.c:158 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245 </TASK>
CVSS による深刻度 (CVSS とは?)

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


Linux
  • Linux Kernel 6.12 以上 7.0.13 未満
  • Linux Kernel 7.1

想定される影響

・当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。
・当該ソフトウェアが扱う全ての情報が書き換えられる可能性があります。
・当該ソフトウェアが完全に停止する可能性があります。
対策

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

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

  1. 解放済みメモリの使用(CWE-416) [NVD評価]
共通脆弱性識別子(CVE)  CVEとは?

  1. CVE-2026-53260
参考情報

  1. National Vulnerability Database (NVD) : CVE-2026-53260
  2. 関連文書 : tcp: Add preempt_{disable,enable}_nested() in reqsk_queue_hash_req(). - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/e10902df24488ca722303133acfc82490f7d59ad)
  3. 関連文書 : tcp: Add preempt_{disable,enable}_nested() in reqsk_queue_hash_req(). - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/b183215ff714efb747d9d5a429322ba6404b5401)
更新履歴

  • [2026年07月10日]
      掲載