トップ/記事一覧/Gravは2.0.13でも不十分、本体2.0.15へ 8月3日に14件の追加修正
grav-cve-cover-ja-update

Gravは2.0.13でも不十分、本体2.0.15へ 8月3日に14件の追加修正

ホームページやブログを作るソフト「Grav」に、サイトを乗っ取られる恐れのある脆弱性が2026年7月にまとめて公表されました。悪用されると管理者になりすまされ、サイトを改ざんされる可能性があります。対象は古いバージョンで、最新版に更新すれば防げます。自分のサイトが対象か、確認方法と対処を分かりやすくまとめました。

ニュース2026年7月22日公開最終更新 2026年8月20日
目次
この記事のポイント

ホームページやブログを作るソフト「Grav」に、サイトを乗っ取られる恐れのある脆弱性が2026年7月にまとめて公表されました。悪用されると管理者になりすまされ、サイトを改ざんされる可能性があります。対象は古いバージョンで、最新版に更新すれば防げます。自分のサイトが対象か、確認方法と対処を分かりやすくまとめました。

【再訂正】7月29日にご案内した「Grav本体2.0.13/API用プラグイン1.0.13」でも足りません。8月3日に、本体で4件・API用プラグインで5件の修正が新たに公開されました。7月22日の初版で「2.0.9まで上げれば足りる」とお伝えし、7月29日に「2.0.13へ」と訂正した本記事ですが、更新先はさらに先へ進んでいます。当サイトの案内を見て更新された方は、お手数ですがもう一度上げてください。

2026年8月5日時点で上げるべきなのは、Grav本体 2.0.15(8月3日公開)、API用プラグイン 1.0.15ログイン用プラグイン 3.8.13 です。フォーム用プラグインを使っているなら 9.1.19 も加わります。

8月3日の分で重いのは、初版で「最も危険」と紹介したCVE-2026-65008と同じ入り口に、まだ別の抜け道が残っていたことです。本記事は7月29日に「2.0.11で抜け道が塞がれた」とお伝えしましたが、そこで塞ぎ切れていなかった経路が2.0.15で塞がれました。また、7月29日時点で「まだ配布されていない」と書いた2.0.14は、翌7月30日に公開されています。当時の記述は、その時点では正確でしたが、いまは当てはまりません。

ホームページやブログを作るためのソフト「Grav」に、サイトを乗っ取られる恐れがある脆弱性(ソフトの弱点)が2026年7月にまとめて公表されました。開発元のTrilby Mediaとセキュリティ企業VulnCheckが連携して公開した一連の弱点で、なかには最も深刻な「緊急」レベルのものが含まれています。

今回まとめて出たなかで特に危ないのが、CVE-2026-65008(10点満点で9.8)です。悪用されると、遠くにいる攻撃者がサーバー上で好きなプログラムを動かせてしまう可能性があります。ほかにも管理者になりすませる弱点(CVE-2026-65007)や、一般利用者が管理者へ昇格できる弱点(CVE-2026-65603)などが同時に公表されました。いずれも古いバージョンが対象で、更新すれば防げます。7月29日時点でも実際に悪用されたという報告はありませんが、最も危険なCVE-2026-65008については攻撃コードがすでに出回っています。

自分のサイトが対象になるのか、どのバージョンまで上げればよいのか、初版のあとに何が追加されたのかを、専門知識がなくても分かるように整理します。

そもそも「Grav」とはどんなソフトか

Gravは、ホームページやブログ、マニュアルサイトなどを作るためのソフトです。こうした「サイトの中身を管理するソフト」を、一般にCMS(コンテンツ管理システム)と呼びます。世界で最も使われているCMSはWordPressですが、Gravはそれとは違うタイプで、開発者や技術に詳しい人に好まれています。

大きな特徴は、データベースを使わないことです。多くのCMSは記事や設定をデータベースという別のソフトに保存しますが、Gravは中身をすべてファイルとして持ちます。この仕組みは「フラットファイル型」と呼ばれ、動作が軽く、設置や引っ越しが簡単だという利点があります。技術文書のサイトや、企業の小規模サイト、個人のブログなどでよく使われています。

