【活用ガイド】

JVNDB-2025-025728

LinuxのLinux Kernelにおける有効期限後のメモリの解放の欠如に関する脆弱性

概要

Linuxカーネルにおいて、以下の脆弱性が修正されました。tunデバイスの分離されたNAPIキューに対するメモリリークの問題です。syzkallerによってTUNデバイスに関連するskおよびskbのメモリリークが報告されましたが、再現できませんでした。しかし、以下の手順で容易に再現可能です。struct ifreq ifr = {}; int fd_tun, fd_tmp; char buf[4] = {}; fd_tun = openat(AT_FDCWD, "/dev/net/tun", O_WRONLY, 0); ifr.ifr_flags = IFF_TUN | IFF_NAPI | IFF_MULTI_QUEUE; ioctl(fd_tun, TUNSETIFF, &ifr); ifr.ifr_flags = IFF_DETACH_QUEUE; ioctl(fd_tun, TUNSETQUEUE, &ifr); fd_tmp = socket(AF_PACKET, SOCK_PACKET, 0); ifr.ifr_flags = IFF_UP; ioctl(fd_tmp, SIOCSIFFLAGS, &ifr); write(fd_tun, buf, sizeof(buf)); close(fd_tun); TUNデバイスでNAPIおよびマルチキューを有効にすると、キューが分離された後でもskbをtfile-sk.sk_write_queueに挿入可能になる事象が発生します。これを防ぐためには、skbをキューに入れる前にtfile-detachedをチェックすべきです。この処理はwrite()とioctl(IFF_DETACH_QUEUE)が同時に実行され得るため、tfile-sk.sk_write_queue.lockの下で行う必要があります。そうしなければ、write()がtfile-detachedをfalseと判定してskbをキューに入れた直後にioctl()がtfile-detachedをtrueにしキューを消去するという小さな競合状態が発生します。もう一つの解決策としては、切断されたキューを閉じて再接続する際にtun_queue_purge()を呼び出す方法がありますが、それは他の問題を覆い隠す可能性があります。また、同様のテストはIFF_NAPI_FRAGSについても実施しています。
CVSS による深刻度 (CVSS とは?)

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


Linux
  • Linux Kernel 3.8 以上 6.1.30 未満
  • Linux Kernel 6.2 以上 6.3.4 未満
  • Linux Kernel 6.4

想定される影響

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

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

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

  1. 有効期限後のメモリの解放の欠如(CWE-401) [NVD評価]
共通脆弱性識別子(CVE)  CVEとは?

  1. CVE-2023-53685
参考情報

  1. National Vulnerability Database (NVD) : CVE-2023-53685
  2. 関連文書 : tun: Fix memory leak for detached NAPI queue. - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/82b2bc279467c875ec36f8ef820f00997c2a4e8e)
  3. 関連文書 : tun: Fix memory leak for detached NAPI queue. - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/9cae243b9ae25adfe468cd47ceca591f6725b79c)
  4. 関連文書 : tun: Fix memory leak for detached NAPI queue. - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/0d20210a190f76db9ec35ee4e0fc77e6c7a148f5)
更新履歴

  • [2026年02月05日]
      掲載