<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>OpenWrt on 思いつきそうで思いつかなくていたときに</title><link>https://blog.fuga.jp/tags/openwrt/</link><description>Recent content in OpenWrt on 思いつきそうで思いつかなくていたときに</description><generator>Hugo -- gohugo.io</generator><language>ja-jp</language><copyright>Copyright(c) 2022-2025 SATO Daisuke. All rights reserved.</copyright><lastBuildDate>Wed, 19 Aug 2026 00:00:00 +0900</lastBuildDate><atom:link href="https://blog.fuga.jp/tags/openwrt/index.xml" rel="self" type="application/rss+xml"/><item><title>駆けつけてくれる現場と、見捨てられる現場 — Ray・GitLab・GitHub障害・Debianの8択投票（2026/8/19 Linux・OSSトレンド）</title><link>https://blog.fuga.jp/posts/2026-08-19-linux-oss-trend/</link><pubDate>Wed, 19 Aug 2026 00:00:00 +0900</pubDate><guid>https://blog.fuga.jp/posts/2026-08-19-linux-oss-trend/</guid><description>&lt;h2 id="はじめに"&gt;&lt;a href="#%e3%81%af%e3%81%98%e3%82%81%e3%81%ab" class="header-anchor"&gt;&lt;/a&gt;はじめに
&lt;/h2&gt;&lt;p&gt;定例リリースを待たずに緊急パッチを出してくれるベンダーがいる一方で、「その製品はもう終わりました」とだけ言われる現場もあります。今回並べた5本を眺めていて印象に残ったのは、脆弱性の深刻度そのものよりも、直してもらえるかどうかが最初から決まっているという事実のほうでした。同じ「危機」でも、駆けつけてもらえる現場と見捨てられる現場に分かれた一日をお届けします。&lt;/p&gt;
&lt;div class="video-wrapper"&gt;
 &lt;iframe loading="lazy" 
 src="https://www.youtube.com/embed/A54_jzmtJI0" 
 allowfullscreen 
 title="YouTube Video"
 &gt;
 &lt;/iframe&gt;
&lt;/div&gt;

&lt;h2 id="1-gpuクラスターが採掘ボットに変わる--ray-の脆弱性が-cisa-kev-入り"&gt;&lt;a href="#1-gpu%e3%82%af%e3%83%a9%e3%82%b9%e3%82%bf%e3%83%bc%e3%81%8c%e6%8e%a1%e6%8e%98%e3%83%9c%e3%83%83%e3%83%88%e3%81%ab%e5%a4%89%e3%82%8f%e3%82%8b--ray-%e3%81%ae%e8%84%86%e5%bc%b1%e6%80%a7%e3%81%8c-cisa-kev-%e5%85%a5%e3%82%8a" class="header-anchor"&gt;&lt;/a&gt;1. GPUクラスターが採掘ボットに変わる — Ray の脆弱性が CISA KEV 入り
&lt;/h2&gt;&lt;p&gt;AI/ML ワークロードの分散実行基盤として広く使われている Ray に、ブラウザ経由でリモートコード実行が成立する脆弱性（CVE-2025-62593）があります。これが 2026年8月17日、CISA の KEV（既知の悪用された脆弱性）カタログに登録されました。連邦機関のパッチ期限は 2026年8月20日。つまり明日です。&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://nvd.nist.gov/vuln/detail/CVE-2025-62593" target="_blank" rel="noopener"
 &gt;NVD の詳細&lt;/a&gt;によれば、CVSS スコアは v4.0 で 9.4、v3.1 で 8.8。影響を受けるのは Ray 2.52.0 未満のすべてのバージョンで、修正版は 2.52.0 です。&lt;/p&gt;