Grav本体には、機能を追加する「プラグイン」という部品を組み合わせられます。今回公表された弱点は、Grav本体のものと、ログイン用プラグインAPI用プラグインなど、追加部品のものが混在しています。どの部品を使っているかで、対象かどうかが変わってきます。

いま上げるべきバージョン

部品ごとの到達点を先に出します。左が現時点の推奨、右が初版でご案内していた版です。右のままなら、まだ弱点が残っています。

部品いま上げるべき版初版での案内その後に足された修正
Grav本体2.0.15
(2026年8月3日)
2.0.92.0.11・2.0.13で追加修正
2.0.14・2.0.15でさらに6件
API用プラグイン1.0.15
(2026年8月3日)
1.0.87月26日に12件
8月3日にさらに5件
ログイン用プラグイン3.8.13
(最新は3.9.0)
3.8.12ログイン状態が
期限切れにならない欠陥
スケジューラー
連携プラグイン
1.1.31.1.3本件では追加なし

本体の最新版は、開発元が配布している配布情報のファイルで確認できます。8月5日時点の中身は 2.0.15(2026年8月3日付)です。ログイン用プラグインは3.9.0が出ていますが、こちらは機能追加が中心で、弱点への対処という意味では3.8.13で足ります。この記事で扱っている一連の弱点は、7月22日から8月3日までのあいだに修正版が7回出ています。更新の間隔が短いので、上げた直後でも管理画面の通知は確認してください。

2026年7月にまとめて公表された脆弱性

初版で扱った4件は、Grav公式のセキュリティ告知VulnCheckの勧告で公開されたものです。「どの部品の・どのバージョンが対象で・どの版で最初に直ったか」を一覧にまとめます。深刻度は10点満点で、9以上が「緊急」、7〜8点台が「重要」です。右から2列目は当時の修正版であって、いま上げるべき版ではありません。

脆弱性の番号対象の部品対象バージョン最初に直った版深刻度何が起きるか
CVE-2026-65008Grav本体
(入力フォーム機能)
2.0.4〜2.0.62.0.7 以上緊急(9.8)サーバー上で
任意のプログラム実行
CVE-2026-65007API用プラグイン1.0.8 未満1.0.8 以上緊急(9.6)他人になりすます
鍵を勝手に発行
CVE-2026-65603ログイン用プラグイン3.8.11 以前3.8.12 以上重要(8.8)一般利用者が
管理者へ昇格
CVE-2026-57852Grav本体 /
スケジューラー連携プラグイン
本体2.0.8以前 /
プラグイン1.1.2未満
本体2.0.9 /
プラグイン1.1.3
警告(中)定時処理を
無断で実行される

初版を書いた時点では、本体の問題は2.0.7と2.0.9で片が付いたように見えていました。ところが、同じ入り口をすり抜ける経路が後から2つ見つかり、2.0.11と2.0.13で追加の修正が入っています。プラグインも同様で、API用は1.0.13まで、ログイン用は3.8.13まで伸びました。修正版の番号が短期間で動き続けているのが、今回のGravの特徴です。

誰が狙い、何をしてくるのか

CVSSの数字や専門用語だけでは、自分に関係があるのか分かりにくいものです。ここでは「誰が・何のために・どんな被害を出すのか」をかみくだいて説明します。

今回の弱点を狙うのは、インターネット上に公開されているGrav製サイトを機械的に探し回る攻撃者です。特定の誰かを狙うというより、「古いGravで動いているサイト」を手当たり次第に見つけ、入り込めそうな穴が残っていないか試していくタイプの攻撃が想定されます。

見つけた穴を使って攻撃者がやろうとするのは、管理者になりすましてサイトの中身を書き換えたり、サーバー上で自分のプログラムを動かしたりすることです。今回のCVE-2026-65008のように「サーバー上で任意のプログラムを実行できる」段階まで進むと、そのサイトを土台にして別の攻撃を仕掛けたり、置いてあるデータを盗んだりできてしまいます。

