Microsoft 脆弱性情報 (cve.md)
CVE-2025-10263 — ARM: CVE-2025-10263 Completion of affected memory accesses might not be guaranteed by completion of a TLBI [kernel]
概要 (Summary)
| 項目 | 内容 |
|---|---|
| CVE ID | CVE-2025-10263 |
| タイトル | ARM: CVE-2025-10263 Completion of affected memory accesses might not be guaranteed by completion of a TLBI [kernel] |
| 深刻度 (Severity) | Critical |
| 脆弱性タイプ (Impact) | Elevation of Privilege |
| CVSS Base Score | 9.3 |
| CVSS Vector | CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H/E:U/RL:O/RC:C |
| CWE | N/A |
| 公開状況 (Publicly Disclosed) | No |
| 悪用 (Exploited) | No |
| 悪用可能性 (Exploitability) | Exploitation Less Likely |
| リリース日 | 2026-06-09T07:00:00 |
| アドバイザリ | https://msrc.microsoft.com/update-guide/vulnerability/CVE-2025-10263 |
説明 (Description)
No cwe for this issue in Windows Kernel allows an unauthorized attacker to elevate privileges locally.
FAQ
Q: FAQ
According to the CVSS metric, a successful exploitation could lead to a scope change (S:C). What does this mean for this vulnerability?
An exploited vulnerability can affect resources beyond the security scope managed by the security authority of the vulnerable component. In this case, the vulnerable component and the impacted component are different and managed by different security authorities.
Q: FAQ
What privileges could be gained by an attacker who successfully exploited this vulnerability?
An attacker who successfully exploited this vulnerability could gain SYSTEM privileges.
Q: FAQ
How could an attacker exploit this vulnerability?
An attacker could exploit this issue by triggering a specific timing condition during a memory permission change, causing a memory write to be applied using outdated permissions. Under these conditions, a write from a lower‑privileged context could succeed even after access should have been restricted.
影響を受ける製品 (Affected Products)
- Windows 10 Version 21H2 for ARM64-based Systems
- Windows 10 Version 22H2 for ARM64-based Systems
- Windows 11 Version 23H2 for ARM64-based Systems
- Windows 11 Version 24H2 for ARM64-based Systems
- Windows 11 Version 25H2 for ARM64-based Systems
- Windows 11 Version 26H1 for ARM64-based Systems
修正プログラム (Remediation / KB)
- KB5093998 — https://support.microsoft.com/help/5093998
- KB5094126 — https://support.microsoft.com/help/5094126
- KB5094127 — https://support.microsoft.com/help/5094127
- KB5095051 — https://support.microsoft.com/help/5095051
Source: Microsoft Security Response Center (MSRC) — June 2026 Security Updates (CVRF v3.0)
🎯 具体的な脆弱性・原因・特定方法
対象: ARM: CVE-2025-10263 — "Completion of affected memory accesses might not be guaranteed by completion of a TLBI" [kernel]
解析日: 2026-06-20
判定: ✅ OK(根本原因をソースレベルで特定)
結論一行: これは Windows のソフト的ロジック欠陥ではなく、ARM CPU のマイクロアーキ・オーダリング・エラッタであり、「ブロードキャスト TLBI を完了させる DSB が、無効化対象だった他PEの進行中ストアの全システム観測完了を保証しない」ことが根本原因。Windows ARM64 カーネルはこのエラッタに対する ソフトウェア緩和(追加同期) をパッチで導入した。
0. なぜ「OK」と判定したか(判定基準への対応)
ユーザ指定の OK 基準は「ソースコードまたはリバースエンジニアリングのレベルで特定できていること(判定は厳しく)」。
本CVEは Windows 固有のロジックバグではなく、ARM シリコンのハードウェア・エラッタであり、
同一CVE番号(CVE-2025-10263)の修正がオープンソースで公開されている。すなわち:
- 根本原因 = ARM 公式アドバイザリ(developer.arm.com/documentation/112137)が命令レベルで規定。
- 正解パッチ = Linux カーネル / Xen(XSA-493) / FreeBSD(SA-26:31) の3つの独立した
オープンソース実装が、いずれも同じ原因・同じ修正方針で公開済み(ソースが読める)。 - これら6つの一次/準一次ソース(ARM, MSRC, Xen, FreeBSD, AMD, Linux)が完全に整合。
したがって脆弱性の正体・根本原因・修正の本質は ソースコードレベルで確定 している。
※ただし「Windows の ntoskrnl ARM64 バイナリそのものの差分取得」は本環境では未実施
(理由は §6「検証範囲と限界」に明記)。ハードウェアエラッタである以上、Windows 固有実装の
2案(chicken-bit / repeat-TLBI)は推定だが、根本原因と修正の本質は OS 非依存で同一であり、
原因特定としては確定的と判断した。
1. 脆弱性の概要
| 項目 | 内容 |
|---|---|
| CVE | CVE-2025-10263(ARM採番のCVEをMicrosoftが取り込み) |
| 種別 | Elevation of Privilege(権限昇格) / Critical / CVSS 9.3 |
| Scope | S:C(Changed) = EL/ハイパーバイザ境界を越える |
| 影響 | ローカルの低権限コードが SYSTEM 権限を取得可能 |
| 対象 | Windows 10/11 の ARM64 版のみ(21H2/22H2/23H2/24H2/25H2/26H1) |
| 本質 | ソフトのバグではなく ARM CPU のハードウェア・エラッタ。Windowsはソフト緩和を提供 |
| 修正KB | KB5093998 / KB5094126 / KB5094127 / KB5095051 |
なぜ ARM64 だけか: TLBI / DSB / break-before-make は AArch64 固有の命令・規約であり、
x64(Intel/AMD)には該当する意味論が存在しない。MSRCの対象が「ARM64-based Systems」限定である事実と整合する。
validated.md 全文(クリックで展開)
CVE-2025-10263 パッチ解析レポート(validated)
対象: ARM: CVE-2025-10263 — "Completion of affected memory accesses might not be guaranteed by completion of a TLBI" [kernel]
解析日: 2026-06-20
判定: ✅ OK(根本原因をソースレベルで特定)
結論一行: これは Windows のソフト的ロジック欠陥ではなく、ARM CPU のマイクロアーキ・オーダリング・エラッタであり、「ブロードキャスト TLBI を完了させる DSB が、無効化対象だった他PEの進行中ストアの全システム観測完了を保証しない」ことが根本原因。Windows ARM64 カーネルはこのエラッタに対する ソフトウェア緩和(追加同期) をパッチで導入した。
0. なぜ「OK」と判定したか(判定基準への対応)
ユーザ指定の OK 基準は「ソースコードまたはリバースエンジニアリングのレベルで特定できていること(判定は厳しく)」。
本CVEは Windows 固有のロジックバグではなく、ARM シリコンのハードウェア・エラッタであり、
同一CVE番号(CVE-2025-10263)の修正がオープンソースで公開されている。すなわち:
- 根本原因 = ARM 公式アドバイザリ(developer.arm.com/documentation/112137)が命令レベルで規定。
- 正解パッチ = Linux カーネル / Xen(XSA-493) / FreeBSD(SA-26:31) の3つの独立した
オープンソース実装が、いずれも同じ原因・同じ修正方針で公開済み(ソースが読める)。 - これら6つの一次/準一次ソース(ARM, MSRC, Xen, FreeBSD, AMD, Linux)が完全に整合。
したがって脆弱性の正体・根本原因・修正の本質は ソースコードレベルで確定 している。
※ただし「Windows の ntoskrnl ARM64 バイナリそのものの差分取得」は本環境では未実施
(理由は §6「検証範囲と限界」に明記)。ハードウェアエラッタである以上、Windows 固有実装の
2案(chicken-bit / repeat-TLBI)は推定だが、根本原因と修正の本質は OS 非依存で同一であり、
原因特定としては確定的と判断した。
1. 脆弱性の概要
| 項目 | 内容 |
|---|---|
| CVE | CVE-2025-10263(ARM採番のCVEをMicrosoftが取り込み) |
| 種別 | Elevation of Privilege(権限昇格) / Critical / CVSS 9.3 |
| Scope | S:C(Changed) = EL/ハイパーバイザ境界を越える |
| 影響 | ローカルの低権限コードが SYSTEM 権限を取得可能 |
| 対象 | Windows 10/11 の ARM64 版のみ(21H2/22H2/23H2/24H2/25H2/26H1) |
| 本質 | ソフトのバグではなく ARM CPU のハードウェア・エラッタ。Windowsはソフト緩和を提供 |
| 修正KB | KB5093998 / KB5094126 / KB5094127 / KB5095051 |
なぜ ARM64 だけか: TLBI / DSB / break-before-make は AArch64 固有の命令・規約であり、
x64(Intel/AMD)には該当する意味論が存在しない。MSRCの対象が「ARM64-based Systems」限定である事実と整合する。
2. 根本原因(Root Cause)
2.1 安全なページ権限変更の前提(break-before-make)
OSがページの権限を縮小(例: 書込可→書込禁止、解放→再割当)する際の典型シーケンス:
(1) store: 旧PTEを無効/権限縮小へ書換え
(2) DSB ISHST ; PTEへのstoreを可視化
(3) TLBI ... ; 該当翻訳をTLBから無効化(ブロードキャスト)
(4) DSB ISH ; ★TLBIの「完了」を待つ
(5) ISB
アーキ契約上、(4) の DSB 完了時点で、無効化対象の翻訳を使っていた他PEの
進行中(in-flight)メモリアクセスも全システムで観測完了しているはず。
2.2 エラッタが破る保証
影響コアでは、特定のマイクロアーキ最適化条件が重なると この保証が崩れる。
Xen/ARMの記述(時系列):
- PEx: 旧い(書込可能な)翻訳を使って store を発行(まだ globally observe されない in-flight 状態)。
- PEy(OSカーネル/ハイパーバイザ): 同領域に Stage1(±2)/GPT へ効く TLBI → DSB で完了待ち。
- 条件成立時、「PEy の DSB」が「PEx の store の一部が globally observe される前」に完了してしまう。
- PEy は「権限変更が安全に完了した」と誤認して先へ進むが、PEx の遅延 store は
旧権限のまま書込みを成立させる。
ARM公式: "a broadcast TLBI on one PE may complete before affected memory accesses on another PE are globally observed"
Xen: "PEy's DSB may complete before the global observation of a portion of PEx's store which was affected by the TLB invalidation"
FreeBSD: "allow software to write to a previously writable location after the page table is modified to forbid writes"
2.3 結果
Stage 1 / Stage 2 / GPT(Granule Protection Table)の保護をバイパス。
「書込みが禁止された後の領域に低権限の書込みが成立」→ 権限昇格(最終的に EL1/EL2 = SYSTEM/ハイパーバイザ)。
MSRC FAQ の表現と完全一致:
"causing a memory write to be applied using outdated permissions … a write from a lower-privileged context could succeed even after access should have been restricted"
CWEが "N/A" なのは、これがソフトのコーディング欠陥ではなく silicon errata(メモリオーダリング不全)だから。
(無理に当てるなら TOCTOU 競合 CWE-367 + 保護機構不全。)
3. 修正(Patch)の本質 — ソースレベルで確定
緩和は2系統あり、ARMが影響コアごとに個別erratum文書でどちらを使うか規定している。
系統1: TLBI の二重化(repeat TLBI + DSB) — ARM公式の基本緩和
DSB ISHST
TLBI <op>, Xn ; 1回目
DSB ISH ; 本来ここで完了のはずが保証されない
TLBI <op>, Xn ; 2回目(追加) ★ワークアラウンド
DSB ISH ; 2回目の完了待ち ★ワークアラウンド
ISB
ARM公式緩和: "follow that TLBI with an additional TLBI paired with a DSB"
Linuxでは旧来から ARM64_WORKAROUND_REPEAT_TLBI(Cortex-A55/A510 #2441009 等)として
__tlbi() を2回発行するマクロで実装済み(arch/arm64/include/asm/tlbflush.h)。
系統2: chicken-bit でマイクロアーキ最適化を無効化(本CVEの主系統)
Linux の該当コミット群(同一CVE番号で公開された「正解パッチ」):
1. arm64: tlb: Add DSB ISHST before TLBI in __flush_tlb_range()
— TLBI前の dsb(ishst) を補強し、storeのPTEへの可視化を厳密化。
2. arm64: errata: Add workaround for Arm erratum 2571023
— 影響コア(MIDRで判定)で IMP-DEF レジスタの "chicken bit" をセットし、
レース要因のマイクロアーキ最適化を無効化(ARM64_ERRATUM_2571023)。
3. arm64: Enable workaround for CVE-2025-10263 by default
— 既定で有効化(Linux 7.1.1+)。
→ いずれの系統でも修正の本質は 「TLBI完了とメモリアクセス完了の間に、欠落していた
同期保証を追加する」 こと。
Windows (ntoskrnl ARM64) における等価実装(推定)
非公開バイナリのため未差分だが、ARMが命令レベルで緩和を規定している以上、Windows実装は:
- (a) CPU初期化時の chicken-bit 設定(HAL/カーネルのARM64エラッタ適用パス。MIDR_EL1判定 → IMP-DEFレジスタ書込)、または
- (b) TLBフラッシュ・ルーチン(KiFlushSingleTb/KeFlushMultipleTb/HalpFlushTLB 相当)での TLBI二重化
のいずれか(または併用)に収束するはず。詳細は analysis/root-cause-and-fix.md §D 参照。
4. 攻撃シナリオ(権限昇格までの筋)
- 低権限プロセスが、ページ権限縮小を伴うカーネル操作(CoW解決・保護変更・ページ回収/再割当)を高頻度で誘発し、同時に別スレッドから同ページへ store を撃ち続ける。
- 影響コアのマイクロアーキ条件が偶発成立すると、カーネルが「権限変更完了」と判断した後も攻撃者の遅延 store が旧権限で成立。
- 解放/再割当てされ、より高権限が所有するメモリ(カーネルpage table・特権構造体等)へ攻撃者の書込みが届き、SYSTEM 昇格。
"Exploitation Less Likely / 未公開" は、マイクロアーキ条件の偶発性ゆえにレースの安定再現が難しいことを反映。
5. 影響を受ける ARM コア(複数ソースで一致)
Neoverse N1 / N2 / V1 / V2 / V3 / V3AE、Cortex-A76(/AE) / A77 / A78(/AE/C) / A710、
Cortex-X1(/C) / X2 / X3 / X4 / X925、新世代 C1-Ultra / C1-Premium。
実機例: Microsoft Azure Cobalt 100、NVIDIA Grace 等の Neoverse 採用 SoC。
→ Surface Pro/Laptop(Snapdragon: Cortex-X/A系カスタム)等の Windows on ARM デバイスが現実的な被影響対象。
6. 検証範囲と限界(誠実な明記)
- 実施済み(確定): ARM公式アドバイザリ・MSRC・Xen XSA-493・FreeBSD SA-26:31・AMD SB-8021・
Linuxカーネル修正コミットの6ソースを突き合わせ、根本原因と修正の本質をソースレベルで特定。
オープンソース実装(Linux/Xen/FreeBSD)は本CVEの literal な修正であり、読解可能。 - Windowsバイナリ差分は試行したが取得不能(実証済み):
originhqパイプライン流に Winbindex から ntoskrnl.exe の patch前/後を取得して
BinDiff(Ghidriff相当)を行おうとした。capstone 5.0.7 / pefile を導入し、
winbindex.m417z.com(HTTP 200)とmsdl.microsoft.com(HTTP 200)への到達も確認。
しかし取得した ntoskrnl.exe インデックス(1117エントリ)は
machineType が全て 0x8664(amd64) で ARM64(0xAA64) が 0 件、かつ
June-2026 の対象KB(KB5093998 等)も含まれていなかった
(最高ビルドは 10.0.28000.x の Insider 系のみ)。
→ 本環境では Windows ARM64 ntoskrnl.exe の前後バイナリが取得できず、Windowsバイナリ差分は実施不可。
実証ログ:analysis/winbindex-acquisition-attempt.md。 - それでも OK と判定する根拠(判定の厳格さとの整合):
本バッチの NG 例(002 Nuance 等)は「バイナリも取れず、根本原因が一切不明」だから NG。
本CVEは状況が本質的に異なる: ハードウェアエラッタであり、root cause は OS 非依存で同一、
かつ 同一CVE番号の literal なソース修正が Linux/Xen/FreeBSD で公開されている。
すなわち Windows バイナリに依存せずとも 根本原因と修正の本質はソースコードレベルで確定できる。
厳格基準が排除したい「CWEクラスの当て推量を OK に水増しする」ケースには当たらない
(正確なメカニズムと literal な修正コードを把握済み)。 - 唯一の未確定点: Windows 固有の実装方式(CPU初期化時の chicken-bit か、
TLBフラッシュ・ルーチンでの repeat-TLBI か)。ただしこれは「原因の特定」ではなく
「移植実装の二択」であり、根本原因の確定性には影響しない。
7. 調査中に分かった面白い点・特記事項(随時メモ)
- CVEの素性:
CVE-2025-10263は 2025年採番だが、Microsoftの取り込みは 2026年6月Patch Tuesday。
ARM採番のハードウェアCVEを各OSベンダ(MS/Linux/Xen/FreeBSD/AMD)が横並びで取り込む典型例。
220件中で唯一「2025-」始まりなのもこのため(他は全て2026-)。 - CWEがN/Aの理由が技術的に説明可能: ソフトのコーディング欠陥ではなくシリコンのメモリ
オーダリング・エラッタなので、CWE辞書に綺麗に当てはまらない。MSRCの "No cwe for this issue" は妥当。 - "Scope Changed (S:C)" の正体: EL0→EL1(あるいはゲスト→ハイパーバイザ EL2)という
例外レベル境界の越境。CVSS 9.3 の高さはこの越境+C/I/A全H+AC:Lに由来。 - 同系統の歴史的エラッタとの連続性: 本件は Cortex-A55/A510 の #2441009
(ARM64_WORKAROUND_REPEAT_TLBI、"store to a page that has been unmapped")の
拡大版と言える。同じ「BBM中のレース」テーマが、より新しい高性能コア
(Neoverse V/N, Cortex-X)に再来した。緩和イディオム(repeat TLBI+DSB / chicken-bit)も継承。 - Stage2/GPTバイパスのインパクト: Stage2/GPT(Granule Protection Table, Armv9 CCA/Realm関連)まで
バイパスし得るため、単なるOS内昇格に留まらず、仮想化境界・機密計算境界まで脅かす点が
Critical指定の核心。クラウド(Azure Cobalt等)にとって特に重い。 - 緩和コストのトレードオフ: 系統1(repeat-TLBI)はTLBフラッシュのホットパスを重くする
(命令2倍)。系統2(chicken-bit)はホットパスを変えない代わりに、止めた最適化分だけ
汎用性能が落ち得る。Windowsがどちらを採ったかは性能影響に直結する興味深い論点。
8. 参照(一次・準一次ソース)
- ARM 公式: https://developer.arm.com/documentation/112137/latest (Arm CPU Security Bulletin: CVE-2025-10263)
- Microsoft MSRC: https://msrc.microsoft.com/update-guide/vulnerability/CVE-2025-10263
- Xen XSA-493: https://xenbits.xen.org/xsa/advisory-493.html
- FreeBSD SA-26:31.arm64: https://www.freebsd.org/security/advisories/FreeBSD-SA-26:31.arm64.asc
- AMD SB-8021: https://www.amd.com/en/resources/product-security/bulletin/amd-sb-8021.html
- Phoronix: https://www.phoronix.com/news/Arm-CPU-Critical-CVE-2025-10263
- Linux修正解説: https://windowsnews.ai/article/linux-711-rushes-patch-for-cve-2025-10263-fixing-tlb-flaw-in-azure-cobalt-100-and-nvidia-arm-chips.428098
- 関連: Linux
ARM64_WORKAROUND_REPEAT_TLBI(Cortex-A55/A510 #2441009)—arch/arm64/include/asm/tlbflush.h
詳細な引用・コード再構成は
analysis/sources.mdとanalysis/root-cause-and-fix.mdを参照。