&lt;p&gt;不謹慎を承知で言うと、根本原因が実に人間くさくて笑ってしまいました。Ray のダッシュボード API は、ブラウザからの不正なアクセスを弾く手段として「HTTP リクエストの User-Agent ヘッダが &lt;code&gt;Mozilla&lt;/code&gt; で始まるかどうか」だけを見ていました。ところが Firefox や Safari では &lt;code&gt;fetch&lt;/code&gt; API の仕様上、スクリプトから User-Agent を書き換えられます。名乗りを信じるだけの防御は、名乗りを変えられた時点で終わります。&lt;/p&gt;
&lt;p&gt;攻撃者はこれを DNS リバインディングと組み合わせます。自分が管理するドメインの DNS を、被害者のブラウザがスクリプトを読み込んだ少し後に &lt;code&gt;127.0.0.1&lt;/code&gt; へ切り替える。ブラウザから見れば「同じドメイン」のままなので、同一オリジンポリシーをすり抜けて localhost の Ray ダッシュボード（既定ポート 8265）へリクエストが飛びます。あとは User-Agent を偽装した POST を &lt;code&gt;/api/jobs&lt;/code&gt; に投げれば、任意のシェルコマンドがジョブとして実行されます。&lt;/p&gt;
&lt;p&gt;つまり「自分のノート PC で Ray を起動したまま、ブラウザで知らないサイトを開いた」だけで成立しうる。ファイアウォールの外から殴られるのではなく、内側から自分の手で扉を開けてしまう形です。外からの攻撃を想像して守っていると、この経路は完全に死角になります。&lt;/p&gt;
&lt;p&gt;悪用はすでに現実のものです。RondoDox という DDoS ボットネットは、脆弱性が公開される 2日前 にはすでに情報を入手して悪用を始めていました。「ShadowRay 2.0」と名付けられたキャンペーンでは、NVIDIA GPU を積んだクラスターが自己増殖型の暗号採掘ボットに改造されています。&lt;a class="link" href="https://www.oligo.security/blog/shadowray-2-0-attackers-turn-ai-against-itself-in-global-campaign-that-hijacks-ai-into-self-propagating-botnet" target="_blank" rel="noopener"
 &gt;Oligo Security の調査レポート&lt;/a&gt;では、1,000ノードを超えるクラスターが一つの組織で丸ごと乗っ取られ、クラウド換算で年間300万ドル超に相当する GPU が採掘に回された事例が報告されています。被害は採掘だけで終わらず、MySQL の認証情報や AWS の ECS/EKS ロール認証情報の窃取、SSH キーによる永続的なバックドアの設置、240GB を超える学習データとモデルの流出まで確認されています。インターネットに露出した Ray サーバーの数自体、ここ数年で大きく増えているとされています。&lt;/p&gt;
&lt;p&gt;対応はシンプルです。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div style="color:#fff;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="color:#fff;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&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"&gt;1
&lt;/span&gt;&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"&gt;2
&lt;/span&gt;&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"&gt;3
&lt;/span&gt;&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"&gt;4
&lt;/span&gt;&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"&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="color:#fff;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a8a8a8"&gt;# pip によるアップグレード&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;pip install --upgrade &lt;span style="color:#79a8ff"&gt;&amp;#34;ray&amp;gt;=2.52.0&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a8a8a8"&gt;# バージョン確認&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;python -c &lt;span style="color:#79a8ff"&gt;&amp;#34;import ray; print(ray.__version__)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;a class="link" href="https://github.com/ray-project/ray/releases/tag/ray-2.52.0" target="_blank" rel="noopener"
 &gt;Ray 2.52.0 のリリース&lt;/a&gt;では、ダッシュボード・CLI・API クライアントを含む各コンポーネントにトークン認証が導入され、名乗りだけに頼る形ではなくなりました。既定では無効なので、ローカル開発環境でも意識して有効化しておくのがおすすめです。すぐに上げられない場合の応急処置は、ダッシュボードを &lt;code&gt;127.0.0.1&lt;/code&gt; にバインドして外から触れないようにすることです。&lt;/p&gt;