被害は二方向に出ます。サイトを訪れる一般の人にとっては、見ているページが改ざんされていたり、偽の入力画面に情報を抜き取られたりする危険があります。サイトを運営する企業や個人にとっては、乗っ取り・データ流出・復旧作業という直接の損害に加え、信頼の低下という後を引くダメージが残ります。だからこそ、悪用が広がる前に最新版へ上げておくことが何より大切です。

それぞれの脆弱性の中身(技術的な詳細)

ここからは、4件それぞれがどういう仕組みの弱点なのかを個別に見ていきます。技術に詳しくない方は、前半の一覧表と対処法だけ読めば十分です。

CVE-2026-65008:入力フォーム経由でサーバーを乗っ取られる(最も危険)

今回の目玉となる弱点です。Grav本体(2.0.4〜2.0.6)の入力フォーム処理に、外部から渡された値をプログラムの一部として実行してしまう欠陥(コードインジェクション、専門的にはCWE-94)がありました。NVD(米国の脆弱性データベース)は、深刻度を10点満点で9.8と評価しています。

攻撃の流れはこうです。まずページを編集できる権限を持つ利用者が細工を仕込み、その細工が入ったページを、あとから訪れた人のアクセスによって実行させます。厄介なのは、仕込みさえ済んでいれば、その後はログインしていない普通の訪問者がページを開くだけで悪意あるプログラムが動いてしまう点です。この「最後の一押しが誰でもできる」性質のため、NVDは実質的に認証なしで悪用が成立するとみなし、最高クラスの点数を付けています。Grav 2.0.7で修正されました。

CVE-2026-65007:APIの鍵を誰でも勝手に発行できてしまう

API用プラグイン(1.0.8未満)の弱点です。APIとは、外部のプログラムからGravを操作するための窓口で、その利用には「APIキー」という鍵が使われます。この鍵を発行したり無効にしたりする操作の権限チェックが不十分で、本来は限られた人しか使えないはずの機能が、ログインできる利用者なら誰でも、他人の名義の鍵まで作れてしまう状態になっていました(認可の欠落、CWE-862)。

他人になりすます鍵を手に入れれば、その人の権限でサイトを操作でき、そこから管理者権限の奪取やアカウント乗っ取りへとつながります。深刻度は9.6と評価されています。この1件は1.0.8で直りましたが、後述のとおりAPI用プラグインではその後も別の弱点が続けて見つかっており、いま必要なのは1.0.13です。API用プラグインを入れていないサイトは、この系統の弱点の対象外です。

CVE-2026-65603:プロフィール更新から管理者に成り上がれる

ログイン用プラグイン(3.8.11以前)の弱点で、今回このニュースの入り口になったものです。Gravでは利用者が自分のプロフィールを更新できますが、その更新処理で、本来書き換えられてはいけない「権限を決める項目」までそのまま保存されてしまう欠陥がありました。具体的には、権限の低い利用者が自分のプロフィール更新に「自分を最上位管理者にする」という指定を紛れ込ませると、次のアクセスから最上位管理者として振る舞えてしまいます(不適切な権限管理、CWE-269)。

Grav公式の告知によると、以前の修正で新規登録の処理には権限項目を弾く対策が入っていたのに、よく似たプロフィール更新の処理には同じ対策が入っていなかったことが原因です。管理者に成り上がった後は、Gravの定時処理やテンプレート機能を悪用してサーバー上でプログラムを実行することも可能になります。深刻度は8.8。この1件はログイン用プラグイン3.8.12で直りましたが、7月14日公開の3.8.13でさらに別の欠陥が塞がれているため、上げる先は3.8.13です。なお、この弱点は標準的な利用者管理の設定でのみ成立し、より厳格な「Flex」という管理方式を使っている場合は影響を受けにくいとされています。

CVE-2026-57852:定時処理の入り口が認証なしで叩かれる

Grav本体(2.0.8以前)とスケジューラー連携プラグイン(1.1.2未満)にまたがる弱点です。Gravには決まった時間に処理を走らせる「スケジューラー」の仕組みがあり、外部から実行の合図を送るための入り口(Webフック)が用意されています。ここで合言葉(トークン)の照合処理に穴があり、合言葉を設定していない初期状態のサイトでは、認証なしのリクエストひとつで登録済みの定時処理をすべて実行できてしまう状態でした。

