【活用ガイド】

JVNDB-2024-030008

Debian等の複数ベンダの製品における解放済みメモリの使用に関する脆弱性

概要

Linuxカーネルにおいて、以下の脆弱性が修正されました。tcp: tcp_twsk_unique()内でrefcount_inc_not_zero()を使用します。Anderson Nascimentoは、tcp_twsk_unique()におけるUse-after-freeの脆弱性を詳細な解析とともに報告しました。コミットec94c2696f0b("tcp/dccp: timewaitハッシュダンスのための1回のアトミック操作を回避")以降、inet_twsk_hashdance()はTIME-WAITソケットをehashに入れ、バケットロックを解放した後にsk_refcntを設定しています。したがって、connect()中に他のスレッドがポートの再利用を試み、refcntが0のTIME-WAITソケットに対してtcp_twsk_unique()内でsock_hold()を呼び出す可能性がある小さな競合状態があります。もしそれが発生すると、tcp_twsk_unique()で取得したrefcntが上書きされ、sock_put()がアンダーフローを引き起こし、他の場所で実際のUse-after-freeを誘発します。Use-after-freeを避けるために、tcp_twsk_unique()内でrefcount_inc_not_zero()を使用し、falseを返した場合はポートの再利用を諦める必要があります。[0]: refcount_t: 0への加算によるuse-after-freeが発生します。警告: CPU: 0 PID: 1039313 at lib/refcount.c:25 refcount_warn_saturate+0xe5/0x110 CPU: 0 PID: 1039313 コマンド: trigger このカーネルは未改造ではありません。バージョンは6.8.6-200.fc39.x86_64 #1です。ハードウェア名はVMware, Inc. VMware20,1/440BX Desktop Reference Platformで、BIOSはVMW201.00V.21805430.B64.2305221830(2023年5月22日)です。RIPは0010:refcount_warn_saturate+0xe5/0x110です。以下は省略し、詳細なコールトレース等があります。
CVSS による深刻度 (CVSS とは?)

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


Debian
  • Debian GNU/Linux 10.0
Linux
  • Linux Kernel 4.16 以上 4.19.314 未満
  • Linux Kernel 4.20 以上 5.4.276 未満
  • Linux Kernel 5.11 以上 5.15.159 未満
  • Linux Kernel 5.16 以上 6.1.91 未満
  • Linux Kernel 5.5 以上 5.10.217 未満
  • Linux Kernel 6.2 以上 6.6.31 未満
  • Linux Kernel 6.7 以上 6.8.10 未満
  • Linux Kernel 6.9

本脆弱性の影響を受ける製品の詳細については、ベンダ情報および参考情報をご確認ください。
想定される影響

当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。
また、当該ソフトウェアが扱う全ての情報が書き換えられる可能性があります。
さらに、当該ソフトウェアが完全に停止する可能性があります。
そして、この脆弱性を悪用した攻撃の影響は、他のソフトウェアには及びません。
対策

正式な対策が公開されています。ベンダ情報を参照して適切な対策を実施してください。
ベンダ情報

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

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

  1. CVE-2024-36904
参考情報

  1. National Vulnerability Database (NVD) : CVE-2024-36904
  2. 関連文書 : tcp: Use refcount_inc_not_zero() in tcp_twsk_unique(). - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/f2db7230f73a80dbb179deab78f88a7947f0ab7e)
  3. 関連文書 : tcp: Use refcount_inc_not_zero() in tcp_twsk_unique(). - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/1796ca9c6f5bd50554214053af5f47d112818ee3)
  4. 関連文書 : tcp: Use refcount_inc_not_zero() in tcp_twsk_unique(). - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/517e32ea0a8c72202d0d8aa8df50a7cd3d6fdefc)
  5. 関連文書 : tcp: Use refcount_inc_not_zero() in tcp_twsk_unique(). - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/1d9cf07810c30ef7948879567d10fd1f01121d34)
  6. 関連文書 : tcp: Use refcount_inc_not_zero() in tcp_twsk_unique(). - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/27b0284d8be182a81feb65581ab6a724dfd596e8)
  7. 関連文書 : tcp: Use refcount_inc_not_zero() in tcp_twsk_unique(). - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/13ed7cdf079686ccd3618335205700c03f6fb446)
  8. 関連文書 : tcp: Use refcount_inc_not_zero() in tcp_twsk_unique(). - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/6e48faad92be13166184d21506e4e54c79c13adc)
  9. 関連文書 : tcp: Use refcount_inc_not_zero() in tcp_twsk_unique(). - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/84546cc1aeeb4df3e444b18a4293c9823f974be9)
更新履歴

  • [2026年01月27日]
      掲載