&lt;h2 id="2-7時間42分世界の-ci-が止まった--github-8月17日の大規模障害"&gt;&lt;a href="#2-7%e6%99%82%e9%96%9342%e5%88%86%e4%b8%96%e7%95%8c%e3%81%ae-ci-%e3%81%8c%e6%ad%a2%e3%81%be%e3%81%a3%e3%81%9f--github-8%e6%9c%8817%e6%97%a5%e3%81%ae%e5%a4%a7%e8%a6%8f%e6%a8%a1%e9%9a%9c%e5%ae%b3" class="header-anchor"&gt;&lt;/a&gt;2. 7時間42分、世界の CI が止まった — GitHub 8月17日の大規模障害
&lt;/h2&gt;&lt;p&gt;2026年8月17日、GitHub が約7時間42分にわたる大規模障害を起こしました。Web と API で約20%、アーカイブや Raw コンテンツでは約50%のエラー率を記録し、CI/CD パイプラインも Pull Request も Issue の確認も、世界規模で止まりました。&lt;a class="link" href="https://www.githubstatus.com/history" target="_blank" rel="noopener"
 &gt;GitHub の公式ステータス履歴&lt;/a&gt;にタイムラインが残っています。&lt;/p&gt;
&lt;p&gt;影響を受けたのは Web UI、REST/GraphQL API、GitHub Actions、Pull Requests、Issues、Webhooks、GitHub Copilot、そして企業向けの SAML/OIDC シングルサインオンです。SSO 利用企業はログインそのものができなくなりました。8サービス中7サービスの緩和が宣言された後も Copilot の認証系だけは復旧が遅れ、全サービス正常の宣言まではさらに4時間以上かかっています。Downdetector には障害ピーク時に 15,000件を超える報告が集まりました。&lt;/p&gt;
&lt;p&gt;技術的な根本原因は、本稿執筆時点では公表されていません。GitHub は「調査には多くの側面があり、完全に理解できてから結論を出す」という趣旨の説明にとどめています。&lt;/p&gt;
&lt;p&gt;気になるのは、これが単発の事故ではないことです。2026年7月だけで、サービス低下を伴うインシデントが8件発生しています。7月8日は設定メタデータの更新ミスでサービスディスカバリが壊れ、ピーク時96%のエラー率を出して7時間4分。7月9日は Actions のジョブ開始遅延で9時間18分。7月19日は証明書のライフサイクル管理の不具合でランナーが接続できなくなり5時間10分。8月17日の障害は、その月だけで2度目の大規模障害でした。&lt;/p&gt;
&lt;p&gt;背景として語られているのが、AI エージェントブームによる需要の急増です。GitHub CTO の Vladimir Fedorov 氏は、2025年秋の時点で「10倍のスケールが必要」としていた見通しを、2026年2月には「30倍のキャパシティが必要」へと上方修正しています。AI コーディングエージェントがインフラに与える負荷は、当初の予測をはるかに超えていたということです。加えて GitHub は既存データセンターから Azure Central US への移行の途中にあり、&lt;a class="link" href="https://github.blog/news-insights/company-news/github-availability-report-july-2026/" target="_blank" rel="noopener"
 &gt;7月の可用性レポート&lt;/a&gt;の時点で読み取りトラフィックの半分ほどが移行済みという過渡期にあります。旧インフラと新インフラが混在した状態は、それ自体が信頼性のリスク要因になりえます。&lt;/p&gt;
&lt;p&gt;three-nines（99.9%）で換算すると、1年間に許される停止時間はおよそ8.7時間です。今回の1件でほぼ使い切った計算になります。備えとして現実的なのは、GitLab や Gitea、Forgejo へのミラーリング、&lt;code&gt;git clone --mirror&lt;/code&gt; によるローカルのベアリポジトリ保持、そして &lt;code&gt;act&lt;/code&gt; や Tekton、CircleCI といった GitHub に依存しない CI 経路の確保でしょう。&lt;code&gt;https://www.githubstatus.com/&lt;/code&gt; の RSS を Slack に流しておくだけでも、朝の「自分の環境が壊れたのか」という数十分の消耗は減らせます。&lt;/p&gt;
&lt;h2 id="3-llm-を使っていいかを8択で投票中--debian-の全体決議"&gt;&lt;a href="#3-llm-%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%a6%e3%81%84%e3%81%84%e3%81%8b%e3%82%928%e6%8a%9e%e3%81%a7%e6%8a%95%e7%a5%a8%e4%b8%ad--debian-%e3%81%ae%e5%85%a8%e4%bd%93%e6%b1%ba%e8%ad%b0" class="header-anchor"&gt;&lt;/a&gt;3. 「LLM を使っていいか」を8択で投票中 — Debian の全体決議
&lt;/h2&gt;&lt;p&gt;ここで少し肩の力を抜ける話題を。Debian プロジェクトが、AI/LLM をコード・コミュニケーション・パッケージ管理に使ってよいかを問う全体決議（GR）の投票を、2026年8月15日に開始しました。締め切りは 8月28日 23:59 UTC です。&lt;/p&gt;
&lt;p&gt;驚くのは選択肢の多さです。複数の提案者がそれぞれ独立して草案を出した結果、&lt;a class="link" href="https://www.debian.org/vote/2026/vote_002" target="_blank" rel="noopener"
 &gt;Debian 公式の投票ページ&lt;/a&gt;には8案が並んでいます。Debian 開発者（DD）が Condorcet 法（選好順位投票）で順位をつけて投票します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;提案A（完全禁止）: 社会契約に LLM 使用禁止条項を追加する最も厳しい案。社会契約の改訂を伴うため、可決には3対1の超多数が必要&lt;/li&gt;
