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 (重要) [その他]
| |
| 影響を受けるシステム | |
|
| |
Linux | |
|
| |
| 想定される影響 | |
・当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 | |
| 対策 | |
リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 | |
| ベンダ情報 | |
|
| |
| CWEによる脆弱性タイプ一覧 CWEとは? | |
| |
| 共通脆弱性識別子(CVE) CVEとは? | |
|
| |
| 参考情報 | |
| |
| 更新履歴 | |
|
| 公表日 | 2026/06/25 |
| 登録日 | 2026/07/07 |
| 最終更新日 | 2026/07/07 |