この弱点はVulnCheckの研究者が報告し、CVE-2026-57852として2026年7月9日に公表されました。深刻度は中程度ですが、他の弱点と組み合わされると被害が広がる恐れがあります。スケジューラー連携プラグインは1.1.3で対処済みで、本体側は2.0.9で塞がれました(本体そのものは、後述のとおりさらに先まで上げる必要があります)。

初版のあとに何が追加されたか

初版を公開した7月22日から1週間で、Grav側の状況はかなり動きました。順に見ていきます。

本体2.0.11:CVE-2026-65008と同じ入り口の抜け道が残っていた

7月13日公開の2.0.11が、いちばん重い訂正の理由です。CVE-2026-65008は、入力項目の設定に「この処理を呼び出せ」という指定(dynamic field)を仕込むと、それがそのまま実行されてしまう欠陥でした。2.0.7と2.0.9で危険な処理を弾く防御が入ったのですが、指定の書き方を変えるとその防御をすり抜けられる経路が残っていましたGHSA-7pgq-cr25-xvc8として公表され、ページ編集権限を持つ利用者がサーバー上のファイルや設定内の秘密情報を読み出せる状態でした。開発元の変更履歴は、この修正を「2.0.7と2.0.9で追加した防御の回避を塞いだ」と説明しています。2.0.11では同時に、画像の透かし機能から任意のファイルを読めてしまう欠陥(GHSA-w3f4-8pj2-599w)も直っています。

本体2.0.13:コード実行が2件、保存型XSSが1件

7月25日公開の2.0.13は、2.0.12以前が対象の弱点をまとめて塞いだ版です。設定を扱える管理者がdynamic fieldの指定の書き方を変えることでサーバー上のプログラムを実行できた欠陥(GHSA-r94f-hx44-8jqf)、テンプレート機能の findsort の指定から危険な処理を呼べた欠陥(GHSA-xx48-97m4-h7qm)、ページ編集者が訪問者のブラウザでスクリプトを走らせられる保存型XSS(GHSA-269c-h76q-8cxw)、バックアップの保存先をサイト外に向けられた欠陥(GHSA-fch7-cpv4-w7hg)が対象です。ここまで上げて、ようやく本体は現時点の到達点になります。

API用プラグイン1.0.13:12件の告知が一度に出た

7月26日、API用プラグインについて12件のセキュリティ告知が一括で公開されました。いずれも対象は1.0.12以前、修正は1.0.13です。中身は、権限を絞って発行したはずのAPIキーがその制限を越えて動いてしまう、というものが中心です。読み取り専用のつもりで配ったキーで、利用者グループの権限を書き換えたり、招待した相手に最上位管理者の権限を与えたり、自分より広い権限のキーを新たに発行したりできる状態でした。深刻度は「重要」に相当するものが多数を占めます。API用プラグインの告知一覧で個別に確認できます。

ログイン用プラグイン3.8.13:ログイン状態が期限切れにならない

7月14日公開のGHSA-mj78-8gwc-vxjjは、3.8.12以前が対象です。「ログイン状態を保持する」機能で発行される合言葉が、設定した期限(初期値は7日)を過ぎても失効せず、そのまま有効であり続けていました。何かの拍子にこの合言葉が第三者の手に渡ると、いつまでもログインしたままの状態を使われることになります。

記事公開後に登録された脆弱性番号

CVE番号の登録も続いています。初版で扱った4件のほかに、以下がNVDに載りました。

脆弱性の番号登録日対象深刻度何が起きるか
CVE-2026-656087月23日本体 1.7.0以上
2.0.9未満
重要(8.8)Flexの入力項目から
任意のプログラム実行
CVE-2026-658977月23日API用 1.0.10未満重要(8.8)招待した相手に
最上位権限を付与
CVE-2026-658957月23日API用 1.0.10未満重要(8.5)連続入力の制限を
丸ごと解除できる
CVE-2026-658967月23日API用 1.0.10未満重要(7.1)ページの移動先を
想定外の場所へ
CVE-2026-646287月21日ショートコード
プラグイン
警告(5.4)訪問者のブラウザで
スクリプトが動く