&lt;li&gt;提案B（条件付き許可）: 6条件つきで LLM 支援の貢献を許可する最も柔軟な案。&lt;code&gt;Generated-By:&lt;/code&gt; などの Git トレーラーによる使用開示、機密情報のクラウド AI への送信禁止などを含む&lt;/li&gt;
&lt;li&gt;提案C（行動規範による禁止）: AI 生成の出力をそのまま持ち込む行為を CoC 違反として扱う&lt;/li&gt;
&lt;li&gt;提案D（Debian 固有作業での受容）: AI 生成コードを「完全に理解し自分の言葉で説明できること」を必須とする&lt;/li&gt;
&lt;li&gt;提案E（責任ある使用）: プロジェクトは中立。開示は推奨するが必須としない&lt;/li&gt;
&lt;li&gt;提案F（慎重なアプローチ）: 実行可能な範囲で人間の執筆を優先すると明記&lt;/li&gt;
&lt;li&gt;提案G（人間が作る Debian）: ツールではなく出力の側を制限する&lt;/li&gt;
&lt;li&gt;提案H（気候変動が決定要因）: LLM 利用が生態系破壊を加速するという懸念を主軸に据える唯一の案&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;議論の発端にあるのは、Debian のフリーソフトウェアガイドライン（DFSG）がライセンスと著作権の明確性を求めるのに対し、LLM 由来のコードはその明確性を担保しにくいという構造的な矛盾です。2025年4月にも同テーマの決議が提案されましたが、翌5月に提案者自身が撤回して先送りになっていました。GCC プロジェクトが 2026年7月に LLM 由来コードを禁止する方針を採った、とも伝えられており、これが議論を加速させた一因とされています。&lt;/p&gt;
&lt;p&gt;個人的にいちばん興味深かったのが、セコンド（賛同者）の数です。最多は提案H の17名。著作権でも品質でもなく、気候変動を理由に据えた案が最も多くの賛同を集めているという構図は、正直まったく予想していませんでした。次点は「責任ある使用」を掲げる提案E の11名で、提案B・C・G が9名で並びます。&lt;a class="link" href="https://www.phoronix.com/news/Debian-Votes-On-LLM-Usage" target="_blank" rel="noopener"
 &gt;Phoronix の報道&lt;/a&gt;や &lt;a class="link" href="https://lwn.net/Articles/1085645/" target="_blank" rel="noopener"
 &gt;LWN.net の議論&lt;/a&gt;を見ても、コミュニティの温度感はかなり割れています。Hacker News では「執行コストが高すぎて実質機能しない」「上流が LLM を使っていれば意味がない」という懐疑論も目立ちます。&lt;/p&gt;
