【活用ガイド】

JVNDB-2026-022477

LinuxのLinux Kernelにおける不特定の脆弱性

概要

Linuxカーネルにおいて、次の脆弱性が修正されました:hv_netvsc: netvsc_copy_to_send_buf で kmap_local_page を使用するnetvsc_copy_to_send_buf() は、エントリの PFN に対して phys_to_virt() を用いて、ページバッファのエントリを VMBus の送信バッファにコピーします。RNDIS ヘッダーおよび skb の線形データのエントリは kmalloc により確保されたメモリに由来し、常にカーネルのダイレクトマップ上にあります。しかし、skb フラグメントのエントリはページキャッシュやユーザーページを参照しており、32-bit x86 で CONFIG_HIGHMEM=y の環境では LOWMEM の境界より上に存在し得ます。このようなページに対しては phys_to_virt() がダイレクトマップ外のアドレスを返し、その後の memcpy() が送信 softirq パスでフォールトを起こし、致命的となります。代わりに kmap_local_page() でページをマッピングし、ページバッファエントリの次の2つの特性に対処します: - pb[i].pfn はネイティブ PFN ではなく、HV_HYP_PAGE_SIZE(4K)粒度の Hyper-V PFN です。まず物理アドレスを再構成し、そこからネイティブページを導出することで、PAGE_SIZE > HV_HYP_PAGE_SIZE(例: 64K ページの arm64)の環境でもマッピングが正しくなるようにします。 - コミット 41a6328b2c55("hv_netvsc: Preserve contiguous PFN grouping in the page buffer array")以降、1つのエントリは完全に物理的に連続したフラグメントを表すようになり、pb[i].len は PAGE_SIZE を超えることがあります。一方、kmap_local_page() は単一ページをマップします。したがって、ネイティブページ境界で分割しつつ、ページ単位でコピーします。コピー経路は送信セクションサイズ(デフォルトで 6144 バイト)より小さいパケットのみを処理します。より大きなパケットは、RNDIS ヘッダーのみをコピーする cp_partial 経路を取ります。したがって、ここでのエントリはセクションサイズにより制限され、4K ページシステムではコピーは最大でも1回だけ分割されます。!CONFIG_HIGHMEM の構成では、kmap_local_page() は page_address() にフォールバックし、追加のマッピング作業は発生しません。
CVSS による深刻度 (CVSS とは?)

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


Linux
  • Linux Kernel 3.16 以上 5.10.259 未満
  • Linux Kernel 5.11 以上 5.15.210 未満
  • Linux Kernel 5.16 以上 6.1.176 未満
  • Linux Kernel 6.13 以上 6.18.36 未満
  • Linux Kernel 6.19 以上 7.0.13 未満
  • Linux Kernel 6.2 以上 6.6.143 未満
  • Linux Kernel 6.7 以上 6.12.94 未満
  • Linux Kernel 7.1

想定される影響

・当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。
・当該ソフトウェアが扱う情報について、書き換えは発生しません。
・当該ソフトウェアが完全に停止する可能性があります。
対策

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

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

  1. 情報不足(CWE-noinfo) [NVD評価]
共通脆弱性識別子(CVE)  CVEとは?

  1. CVE-2026-53199
参考情報

  1. National Vulnerability Database (NVD) : CVE-2026-53199
  2. 関連文書 : hv_netvsc: use kmap_local_page in netvsc_copy_to_send_buf - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/fe7221b4346418d27ec2daccfc09df6692b76f0b)
  3. 関連文書 : hv_netvsc: use kmap_local_page in netvsc_copy_to_send_buf - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/09b8a7aa5a341bb345dc492aac139525efa13515)
  4. 関連文書 : hv_netvsc: use kmap_local_page in netvsc_copy_to_send_buf - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/695c59cf7bf707e6ff8cea01916ee50e86616933)
  5. 関連文書 : hv_netvsc: use kmap_local_page in netvsc_copy_to_send_buf - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/0b38870d81ab3a04c1ab0598d9d3285f5d9d0584)
  6. 関連文書 : hv_netvsc: use kmap_local_page in netvsc_copy_to_send_buf - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/16514afeb7d3d121072ba9a0b640d6c1c5507db0)
  7. 関連文書 : hv_netvsc: use kmap_local_page in netvsc_copy_to_send_buf - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/004e9ecfe6c5384f9e0b2f6f6389d42ec22789af)
  8. 関連文書 : hv_netvsc: use kmap_local_page in netvsc_copy_to_send_buf - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/918c0c988239aa5ab96b254e504d191af6191061)
  9. 関連文書 : hv_netvsc: use kmap_local_page in netvsc_copy_to_send_buf - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/a82d4251918f37d9c5aab7b365157669fb885ec3)
更新履歴

  • [2026年07月07日]
      掲載