CVE-2026-65608は、初版で紹介したCVE-2026-65008と同じ「入力項目の設定から処理を呼び出せてしまう」系統の弱点で、Flexという管理方式の側に残っていたものです。対象が1.7.0以降と広く、古い1.7系を使い続けているサイトも含まれます。なお、7月26日に公開された15件前後の告知にはまだCVE番号が付いていません。番号が付いていないからといって、内容が軽いわけではありません。

2.0.14は7月30日に、2.0.15は8月3日に公開された

7月29日の時点では、開発版の変更履歴にv2.0.14(7月27日付)の項目が書かれているだけで、タグにも配布ファイルにもPackagistにも出ておらず、入手できませんでした。その後2.0.14は7月30日に、続けて2.0.15が8月3日に公開されました。変更履歴に書かれていた「利用者管理の権限設定から自分を最上位管理者に昇格できる欠陥」と「コンテンツの検査をすり抜けてスクリプトを隠せる欠陥」は、2.0.14で解消しています。

重いのは、そのあとに出た2.0.15のほうです。8月3日、開発元は本体・API用プラグイン・フォーム用プラグインにまたがる14件の告知を一度に公開しました。本体に関わるのは6件で、うち2件は深刻度「高」です。とりわけ初版で「最も危険」と紹介したCVE-2026-65008と同じ入り口に、まだ別の抜け道が残っていたことが明らかになりました。設計図(ブループリント)に書ける動的な値の扱いで、禁止する関数を並べて弾く方式(ブラックリスト)のままだった分岐があり、そこを通せば検査をすり抜けられた、という内容です。本記事が7月29日に「2.0.11で抜け道が塞がれた」と書いたのは、その時点で公表されていた範囲では正しかったのですが、同じ入り口の穴は、まだ全部は塞がっていませんでした

残る本体の修正は、引用符の対になっていない書き方でスクリプトの検査をすり抜けられるもの、認証なしでファイル置き場の外へ出られるもの、記事に音声や動画を貼るときのURL経由でスクリプトを仕込めるものなどです。API用プラグインでも、ページの複製処理でファイル置き場の外へ書き込めるものと、翻訳機能から任意のコードを持ち込めるものが「高」として直っています。8月3日の14件も、7月26日の分と同じくCVE番号はまだ付いていません。番号がないだけで、内容は本記事が扱ってきたものと地続きです。

自分のサイトは対象なのか、どう確認するか

まず確認すべきは、使っているGrav本体のバージョンです。Gravの管理画面にログインすると、ダッシュボードに現在のバージョンが表示されます。ここが2.0.15より前なら、まだ何かしらの弱点が残っています。2.0.7より前ならCVE-2026-65008そのものの対象、2.0.9より前ならスケジューラー関連とCVE-2026-65608の対象、2.0.11より前ならCVE-2026-65008の抜け道が、2.0.13より前ならコード実行と保存型XSSが、2.0.14より前なら管理者への昇格と検査のすり抜けが、そして2.0.15より前ならCVE-2026-65008と同じ入り口に残っていた別の抜け道が残っている、という並びです。

次に、追加しているプラグインを確認します。API用プラグインを入れているなら1.0.15か、ログイン用プラグインを入れているなら3.8.13か、フォーム用プラグインを入れているなら9.1.19かを見てください。逆に、これらのプラグインを使っていないサイトは、その分の弱点は関係ありません。「本体のバージョンだけ」「使っているプラグインだけ」を見れば、自分が対象かどうかは切り分けられます。

なお、Grav本体のバージョン番号が「1.7.x」のように大きく異なる古い世代を使っている場合は、そもそも今のサポート対象から外れている可能性が高く、早めに現行系列へ移行することを検討したほうがよいでしょう。7月23日に登録されたCVE-2026-65608は対象が1.7.0以降で、この古い世代も巻き込んでいます。

今すぐやるべき対処