&lt;p&gt;Debian の決定は多くの派生ディストリビューションに影響します。提案B や D が通れば &lt;code&gt;Generated-By:&lt;/code&gt; トレーラーの運用整備が必要になりますし、Debian をベースに使う企業ではコントリビューションガイドラインの見直しが視野に入ってきます。8月28日の結果は追いかけておく価値があります。&lt;/p&gt;
&lt;h2 id="4-84バイトのaで落ちるルーターしかし修正は来ない"&gt;&lt;a href="#4-84%e3%83%90%e3%82%a4%e3%83%88%e3%81%aea%e3%81%a7%e8%90%bd%e3%81%a1%e3%82%8b%e3%83%ab%e3%83%bc%e3%82%bf%e3%83%bc%e3%81%97%e3%81%8b%e3%81%97%e4%bf%ae%e6%ad%a3%e3%81%af%e6%9d%a5%e3%81%aa%e3%81%84" class="header-anchor"&gt;&lt;/a&gt;4. 84バイトの「A」で落ちるルーター、しかし修正は来ない
&lt;/h2&gt;&lt;p&gt;さて、ここからが今回いちばん後味の悪い話です。TRENDnet の PoE+ 無線 LAN コントローラ「TEW-WLC100P」（ファームウェア 12.07b01）に、CVSS v3.1 で 9.6（Critical）のスタックベースバッファオーバーフロー（CVE-2026-75783）が 2026年8月18日に公開開示されました。&lt;a class="link" href="https://nvd.nist.gov/vuln/detail/CVE-2026-75783" target="_blank" rel="noopener"
 &gt;NVD の記載&lt;/a&gt;によれば CVSS v4.0 では 8.6 です。&lt;/p&gt;
&lt;p&gt;問題があるのは netifd、OpenWrt のネットワーク設定管理デーモンです。インターフェースの状態管理から DHCP クライアント処理まで、ルーターのネットワーク全体を仕切る中核コンポーネントで、TEW-WLC100P は OpenWrt ベースのファームウェアを採用しているためこれを内蔵しています。&lt;/p&gt;
&lt;p&gt;その DHCP blobmsg ハンドラが、サーバーから受け取った DHCP オプションのデータをスタック上の固定長バッファへコピーする際に、長さを検証していませんでした。攻撃者が同じ LAN 上に不正な DHCP サーバーを立て、ターゲットの DHCP リクエストに対して細工した応答を返す。DHCP オプション42（NTP サーバーフィールド）に過大なデータを詰め込めば、スタックが溢れてリターンアドレスを上書きできます。&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://github.com/meishigana/CVE/blob/main/team15_20260702/01_wlc100p-netifd/poc/poc-netifd-overflow.py" target="_blank" rel="noopener"
 &gt;公開されている PoC スクリプト&lt;/a&gt;を見ると、ペイロードは 84バイトのパディングと4バイトのリターンアドレス上書き、合計88バイトです。この短さが逆に不気味で、再現の敷居がほとんどないことを意味します。&lt;/p&gt;
&lt;p&gt;CVSS ベクトルは &lt;code&gt;AV:A/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H&lt;/code&gt;。攻撃元区分が Adjacent（隣接ネットワーク）なので、インターネット側から直接殴られることはありません。ただし裏を返せば、同じ LAN に繋がってさえいれば認証もユーザー操作もなしに成立するということです。TEW-WLC100P は単体のルーターではなく複数のアクセスポイントを集中管理するコントローラですから、落ちれば配下の無線ネットワーク全体が巻き込まれます。ゲスト端末が同居する社内 Wi-Fi は、十分に現実的な射程内です。&lt;/p&gt;
&lt;p&gt;そして最大の問題は、この製品がすでに EOL（製品終了）であり、&lt;a class="link" href="https://www.trendnet.com/support/support-detail.asp?prod=110_TEW-WLC100P" target="_blank" rel="noopener"
 &gt;TRENDnet 公式のサポートページ&lt;/a&gt;を見る限り、セキュリティパッチが提供される見込みが事実上ないことです。CVSS 9.6 の穴が開いていて、PoC も公開されていて、直す人はいない。「もう直しません」と言われた現場が、ここにあります。&lt;/p&gt;
