<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>LLVM on 思いつきそうで思いつかなくていたときに</title><link>https://blog.fuga.jp/tags/llvm/</link><description>Recent content in LLVM on 思いつきそうで思いつかなくていたときに</description><generator>Hugo -- gohugo.io</generator><language>ja</language><copyright>Copyright(c) 2022-2025 SATO Daisuke. All rights reserved.</copyright><lastBuildDate>Wed, 08 Jul 2026 00:00:00 +0900</lastBuildDate><atom:link href="https://blog.fuga.jp/tags/llvm/index.xml" rel="self" type="application/rss+xml"/><item><title>たった1行の見落としが生んだ大事件――Gitea実害・KVM脱出・JIT削除危機、積み上げた負債の清算どき</title><link>https://blog.fuga.jp/posts/2026-07-08-linux-oss-trend/</link><pubDate>Wed, 08 Jul 2026 00:00:00 +0900</pubDate><guid>https://blog.fuga.jp/posts/2026-07-08-linux-oss-trend/</guid><description>&lt;h2 id="はじめに">&lt;a href="#%e3%81%af%e3%81%98%e3%82%81%e3%81%ab" class="header-anchor">&lt;/a>はじめに
&lt;/h2>&lt;p>「たった1行」って、聞くと気が抜けそうになるんですけど、今日はその1行が本当に大事件を生んでいました。HTTPヘッダー1行で管理者になりすませてしまうGiteaの話、そして16年も潜んでいたKVMの脱出脆弱性を暴いた修正パッチもわずか1行。正直、1行の重みを甘く見てはいけないと痛感する一日です。今回はそこに、正式な手続きを飛ばしてマージされてしまったCPythonのJITコンパイラが半年の猶予つきで存続を問われる話も加えて、2026年7月8日前後に飛び込んできた5本のニュースをまとめて解説します。動画はこちらです。&lt;/p>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/ggL-Dc7yI1M"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;p>並べてみると、今日もきれいに一本の軸が通っていました。「積み上げた技術的負債を、いつ・誰が・どう清算するのか」という問いです。手続きを飛ばした負債、設定を緩めた負債、そして16年前にコードへ紛れ込んだ負債。性質はそれぞれ違いますが、いずれも「作った時点では表面化せず、時間が経ってから請求書が届く」という構造は同じでした。それでは、強い緊急性を持つCPython JITの話から始めて、Giteaの実害、LLVM復帰という小休止を挟み、GNOMEのデスクトップ刷新を経て、最後に本日最大級のインパクトを持つKVM脱出脆弱性で締めくくります。&lt;/p>
&lt;h2 id="1-python-cpython-jit存続危機pep-836が6ヶ月以内に未承認なら削除へ">&lt;a href="#1-python-cpython-jit%e5%ad%98%e7%b6%9a%e5%8d%b1%e6%a9%9fpep-836%e3%81%8c6%e3%83%b6%e6%9c%88%e4%bb%a5%e5%86%85%e3%81%ab%e6%9c%aa%e6%89%bf%e8%aa%8d%e3%81%aa%e3%82%89%e5%89%8a%e9%99%a4%e3%81%b8" class="header-anchor">&lt;/a>1. Python CPython JIT存続危機――PEP 836が6ヶ月以内に未承認なら削除へ
&lt;/h2>&lt;p>まず一番のニュースから。CPythonの心臓部に組み込まれつつあったJIT（Just-In-Time）コンパイラが、いきなり「存続をかけた6ヶ月」を突きつけられました。Pythonの意思決定機関であるSteering Councilが2026年6月5日、正式なStandards Track PEP（Python Enhancement Proposal）を6ヶ月以内に提出して承認を得られなければ、JITコンパイラのコードをCPythonのmainブランチから削除すると宣言したのです。これを受けてSavannah Ostrowski・Ken Jin・Brandt Bucherの3名が2026年7月2日、PEP 836「JIT Go Brrr: The Path to a Supported JIT Compiler for CPython」を草案として公開しました。ステータスはDraft、対象バージョンはPython 3.16以降です。&lt;/p>
&lt;p>技術的な背景を押さえておきましょう。CPythonのJITは「Copy-and-Patch」方式という、少し変わったアプローチを採っています。ビルド時にLLVMがマイクロオペレーション（命令をさらに細かく分解した中間表現）のテンプレートを静的にコンパイルしておき、実行時にはCPythonがホットなコードパスへ当該テンプレートをコピーしてパッチを当てるだけで機械語を生成する。配布バイナリ自体にLLVM実行時ライブラリへの依存を持ち込まない構成で、実装規模もビルド時Pythonコード約900行・ランタイムCコード約500行という、JITとしては驚くほどコンパクトな作りです。&lt;/p>
&lt;p>性能面での実績も見ておきましょう。JITはPython 3.13でオプトインの実験機能として導入され、&lt;code>--enable-experimental-jit&lt;/code> ビルドフラグまたは &lt;code>PYTHON_JIT=1&lt;/code> 環境変数で有効化する形でした。Python 3.14ではデフォルトコードパスへ昇格し、Python 3.15時点の計測ではpyperformanceベンチマークスイートでTier 1プラットフォーム全体の幾何平均4〜12%の性能向上を記録しています。x86_64 Linuxが5〜6%、macOS AArch64が11〜12%（2026年3月計測）。The Register（2026年6月8日）は「x86-64 Linux上で幾何平均8〜9%の性能改善」とも報じており、計測時期とスイート構成で幅はありますが、無視できない改善であることは間違いありません。&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>項目&lt;/th>
&lt;th>内容・数値&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>実装方式&lt;/td>
&lt;td>Copy-and-Patch（ビルド時LLVMでテンプレート生成、ランタイムでコピー＆パッチ）&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>実装規模&lt;/td>
&lt;td>ビルド時Python 約900行 / ランタイムC 約500行&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>導入&lt;/td>
&lt;td>3.13（実験・オプトイン）→ 3.14（デフォルトパス昇格）→ 3.15（計測拡大）&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>性能（3.15, pyperformance幾何平均）&lt;/td>
&lt;td>Tier 1全体 4〜12%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>x86_64 Linux&lt;/td>
&lt;td>5〜6%（The Registerは8〜9%と報道）&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>macOS AArch64&lt;/td>
&lt;td>11〜12%（2026年3月計測）&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>では、なぜこれほど優秀な機能が削除の危機にさらされているのか。問題はプロセスにありました。JITをmainブランチへ統合した際の根拠となったのは、2024年提出のPEP 744のみ。しかしPEP 744は情報的（Informational）PEPであり、Standards Trackではありません。「JITコンパイラの設計を説明する」という位置付けにとどまり、長期保守体制・既存機能との互換性・明確な成功指標・サードパーティJITとの関係といった重要事項を未解決のまま残していたのです。Steering Councilのメンバーであるパブロ・ガリンド・サルガドは6月5日の公式アナウンスで「これほど複雑で広範な変更に対して、私たちはプロセスを十分厳密に適用してこなかった」と率直に認めています。正式なプロセスを飛ばしてしまったツケが、半年の猶予という形で回ってきたわけですね。&lt;/p>
&lt;p>アナウンスが含む指示は3点です。第1に、PEP受理まで新機能・最適化・性能改善のmainブランチへの統合を停止する（ただしバグ修正・セキュリティ修正は継続可）。第2に、6ヶ月以内にStandards Track PEPを提出・解決すること。第3に、期限内に未承認の場合はJITコードをmainブランチから削除し、開発はCPythonリポジトリの外で継続する、というものです。&lt;/p>
&lt;p>これに応えるPEP 836は、3年間のロードマップを提示しています。Year 1（Python 3.16・第1ベータまで）ではフロントエンドをトレース記録方式からメソッド単位のコンパイル方式へ移行し、フリースレッド（GILなし）ビルドとの互換性を確保、「最低5%の性能向上維持」が条件です。Year 2（Python 3.17・ベータまで）ではJIT+フリースレッドビルドで非JITフリースレッドインタプリタ比20%以上の幾何平均改善（pyperformance）を目標に掲げ、Year 2.5（Python 3.17 RC）では人気PyPIパッケージのテストスイートを実際に走らせてリグレッションをトリアージする、という念の入れようです。対応プラットフォームはTier 1のみに限定されます。&lt;/p>
&lt;p>コミュニティの反応も割れています。Mark Shannonは「PEP受理まで全開発を止めることは困難な立場に置かれる」と開発継続の猶予を求めた一方、Brett Cannonは2026年7月4日に「20%の性能目標・フリースレッド対応・ツーリング対応の観点から+1（賛成）」とPEP 836を明確に支持しています。背景には、2025年にFaster Pythonチームが主スポンサーを失い、Mark Shannon・Savannah Ostrowski・Brandt Bucher・Ken Jinらが分散した体制で開発を続けてきたという事情もあります。潤沢なリソースがない中で「6ヶ月以内に厳密なPEPを書き上げつつ開発は凍結」という制約は、実務的にかなり重いはずです。&lt;/p>
&lt;p>正直なところ、この一件は単なる一機能の存廃ではなく「オープンソースの巨大プロジェクトにおいて、性能と手続きのどちらを優先するか」という古典的な緊張を映しています。JITはフリースレッド化との相乗効果で大きな性能ジャンプを約束していた機能であり、Year 2の「20%改善」目標はその期待の象徴でした。しかしそれが正規プロセスを経ずにmainへ入っていたという事実は、コードの品質とは別次元でガバナンス上の信頼を損ないます。Steering Councilが「削除」という強いカードを切ったのは、機能を潰したいからではなく、むしろ「正しく残すため」の荒療治と読むのが妥当でしょう。承認期限の目安は2026年12月頃。Pythonを実務で使う私たちにとっては、3.16以降のリリースノートを注視すべき半年になりますね。&lt;/p>
&lt;h2 id="2-gitea-docker-cve-2026-20896公開13日後httpヘッダー1行で管理者権限奪取の実害発生">&lt;a href="#2-gitea-docker-cve-2026-20896%e5%85%ac%e9%96%8b13%e6%97%a5%e5%be%8chttp%e3%83%98%e3%83%83%e3%83%80%e3%83%bc1%e8%a1%8c%e3%81%a7%e7%ae%a1%e7%90%86%e8%80%85%e6%a8%a9%e9%99%90%e5%a5%aa%e5%8f%96%e3%81%ae%e5%ae%9f%e5%ae%b3%e7%99%ba%e7%94%9f" class="header-anchor">&lt;/a>2. Gitea Docker CVE-2026-20896――公開13日後、HTTPヘッダー1行で管理者権限奪取の実害発生
&lt;/h2>&lt;p>続いては、実害が観測されてしまったセキュリティの話題です。セルフホスト型Gitサービスとして人気のGiteaで、公式Dockerイメージが「すべてのIPアドレスをリバースプロキシとして信頼する」危険なデフォルト設定を抱えていました。CVE番号はCVE-2026-20896、CVSSは9.8（Critical）。そして初公開から13日後の2026年7月6日、セキュリティベンダーのSysdigが実際の悪用探索を検知しました。「理論上危ない」から「現に狙われている」へ段階が進んだわけです。&lt;/p>
&lt;p>問題の設定はこの1行に集約されます。&lt;/p>
&lt;div class="highlight">&lt;div style="color:#fff;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#fff;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">2
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#fff;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-ini" data-lang="ini">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#b6a0ff">[security]&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>REVERSE_PROXY_TRUSTED_PROXIES &lt;span style="color:#00d3d0">=&lt;/span> &lt;span style="color:#79a8ff">*&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>ワイルドカードの &lt;code>*&lt;/code> は「すべてのIPアドレスを信頼できるリバースプロキシとして扱う」という意味です。攻撃者がGiteaコンテナのHTTPポートに直接到達できる状況であれば、リクエストに次の1行を付けるだけで管理者として認証が通ってしまいます。&lt;/p>
&lt;pre tabindex="0">&lt;code>X-WEBAUTH-USER: admin
&lt;/code>&lt;/pre>&lt;p>Giteaはこの &lt;code>X-WEBAUTH-USER&lt;/code> ヘッダーを受け取ると、送信元IPが信頼プロキシかどうかを確認します。ところが設定がワイルドカードなので「信頼できる」と判断してしまい、パスワードも2要素認証も問わずにログイン済みセッションを生成する。認証の前提そのものが崩壊しているわけです。たった1行の設定が、認証を丸ごと無効化してしまう。冒頭で触れた「1行の重み」を、いきなり体現するような事例ですね。&lt;/p>
&lt;p>ここで重要なのは、これが純粋なコードのバグではなく「デフォルト設定の誤り」だという点です。バイナリ配布版やセルフビルド版のGiteaでは、デフォルト値は &lt;code>127.0.0.0/8,::1/128&lt;/code>（ループバックのみ）に正しく設定されており影響を受けません。脆弱性が存在するのは公式Dockerイメージ（&lt;code>gitea/gitea&lt;/code>）のみで、対象バージョンは1.26.2以下です。コンテナのお手軽さの裏で、配布形態ごとにデフォルトが食い違っていたわけですね。&lt;/p>
&lt;p>修正は2026年6月20日リリースのGitea 1.26.3に含まれ、リバースプロキシ認証はデフォルト無効のオプトイン方式へ変更されました。ただし1.26.3にはコードページ表示のリグレッションが混入していたため、翌日に1.26.4が追加リリースされています。したがって最終的な推奨アップデート先は1.26.4以上です。なお、この1.26.3/1.26.4のセキュリティリリースではCVE-2026-20896以外にも合計9件のCVEが修正されており、SSRF保護の不備（CVE-2026-22874、CVSS 9.6）、TOTPの再利用攻撃（CVE-2026-20779）、ブランチ権限昇格（CVE-2026-27775）なども含まれていました。&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>CVE&lt;/th>
&lt;th>内容&lt;/th>
&lt;th>CVSS&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>CVE-2026-20896&lt;/td>
&lt;td>Docker既定のリバースプロキシ信頼設定による管理者成りすまし&lt;/td>
&lt;td>9.8&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>CVE-2026-22874&lt;/td>
&lt;td>SSRF保護の不備&lt;/td>
&lt;td>9.6&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>CVE-2026-20779&lt;/td>
&lt;td>TOTPの再利用攻撃&lt;/td>
&lt;td>（素材に記載なし）&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>CVE-2026-27775&lt;/td>
&lt;td>ブランチ権限昇格&lt;/td>
&lt;td>（素材に記載なし）&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>影響を受ける条件は3つの重なりです。第1に公式 &lt;code>gitea/gitea&lt;/code> Dockerイメージのバージョン1.26.2以下を使用していること、第2に &lt;code>ENABLE_REVERSE_PROXY_AUTHENTICATION = true&lt;/code> が設定されていること、第3にGiteaコンテナのポートがリバースプロキシを経由せず外部またはLAN上のホストから到達可能であること。Shodanのスキャン結果によると、インターネット上に公開されているGiteaインスタンスは約6,200件存在します。管理者アカウントを奪われれば、リポジトリコードの窃取・改ざん、CI/CDのAPIキーやSSH秘密鍵といったシークレットの流出、さらにマルウェアやバックドアのコードへの挿入（サプライチェーン攻撃）まで、被害は深刻な領域まで一気に広がります。&lt;/p>
&lt;p>対応はまずアップデートです。&lt;code>docker pull gitea/gitea:1.26.4&lt;/code> の後に &lt;code>docker-compose up -d&lt;/code> でコンテナを更新します。すぐにアップデートできない場合の暫定回避策として、信頼プロキシを明示的に絞る設定が有効です。&lt;/p>
&lt;div class="highlight">&lt;div style="color:#fff;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#fff;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">2
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">3
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#fff;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-ini" data-lang="ini">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#b6a0ff">[security]&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>REVERSE_PROXY_LIMIT &lt;span style="color:#00d3d0">=&lt;/span> &lt;span style="color:#79a8ff">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>REVERSE_PROXY_TRUSTED_PROXIES &lt;span style="color:#00d3d0">=&lt;/span> &lt;span style="color:#79a8ff">127.0.0.1,172.18.0.1&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>この事例が示すのは「デフォルト設定は仕様であり、攻撃対象領域そのものだ」という教訓です。コード自体に論理的欠陥がなくても、配布時のデフォルト値が緩ければ結果は同じ。しかも公開から実際の悪用探索まで13日という短さは、CVSS 9.8クラスの脆弱性が公表されれば攻撃者側の反応が数日単位で来ることを改めて示しています。セルフホストのGitはコードという最も機密性の高い資産を預ける場所であり、ここが落ちればサプライチェーン全体が汚染されうる。Dockerで手軽に立てたインスタンスほど、こうしたデフォルトの穴を見落としやすいことを、地味に肝に銘じておきたいところです。&lt;/p>
&lt;h2 id="3-nick-desaulniers16ヶ月ぶりにllvmclangカーネルサポートへ復帰">&lt;a href="#3-nick-desaulniers16%e3%83%b6%e6%9c%88%e3%81%b6%e3%82%8a%e3%81%abllvmclang%e3%82%ab%e3%83%bc%e3%83%8d%e3%83%ab%e3%82%b5%e3%83%9d%e3%83%bc%e3%83%88%e3%81%b8%e5%be%a9%e5%b8%b0" class="header-anchor">&lt;/a>3. Nick Desaulniers、16ヶ月ぶりにLLVM/Clangカーネルサポートへ復帰
&lt;/h2>&lt;p>ここで少し肩の力を抜ける、けれど地味に嬉しいニュースを。LinuxカーネルをLLVM/Clangでビルドする取り組み、通称ClangBuiltLinuxの中心人物だったNick Desaulniersが、16ヶ月ぶりにカーネルメンテナーとして復帰しました。長年カーネルはGCC前提で書かれてきましたが、Clangでもビルドできるようにする作業は、コンパイラの多様性を確保し、Clang独自の静的解析やサニタイザ（CFIなど）の恩恵をカーネルにもたらすうえで大きな意味を持ちます。DesaulniersはかつてGoogle在籍時にこの取り組みを牽引しましたが、Teslaへ移籍した後は貢献が途絶え、LLVM/Clangサポートのメンテナンスに空白が生じていました。&lt;/p>
&lt;p>その空白が今回埋まります。彼は「Linuxカーネルメーリングリストを燃やしてやる」という、いかにも彼らしい挑発的なコメントとともに、Linux 7.2のGitへパッチをマージしました。物騒な物言いですが、要は「また本気でやるぞ」という宣言です。これによりClangでのカーネルビルドサポートが再加速する見込みで、GCC一択ではないカーネル開発の選択肢が再び前へ進みます。空白だったメンテナンス体制が本人の手で埋まる、という意味では、これも一種の負債の清算と言えるかもしれません。&lt;/p>
&lt;p>なお、本トピックについては専用の一次調査資料が用意されておらず、上記は概要と一般的文脈にもとづく記述です。パッチの具体的な本数や変更行数など、詳細な数値は未取得であることを正直に記しておきます。&lt;/p>
&lt;h2 id="4-gnome-51-alphaa-coruñaレガシーnvidiaドライバ削除waylandパフォーマンス大幅改善">&lt;a href="#4-gnome-51-alphaa-coru%c3%b1a%e3%83%ac%e3%82%ac%e3%82%b7%e3%83%bcnvidia%e3%83%89%e3%83%a9%e3%82%a4%e3%83%90%e5%89%8a%e9%99%a4wayland%e3%83%91%e3%83%95%e3%82%a9%e3%83%bc%e3%83%9e%e3%83%b3%e3%82%b9%e5%a4%a7%e5%b9%85%e6%94%b9%e5%96%84" class="header-anchor">&lt;/a>4. GNOME 51 Alpha「A Coruña」――レガシーNVIDIAドライバ削除・Waylandパフォーマンス大幅改善
&lt;/h2>&lt;p>デスクトップ環境の話題に移ります。GNOME 51の開発サイクルが、2026年7月3日公開のAlphaリリース「A Coruña」で始動しました。今回の目玉は、MutterからのEGLStreams/EGLDevice削除によるレガシーNVIDIAドライバーの完全廃止です。安定版は2026年9月16日にリリース予定となっています。&lt;/p>
&lt;p>まずコードネームの由来から。GNOMEのリリースコードネームは、毎年開催されるGNOMEユーザー・開発者欧州会議GUADEC（GNOME Users and Developers European Conference）の開催都市から取られます。GUADEC 2026はスペイン・ガリシア地方の大西洋岸に位置する都市A Coruña（ア・コルーニャ）で、7月16〜21日に開催予定です。リリース名がそのまま次の集まりの場所を告げている、というわけですね。&lt;/p>
&lt;p>技術的な中核はEGLStreamsの削除です。GNOMEコア開発者のJonas Ådahlが実施しました。EGLStreamsはNVIDIAが独自に設計したWayland向けのグラフィックスバッファ共有メカニズムで、長らくNVIDIAだけが異なる道を歩んでいた歴史があります。しかしNVIDIAは2021年10月のドライバーバージョン495.29.05でGBM（Generic Buffer Management）と標準的なWaylandサポートを実装しました。標準への合流から4年半が経ち、独自パスを維持する理由が薄れたため、今回の削除に至ったかたちです。影響を受けるのはGeForce 700シリーズ（GTX 750 Ti除く）以前の旧世代GPUです。&lt;/p>
&lt;p>同時に前向きな機能追加もあります。GNOME Mutterにext-background-effect-v1 Waylandプロトコルのサポートが追加され、クライアント側アプリケーションが「フロストガラス」のような半透明ブラーエフェクトをウィンドウ背景に要求できるようになりました。この分野ではKDE Plasma 6.7が既に実装済みで、GNOMEが追随したことで主要なLinuxデスクトップ環境がブラー対応でそろいつつあります。加えてスクリーンキャストも改善され、不要なステージペインティングとバッファコピーを削減することで録画中のリソース使用量が下がり、VA-API H.264エンコードパイプラインにはレートコントロールが追加されました。コアモジュールも73本更新され、GTK 4.23.2・libadwaita 1.10.alphaが含まれています。&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>項目&lt;/th>
&lt;th>内容&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>リリース種別&lt;/td>
&lt;td>GNOME 51 Alpha「A Coruña」（2026-07-03）&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>安定版予定&lt;/td>
&lt;td>2026-09-16&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>主要削除&lt;/td>
&lt;td>EGLStreams/EGLDevice（レガシーNVIDIA、GeForce 700シリーズ以前）&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>NVIDIA標準化&lt;/td>
&lt;td>2021-10 ドライバ495.29.05でGBM対応&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>新機能&lt;/td>
&lt;td>ext-background-effect-v1（Waylandバックグラウンドブラー）&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>録画改善&lt;/td>
&lt;td>VA-API H.264にレートコントロール追加、バッファコピー削減&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>更新規模&lt;/td>
&lt;td>コアモジュール73本、GTK 4.23.2 / libadwaita 1.10.alpha&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>採用予定ディストロ&lt;/td>
&lt;td>Fedora 45 / Ubuntu 26.10 / openSUSE Tumbleweed&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>背景として押さえておきたいのは、GNOME 51が前バージョンGNOME 50「Tokyo」（2026年3月18日リリース）の後継である点です。GNOME 50はX11セッションサポートを完全に削除し、Wayland専一化を完成させた歴史的リリースでした。今回のEGLStreams削除は、そのX11廃止と同じ思想の延長線上にあります。「標準化されたWaylandへ一本化し、レガシーな独自パスを畳んでいく」という方向性が一貫しているのです。&lt;/p>
&lt;p>GNOME 51 Alphaの姿勢は「後方互換性を戦略的に切り捨て、標準化された未来へ足並みをそろえる」というものです。GeForce 700シリーズ以前のユーザーには痛みを伴いますが、NVIDIA自身が2021年に標準へ舵を切ってから相応の移行期間を経ての判断であり、無鉄砲な切り捨てとは言えません。ブラー対応でKDEに追いついた点も含め、Linuxデスクトップが「機能で見劣りしない標準環境」として成熟しつつあることを示す一歩です。しかも今回は誰かが慌てて対処したわけではなく、猶予を持って計画的に古いパスを畳む「予防的な清算」なんですよね。9月の安定版と、直後のGUADEC 2026がひとつの節目になるでしょう。&lt;/p>
&lt;h2 id="5-januscape-cve-2026-5335916年潜伏のkvm脱出脆弱性intelamd両環境でゲストvmからホストroot奪取">&lt;a href="#5-januscape-cve-2026-5335916%e5%b9%b4%e6%bd%9c%e4%bc%8f%e3%81%aekvm%e8%84%b1%e5%87%ba%e8%84%86%e5%bc%b1%e6%80%a7intelamd%e4%b8%a1%e7%92%b0%e5%a2%83%e3%81%a7%e3%82%b2%e3%82%b9%e3%83%88vm%e3%81%8b%e3%82%89%e3%83%9b%e3%82%b9%e3%83%88root%e5%a5%aa%e5%8f%96" class="header-anchor">&lt;/a>5. Januscape CVE-2026-53359――16年潜伏のKVM脱出脆弱性、Intel/AMD両環境でゲストVMからホストroot奪取
&lt;/h2>&lt;p>締めくくりは、本日最大級のインパクトを持つ脆弱性です。LinuxカーネルのKVM仮想化基盤に16年間潜伏していたuse-after-free競合条件、CVE-2026-53359が2026年7月6日に公開されました。通称は「Januscape（ヤヌスケープ）」。ゲストVM内でroot権限を持つ攻撃者が、IntelとAMDの両環境でホストカーネルメモリを破壊でき、ホストパニックを引き起こす概念実証コード（PoC）まで公開済みという、クラウド事業者にとって背筋の凍る内容です。&lt;/p>
&lt;p>技術的な核心を見ていきましょう。JanuscapeはカーネルのシャドウMMU（Memory Management Unit）実装に存在するuse-after-free脆弱性で、脆弱性分類はCWE-416です。問題の関数は &lt;code>kvm_mmu_get_child_sp()&lt;/code>。ゲストのページテーブルをシャドウページとして管理する際の「再利用ロジック」に欠陥がありました。具体的には、既存のシャドウページを再利用する際に、ゲストフレーム番号（GFN）だけを照合し、ページのロール（role.word）を確認していなかったのです。このため、GFNが一致しさえすれば、本来は異なる役割を持つシャドウページが誤って再利用されてしまう。ここに競合条件が絡むと、解放済みメモリへの参照、すなわちuse-after-freeが成立します。&lt;/p>
&lt;p>修正パッチ（commit 81ccda30b4e8）はわずか1行です。再利用条件に &lt;code>spte_to_child_sp(*sptep)-&amp;gt;role.word == role.word&lt;/code> という確認を追加し、GFNとロールの両方が一致する場合にのみシャドウページを再利用するよう改めました。たった1行の照合漏れが、16年にわたってホスト奪取の入り口を開けていたことになります。脆弱なコードが混入したのはLinuxカーネル2.6.36時代の2010年8月（commit 2032a93d66fa）。以来、誰にも気づかれることなくカーネルの奥深くに潜み続けました。冒頭のGiteaも「1行」で崩れましたが、こちらは逆に「1行」を足すことで16年分の負債を清算した格好です。&lt;/p>
&lt;p>発見者はセキュリティ研究者のHyunwoo Kim氏（X: @v4bel）です。同氏はこの脆弱性を、Googleが主催する「kvmCTF」プログラムへのゼロデイ提出として使用しました。kvmCTFはKVMカーネルの脆弱性に最大25万ドルの報奨金を支払うプログラムで、完全なゲスト→ホスト脱出はその最高賞金枠に相当します。Kim氏は2026年5〜7月のわずか2ヶ月間で「Dirty Frag」「ITScape」、そして今回の「Januscape」と3本のLinuxカーネルエクスプロイトを立て続けに公開しており、その手数の多さも話題です。「Januscape」という名称は、ローマ神話の双面神ヤヌスに由来します。Intel・AMDの両プラットフォームで機能する初の公知ゲスト→ホスト脱出という、二つの顔を持つ特性を言い表したネーミングです。&lt;/p>
&lt;p>タイムラインを整理します。パッチはLinuxメインラインに2026年6月19日にマージされ、7月4日に安定版カーネルとしてリリース、7月6日にoss-securityメーリングリストへの投稿で一般公開されました。公開されたPoCはホストカーネルパニックを引き起こすDoSレベルにとどまりますが、Kim氏は「完全なホストコード実行が可能な未公開エクスプロイトが別途存在する」と主張しています。この主張の真偽・詳細は未公開であり、現時点で検証はできません。&lt;/p>
&lt;p>影響範囲がとにかく広い。Linuxカーネル2.6.36（2010年）から2026年6月のパッチ適用前まで、KVMが有効なすべてのx86/x86_64環境が対象です。最も危険なシナリオはマルチテナントクラウド環境で、攻撃に必要な条件は「ゲストVM内でroot権限を持つこと」と「ホストがネスト仮想化を有効にしていること」の2つだけ。さらに厄介なのがEL8系ディストリビューション（RHEL 8・AlmaLinux 8等）で、これらはデフォルトで &lt;code>/dev/kvm&lt;/code> のパーミッションが0666（全ユーザー書き込み可）に設定されています。この場合、仮想マシンを一切起動していないサーバーであっても、一般ユーザーがホストを直接クラッシュさせることができてしまいます。&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>項目&lt;/th>
&lt;th>内容&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>CVE / 通称&lt;/td>
&lt;td>CVE-2026-53359 / Januscape&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>種別&lt;/td>
&lt;td>use-after-free 競合条件（CWE-416）シャドウMMU&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>該当関数&lt;/td>
&lt;td>kvm_mmu_get_child_sp()&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>混入&lt;/td>
&lt;td>2010-08 commit 2032a93d66fa（2.6.36）＝16年潜伏&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>修正&lt;/td>
&lt;td>commit 81ccda30b4e8（role.word照合を1行追加）&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>メインラインmerge&lt;/td>
&lt;td>2026-06-19&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>安定版リリース&lt;/td>
&lt;td>2026-07-04&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>一般公開&lt;/td>
&lt;td>2026-07-06（oss-security）&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>影響&lt;/td>
&lt;td>2.6.36〜パッチ前、KVM有効な全x86/x86_64&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>攻撃条件&lt;/td>
&lt;td>ゲストroot＋ホストのネスト仮想化有効（EL8はVM未起動でもDoS可）&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>報奨&lt;/td>
&lt;td>kvmCTF 最大25万ドル枠&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>対応です。修正済み安定カーネルは2026年7月4日に一斉リリースされました。バージョンは7.1.3、6.18.38、6.12.95、6.6.144、6.1.177、5.15.211、5.10.260です。まだパッチを当てられない場合の即時回避策は、ネスト仮想化の無効化です。&lt;/p>
&lt;pre tabindex="0">&lt;code># Intel環境
echo &amp;#34;options kvm_intel nested=0&amp;#34; | sudo tee /etc/modprobe.d/kvm_intel.conf
# AMD環境
echo &amp;#34;options kvm_amd nested=0&amp;#34; | sudo tee /etc/modprobe.d/kvm_amd.conf
&lt;/code>&lt;/pre>&lt;p>Januscapeが突きつけるのは「仮想化の分離境界は、たった1行の照合漏れで崩れうる」という現実です。クラウドの根幹は「隣のテナントから自分は守られている」という信頼であり、ゲスト→ホスト脱出はその信頼を直接破壊します。16年という潜伏期間は、シャドウMMUのような複雑かつ枯れたと思われがちなコードにこそ、レビューの目が届きにくい深い穴が残ることを示しています。冒頭のCPython JITが「プロセスを飛ばしたツケ」を問われたのと対照的に、こちらは「正規に書かれ、レビューも経たコード」が16年見逃された事例です。人間のレビューには限界があり、kvmCTFのような報奨金プログラムやファジングといった機械的・網羅的な検証を回し続けることの重要性が、改めて浮き彫りになりました。運用者は、ネスト仮想化を本当に使っているか棚卸しし、&lt;code>/dev/kvm&lt;/code> のパーミッションを含めて即座にパッチと回避策を検討すべきです。&lt;/p>
&lt;h2 id="まとめ">&lt;a href="#%e3%81%be%e3%81%a8%e3%82%81" class="header-anchor">&lt;/a>まとめ
&lt;/h2>&lt;p>今日の5つのトピックを貫いていたのは「積み上げた技術的負債を、いつ・誰が・どう清算するのか」という一本の軸でした。CPython JITは「正規プロセスを飛ばしてマージした」という手続き上の負債を、6ヶ月の猶予付きで清算するよう迫られました。Giteaは「Dockerイメージの緩いデフォルト設定」という運用上の負債が、公開13日後の実害として顕在化しました。そしてJanuscapeは「16年前に紛れ込んだ1行の照合漏れ」という、最も見えにくいコードの負債が、Intel・AMD双方でのホスト奪取という最悪の形で回収された事例です。負債の性質は三者三様――手続き、設定、コード――ですが、いずれも「作った時点では表面化せず、時間を経て請求書が届く」という構造は同じでした。&lt;/p>
&lt;p>一方でLLVM復帰とGNOME 51は、負債と向き合う前向きな動きでした。Nick Desaulniersの復帰はメンテナンス空白の解消であり、GNOMEのEGLStreams削除はレガシーパスを計画的に畳む「予防的な清算」です。緊急対応の3件と、地道な予防の2件。この5本を並べて眺めると、健全なエコシステムとは「請求書が届いてから慌てる」だけでなく、「届く前に前払いしておく」文化を併せ持つものだ、という当たり前で大切なことが見えてきます。実務者としては、まずJanuscape（安定版7.1.3等へ）とGitea（1.26.4以上へ）の緊急パッチを最優先で当て、そのうえでPythonのリリースノート、Clangビルド環境、デスクトップ更新を中期の視点で追っていく。皆さんの手元にも、たった1行の見落としが眠っていないか、今日ひとつでいいので棚卸ししてみませんか。&lt;/p></description></item></channel></rss>