対処はシンプルで、本体2.0.15・API用プラグイン1.0.15・ログイン用プラグイン3.8.13まで上げることに尽きます(フォーム用プラグインを使っているなら9.1.19も)。Gravには管理画面から更新できる仕組みがあり、通知が出ていればそこから本体とプラグインをまとめて更新できます。コマンドで運用している場合は、Gravのパッケージ管理コマンド(GPM)で `bin/gpm selfupgrade` と `bin/gpm update` を実行すれば、本体と各プラグインを最新化できます。更新後は、バージョン番号が実際にこの3つに届いているかまで確認してください。一度更新したから大丈夫、とはいきません。

更新の前には、必ずファイル一式のバックアップを取っておきましょう。フラットファイル型のGravは中身がすべてファイルなので、フォルダごと控えておけば、万一更新でうまく動かなくなっても元に戻せます。

すぐに更新できない事情がある場合は、当面の緩和策として、管理画面やAPIの入り口に社内・特定のIPアドレスからしか届かないよう制限をかける、スケジューラーのWebフックに合言葉(トークン)を必ず設定する、といった手当てで露出を減らせます。ただしこれらは時間稼ぎに過ぎず、根本対処は更新です。

今回のように、本体と複数のプラグインで別々に弱点が出るケースでは、「どの部品を・どのバージョンで使っているか」を普段から把握しておくことが効いてきます。使っている部品と既知の弱点を突き合わせて管理する考え方は、オープンソース部品の弱点を洗い出す仕組みの記事でも整理しています。プラグインを多く入れているサイトほど、この棚卸しが役立ちます。

実際に悪用されているのか

2026年7月29日時点で、今回の弱点が実際に攻撃に使われたという報告は確認されていません。米政府機関CISAが公開する「実際に攻撃されている脆弱性のリスト」(KEV)にも、いずれも登録されていません。公開Gravサイトを狙った大規模なスキャンや改ざんの報告も出ていません。一連の公表は、攻撃が起きてからの後追いではなく、開発元とセキュリティ企業が連携して直してから知らせる「協調的な開示」の形で行われています。

ただし、状況は初版のときより一段進みました。CVE-2026-65008の動作する実証コード(PoC)が公開されています。コマンド実行と、攻撃者の手元へ接続を張り返す処理までを含むスクリプトに、動作確認用のDocker環境と手順書が付いた完成度の高いもので、7月28日にも更新されています。手順書には、仕込みが済んだあとはログインしていない訪問者がページを開くだけでWebサーバーの権限で実行される旨が書かれています。攻撃に必要な調査を自前でやらなくてよくなった、ということです(当サイトでは、攻撃の手引きになるため公開場所は示しません)。

実際の悪用が確認されていないことと、いつ始まってもおかしくないことは、両立します。PoCが出て、番号の登録が続き、修正版が短い間隔で出続けている——この3つが重なっている間は、更新を来週に回さないでください。作業自体は管理画面から数分で終わります。

更新履歴

  • 2026年8月5日 ― 推奨バージョンを再訂正。本体2.0.13→2.0.15、API用プラグイン1.0.13→1.0.15(ログイン用は3.8.13のまま、フォーム用9.1.19を追加)。2.0.14が7月30日に、2.0.15が8月3日に公開されたこと、8月3日に本体・API用・フォーム用にまたがる14件の告知が一括公開されたこと、そのなかにCVE-2026-65008と同じ入り口に残っていた別の抜け道が含まれることを追加しました。「2.0.14はまだ出ていない」とした節は書き換えています。
  • 2026年7月29日 ― 推奨バージョンを訂正。本体2.0.9→2.0.13、API用プラグイン1.0.8→1.0.13、ログイン用プラグイン3.8.12→3.8.13。2.0.11でCVE-2026-65008の抜け道が塞がれていたこと、API用プラグインで12件の告知が一括公開されたこと、CVE-2026-65608ほか新しい脆弱性番号が登録されたことを追加。CVE-2026-65008の実証コードが公開された事実と、2.0.14が変更履歴には載っているもののまだ配布されていない点も追記しました。
  • 2026年7月22日 ― 初版公開。CVE-2026-65008/65007/65603/57852の4件を掲載。

参照元

avatar-m-1

Backend Engineer / AWS / Django / Go