&lt;p&gt;白状すると、私も前の職場で似た箱を一台、ラックの最下段で見なかったことにしていた時期があります。「誰も文句を言ってこないから動いているんだろう」で数年放置していたやつです。ああいう機器ほど、こういうニュースのときに真っ先に思い出して冷や汗をかきます。&lt;/p&gt;
&lt;p&gt;自衛策としては次のあたりが現実解になります。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;機器の交換（最優先）。サポートが継続している製品へ移行する&lt;/li&gt;
&lt;li&gt;ネットワーク分離。管理 VLAN に隔離し、一般ユーザーのネットワークからのアクセスをファイアウォールで遮断する&lt;/li&gt;
&lt;li&gt;上流スイッチで DHCP スヌーピングを有効化する。不正な DHCP サーバーからの応答をブロックすれば、この脆弱性の引き金そのものを潰せる&lt;/li&gt;
&lt;li&gt;未知の DHCP サーバーからの応答を IDS/SIEM で監視する&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;なお OpenWrt 本体でも 2026年7月に DHCPv6 デーモン odhcpd のスタックオーバーフロー（CVE-2026-53921、CVSS 9.8）が修正されています。netifd は OpenWrt ベースの多くの機器で共通に使われるコンポーネントなので、コードの共通性から他ベンダーのカスタマイズ機器に類似の問題が潜んでいる可能性はあります。手元の機器が OpenWrt ベースかどうか、一度確認しておいて損はありません。&lt;/p&gt;
&lt;h2 id="5-呪文ひとつでリポジトリが消える--gitlab-の未認証-graphql-脆弱性"&gt;&lt;a href="#5-%e5%91%aa%e6%96%87%e3%81%b2%e3%81%a8%e3%81%a4%e3%81%a7%e3%83%aa%e3%83%9d%e3%82%b8%e3%83%88%e3%83%aa%e3%81%8c%e6%b6%88%e3%81%88%e3%82%8b--gitlab-%e3%81%ae%e6%9c%aa%e8%aa%8d%e8%a8%bc-graphql-%e8%84%86%e5%bc%b1%e6%80%a7" class="header-anchor"&gt;&lt;/a&gt;5. 呪文ひとつでリポジトリが消える — GitLab の未認証 GraphQL 脆弱性
&lt;/h2&gt;&lt;p&gt;最後は、定例を待たずに緊急パッチが飛んできた話です。GitLab CE/EE の GraphQL ディレクティブ処理にコードインジェクションの脆弱性（CVE-2026-19478、CVSS 9.4）が見つかり、2026年8月17日にパッチがリリースされました。GitLab は通常、毎月第2・第4水曜日に定例パッチを出しています。その定例日を待たずに単独リリースしたという事実が、深刻度を物語っています。ちなみにこの8月17日は、さきほどの GitHub 障害が起きたのと同じ日です。世界中の開発者が GitHub の復旧を待っている裏で、自己ホスト GitLab の管理者は緊急アップグレードに追われていたことになります。&lt;/p&gt;
&lt;p&gt;何ができてしまうのか。未認証の攻撃者がネットワーク越しに細工した GraphQL リクエストを送るだけで、パブリックプロジェクトの削除、ソースコードや CI/CD 設定を含むデータの改ざん、関連するユーザーデータの変更が可能でした。ログインは要りません。&lt;/p&gt;
&lt;p&gt;GraphQL には &lt;code&gt;@skip&lt;/code&gt; や &lt;code&gt;@include&lt;/code&gt; のような「ディレクティブ」があり、クエリに付けることでフィールドの取得条件や動作を動的に制御できます。GitLab のような規模のアプリケーションは独自のカスタムディレクティブを多数定義していて、その引数がサーバー側のロジックへ渡る作りになっています。今回はその引数がサニタイズされないままコード実行のコンテキストに届いていました。特殊な呪文を唱えるだけで認証の扉が消えてしまう、というわけです。動画のタイトルはここから取っています。&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://nvd.nist.gov/vuln/detail/CVE-2026-19478" target="_blank" rel="noopener"
 &gt;NVD が確定させた CVSS ベクトル&lt;/a&gt;は &lt;code&gt;AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:H&lt;/code&gt; です。ネットワーク越し、低い攻撃複雑性、権限不要、ユーザー操作不要。機密性への影響は低（C:L）ですが、完全性と可用性は最高（I:H/A:H）。読み出せる情報は限られていても、消される・書き換えられる側の被害は最大という配分です。攻撃条件としてはもっとも緩い部類に入ります。&lt;/p&gt;
&lt;p&gt;影響と修正のバージョンは次のとおりです。&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;ブランチ&lt;/th&gt;
					&lt;th&gt;脆弱なバージョン&lt;/th&gt;
					&lt;th&gt;修正バージョン&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;18.2〜18.11系&lt;/td&gt;
					&lt;td&gt;18.2〜18.11.10&lt;/td&gt;
					&lt;td&gt;18.11.11&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;19.0系&lt;/td&gt;
					&lt;td&gt;19.0.0〜19.0.7&lt;/td&gt;
					&lt;td&gt;19.0.8&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;19.1系&lt;/td&gt;
					&lt;td&gt;19.1.0〜19.1.5&lt;/td&gt;
					&lt;td&gt;19.1.6&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;19.2系&lt;/td&gt;
					&lt;td&gt;19.2.0〜19.2.3&lt;/td&gt;
					&lt;td&gt;19.2.4&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;注意したいのは、18.2〜18.10系には修正版が提供されないという点です。該当する場合は 18.11.11 以上へ上げるしかありません。同じパッチでは GraphQL マルチプレックスクエリハンドラの CSRF 脆弱性（CVE-2026-19650、CVSS 7.1）も修正されています。未認証ユーザーが GET リクエスト経由でミューテーション（書き込み）を実行できるというものです。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div style="color:#fff;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="color:#fff;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&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"&gt;1
&lt;/span&gt;&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"&gt;2
&lt;/span&gt;&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"&gt;3
&lt;/span&gt;&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"&gt;4
&lt;/span&gt;&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"&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="color:#fff;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a8a8a8"&gt;# 現在のバージョン確認&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gitlab-rake gitlab:env:info | grep &lt;span style="color:#79a8ff"&gt;&amp;#34;GitLab version&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a8a8a8"&gt;# Omnibus GitLab の場合（例）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo apt-get install gitlab-ee&lt;span style="color:#00d3d0"&gt;=&lt;/span&gt;19.2.4-ee.0
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;GitLab.com と GitLab Dedicated はすでにパッチ済みで、利用者側の対応は不要です。影響を受けるのは自己ホスト環境だけ。&lt;a class="link" href="https://docs.gitlab.com/releases/patches/patch-release-gitlab-19-2-4-released/" target="_blank" rel="noopener"
 &gt;GitLab 公式のパッチリリースノート&lt;/a&gt;によれば、このアップデートはマルチノード構成でもダウンタイムは通常発生しないとされており、新規のデータベースマイグレーションも含まれません。すぐに上げられない場合は、&lt;code&gt;/api/graphql&lt;/code&gt; エンドポイントへの外部 IP からのアクセスを境界で制限するのが応急処置になりますが、あくまで時間稼ぎです。パッチ適用後は、監査ログを遡ってパブリックリポジトリへの予期しない変更がないか確認しておきましょう。&lt;/p&gt;
&lt;p&gt;2026年8月18日時点で、悪用の報告も公開 PoC も確認されていません。具体的なディレクティブ名や PoC は GitLab の90日開示ポリシーにより、2026年11月中旬頃に公開される見込みです。猶予はあります。ただし、それは「今のうちに上げる」ための猶予です。&lt;/p&gt;
&lt;h2 id="まとめ"&gt;&lt;a href="#%e3%81%be%e3%81%a8%e3%82%81" class="header-anchor"&gt;&lt;/a&gt;まとめ
&lt;/h2&gt;&lt;p&gt;5本を並べてみると、線がきれいに引けます。Ray も GitLab も、深刻な穴が見つかって、定例スケジュールを外してでも修正が出ました。GitHub は7時間42分止めた代わりに、少なくとも復旧に人を張り付けています。一方 TEW-WLC100P には、PoC まで公開されているのに直す人がいません。差を分けたのは技術的な難易度ではなく、その製品にまだ人が張り付いているかどうかです。&lt;/p&gt;
&lt;p&gt;セキュリティの話をするとき、私たちはつい CVSS の数字で危険度を測ります。けれど本当に効くのは「これは直してもらえるのか」という問いのほうかもしれません。皆さんの現場にある機器は、まだ駆けつけてもらえる側でしょうか。それとも、もう見捨てられた側でしょうか。棚の奥で静かに動き続けている箱に、今日あたり一度目を向けてみてください。&lt;/p&gt;
&lt;h2 id="参考リンク"&gt;&lt;a href="#%e5%8f%82%e8%80%83%e3%83%aa%e3%83%b3%e3%82%af" class="header-anchor"&gt;&lt;/a&gt;参考リンク
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;CVE-2025-62593 NVD 詳細（Ray）: &lt;a class="link" href="https://nvd.nist.gov/vuln/detail/CVE-2025-62593" target="_blank" rel="noopener"
 &gt;https://nvd.nist.gov/vuln/detail/CVE-2025-62593&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Ray 2.52.0 リリースノート: &lt;a class="link" href="https://github.com/ray-project/ray/releases/tag/ray-2.52.0" target="_blank" rel="noopener"
 &gt;https://github.com/ray-project/ray/releases/tag/ray-2.52.0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Oligo Security「ShadowRay 2.0」調査レポート: &lt;a class="link" href="https://www.oligo.security/blog/shadowray-2-0-attackers-turn-ai-against-itself-in-global-campaign-that-hijacks-ai-into-self-propagating-botnet" target="_blank" rel="noopener"
 &gt;https://www.oligo.security/blog/shadowray-2-0-attackers-turn-ai-against-itself-in-global-campaign-that-hijacks-ai-into-self-propagating-botnet&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;GitHub 公式ステータス・インシデント履歴: &lt;a class="link" href="https://www.githubstatus.com/history" target="_blank" rel="noopener"
 &gt;https://www.githubstatus.com/history&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;GitHub Blog: July 2026 可用性レポート: &lt;a class="link" href="https://github.blog/news-insights/company-news/github-availability-report-july-2026/" target="_blank" rel="noopener"
 &gt;https://github.blog/news-insights/company-news/github-availability-report-july-2026/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Debian 公式投票ページ（vote_002/2026）: &lt;a class="link" href="https://www.debian.org/vote/2026/vote_002" target="_blank" rel="noopener"
 &gt;https://www.debian.org/vote/2026/vote_002&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Phoronix: Debian が LLM 利用を投票にかける: &lt;a class="link" href="https://www.phoronix.com/news/Debian-Votes-On-LLM-Usage" target="_blank" rel="noopener"
 &gt;https://www.phoronix.com/news/Debian-Votes-On-LLM-Usage&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;LWN.net: LLM 利用に関する全体決議の議論: &lt;a class="link" href="https://lwn.net/Articles/1085645/" target="_blank" rel="noopener"
 &gt;https://lwn.net/Articles/1085645/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;CVE-2026-75783 NVD 詳細（TRENDnet TEW-WLC100P）: &lt;a class="link" href="https://nvd.nist.gov/vuln/detail/CVE-2026-75783" target="_blank" rel="noopener"
 &gt;https://nvd.nist.gov/vuln/detail/CVE-2026-75783&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;公開 PoC スクリプト（発見者リポジトリ）: &lt;a class="link" href="https://github.com/meishigana/CVE/blob/main/team15_20260702/01_wlc100p-netifd/poc/poc-netifd-overflow.py" target="_blank" rel="noopener"
 &gt;https://github.com/meishigana/CVE/blob/main/team15_20260702/01_wlc100p-netifd/poc/poc-netifd-overflow.py&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;TRENDnet 公式サポートページ（TEW-WLC100P）: &lt;a class="link" href="https://www.trendnet.com/support/support-detail.asp?prod=110_TEW-WLC100P" target="_blank" rel="noopener"
 &gt;https://www.trendnet.com/support/support-detail.asp?prod=110_TEW-WLC100P&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;CVE-2026-19478 NVD 詳細（GitLab）: &lt;a class="link" href="https://nvd.nist.gov/vuln/detail/CVE-2026-19478" target="_blank" rel="noopener"
 &gt;https://nvd.nist.gov/vuln/detail/CVE-2026-19478&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;GitLab 公式パッチリリースノート（19.2.4）: &lt;a class="link" href="https://docs.gitlab.com/releases/patches/patch-release-gitlab-19-2-4-released/" target="_blank" rel="noopener"
 &gt;https://docs.gitlab.com/releases/patches/patch-release-gitlab-19-2-4-released/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>