本文へ移動
情シスのミカタ
ニュース約8分で読めます

Backstageに認可の脆弱性、設定で外したアクションを実行できた

社内の開発者ポータルを作るBackstageで、管理者が設定で外したアクション(操作)を、ログインした利用者が実行できる脆弱性(CVE-2026-106495)が公表されました。深刻度は中程度で、backend-defaultsの0.17.8で直っています。AIに渡す操作の絞り込みとの関係と、確かめ方をまとめます。

公開 情シスのミカタ編集部AIにより執筆チェック済み
文字
Backstageに認可の脆弱性、設定で外したアクションを実行できた

この記事のまとめ

  • Backstageの@backstage/backend-defaultsの0.17.8より前で、設定で外したアクションを実行できました。
  • 深刻度はCVSS 4.3の中程度です。アクションごとの権限の確認と、その先の認可は効いていたと告知は書いています。
  • 同じ0.17.8で、外部の呼び出しの制限が効かない深刻度の高い1件も直りました。1.54.6以降へ上げます。
こんな方に#20代#30代#40代#50代実務

Backstageは、開発者ポータル(社内のサービスや文書、作成の手順をまとめた社内のサイト)を作るオープンソースの仕組みです。このBackstageに、認可の脆弱性(CVE-2026-106495)が公表されました。管理者が設定で外したアクション(操作)を、ログインした利用者が実行できたものです。

深刻度は中程度(CVSS 4.3)で、直した版は8月28日に出ています。GitHubの脆弱性データベースは日本時間10月16日、この告知を確認済みとして載せました。Backstageの告知、修正のコード、公式の文書で確かめた内容だけを書きます。

Backstageの「アクション」とは

Backstageの裏側(バックエンド)では、各プラグイン(機能の部品)が「アクション」を登録できます。アクションは、カタログの情報を調べる、といった操作の単位です。IDは「catalog:fetch-user-info」のように、プラグインの名前で始まります。

MCPは、AIと外の道具をつなぐ決まりです。BackstageのMCP Actions Backendは、登録されたアクションを、MCPの道具としてAIに渡します。文書では、アクションの仕組みは試験的な機能(alpha)の扱いです。

どのアクションを使わせるかは、設定ファイル(app-config)で絞れます。backend.actions.pluginSourcesは、アクションを登録してよいプラグインの一覧です。backend.actions.filterは、IDの型や、destructive(壊す操作か)などの性質で、含めるものと外すものを決めます。

Backstageの公式の文書Actions (alpha)のConfigurationの節(暗い配色)。Restricting action sources by pluginでは、pluginSourcesがアクションを登録できるプラグインを限ると説明し、backend.actions.pluginSourcesにcatalogを書いた例がある。Filtering actionsでは、includeとexcludeの規則で、どのアクションを見せ、実行できるようにするかを細かく決められること、IDの型(glob)か、destructive・readOnly・idempotentの性質で絞れることが書かれている。catalogの壊さない操作を含める例と、名前がdeleteで始まるものとdestructiveがtrueのものを外す例がある。下のPermissionsには、visibilityPermissionを付けたアクションは権限の仕組みで確かめられ、拒否されたアクションを呼ぶと404 Not Foundが返ると書かれている
Backstageの文書のActionsの設定の節。アクションを絞る設定の例が並ぶ出典: Backstage(引用)

何が起きていたか

告知の説明は短く、次のとおりです。

An authenticated user could invoke actions that an operator had excluded through action configuration. Existing action permissions and downstream authorization remain enforced.

出典: Backstage「Improper access control in backend action invocation」

ログインした利用者が、管理者がアクションの設定で外したアクションを呼べた、という意味です。アクションに付けた権限の確認と、その先の認可は効いたままだったとしています。

修正のコードを読むと、仕組みが分かります。修正の前は、設定による絞り込みは、呼ぶ側(Actionsのサービス)が一覧を作るときにだけ効いていました。実行の要求はそのまま各プラグインの窓口(パスに/.backstage/actions/を含むもの)に届き、窓口は設定を見ていませんでした。

修正後は、各プラグインの窓口でも同じ設定を見ます。外したアクションは一覧に出ず、呼ぶと「見つからない」が返ります。

GitHub Advisory DatabaseのCVE-2026-106495のページの上の部分。題はBackstage: Improper access control in backend action invocation。Moderate severityとGitHub Reviewedの札があり、8月28日にbackstage/backstageで公開とある。パッケージの表では、@backstage/backend-defaults(npm)の影響する版が0.17.8より前、直した版が0.17.8。説明のImpactに、ログインした利用者が、管理者がアクションの設定で外したアクションを呼べたことと、アクションの権限とその先の認可は効いたままであることが書かれている。Patchesは0.17.8、Workaroundsは、上げるまでアクションの実行の窓口への接続を信頼できるサービスからの呼び出しに絞ること。右に深刻度Moderate 4.3/10と、CVSS v3の内訳(攻撃の経路はネットワーク、条件の複雑さは低、必要な権限は低、利用者の操作は不要、スコープは変更なし、機密性はなし、完全性は低、可用性はなし)、EPSS 0.238%、CWE-284が並ぶ
GitHubのデータベースのBackstageの告知。対象と直した版、回避策が並ぶ出典: GitHub(GitHub Advisory Database)(引用)

CVSSの内訳では、ネットワーク越しに狙え、ログイン(低い権限)が要り、相手の操作は要りません。影響は改ざんが「低」で、情報の漏えいと停止は「なし」です。米国CISAの評価(SSVC)は、悪用が「なし」、自動で繰り返せるかが「いいえ」、影響が「部分的」です。

対象の版と直した版

部品・リリース 対象 直した版
@backstage/backend-defaults 0.17.8より前 0.17.8(8月28日)
Backstage全体のリリース 1.54.6より前(CVEの記録) 1.54.6(8月28日)

Backstageは、リリースごとの部品の版の一覧(versionsリポジトリ)を公開しています。これによると、1.54.6に入るbackend-defaultsは0.17.8です。9月15日の1.55.0には0.18.0が入っていて、編集部がコードを見たところ、この修正も入っています。

1.54.6のリリースノートにCVEの番号は無く、「バックエンドのアクションの扱いの改善」と書かれています。

古い系列の修正のリリースには注意が要ります。次の版に入るbackend-defaultsは、どれも告知の対象の範囲に入ります。

  • 1.51.3(8月29日): 0.17.2
  • 1.50.7(9月25日): 0.17.0
  • 1.49.6(8月29日): 0.16.1

悪用について、告知に記載はありません。米国CISAのKEV(悪用が確認された脆弱性の一覧)には、10月16日版で載っていません。NVD(米国の脆弱性データベース)は、10月17日時点で分析の前です。

同じ0.17.8で直るほかの告知

Backstageの告知の一覧で、公開日が8月28日のものは、この件を含めて37件あります。そのうち、backend-defaultsの0.17.8が直した版に挙がっているのは、次の4件です。

告知 中身(告知の要約) CVSS
GHSA-cq7v-rfgc-5c7v(CVE-2026-106492) 制限を付けた外部の呼び出し用の資格情報が、プラグインどうしの呼び出しの経路を通すと、制限を越えられた 7.6(High)
GHSA-7649-wm97-w3j3(CVE-2026-106494) Backstageが使うクラウドのストレージに書き込める人が、名前を細工して、出力先の守るべきファイルと重ねられた 4.4(Medium)
GHSA-3xr5-8w6c-p5gw(CVE-2026-106495) 設定で外したアクションを実行できた(この記事の件) 4.3(Medium)
GHSA-xvh9-35w9-42m4(CVE-2026-106493) AzureとAWSのストレージからカタログを読む機能が、決めた範囲の外を読めた(カタログの部品の更新も要る) 3.0(Low)

いちばん深刻なGHSA-cq7vは、accessRestrictionsを使う会社に関わります。accessRestrictionsは、外部の道具に渡す固定のトークンなどに付ける、使えるプラグインや権限の制限です。読み取りだけに制限したはずの資格情報で、書き込みもできたと告知は書いています。

MCPの文書の設定例も、AIのクライアントに渡す固定のトークンにaccessRestrictionsを付けています。GHSA-cq7vの告知は、上げるまでのつなぎに、バックエンドのAPIへの接続を信頼できる呼び出し元だけにすることなどを挙げています。0.16系では、0.16.1でも直っています。

認証の部品の別の脆弱性は、Backstageの認証部品に脆弱性、実験機能の設定と修正版を確認で扱いました。こちらは実験的な機能の設定が条件で、直す部品も別(@backstage/plugin-auth-backend)です。

影響する会社・しない会社

  • 影響する: Backstageを自社で動かし、backend-defaultsが0.17.8より前で、設定(backend.actionsのpluginSourcesかfilter)でアクションを外している会社
  • 影響する: とくに、MCP Actions BackendでAIのクライアントにアクションを渡し、危ない操作を設定で外している会社です
  • 影響しない: backend-defaultsを0.17.8以降にした会社(この件について)。Backstageのリリースでは1.54.6以降です
  • 影響しない: アクションを外す設定をしていない会社は、この件で新しく呼べる操作はありません(編集部の整理)。ただし、同じ版で直るほかの告知があるので、更新は要ります
  • 影響しない: Backstageを使っていない会社
  • 確認が要る: 1.49〜1.51系など、古い系列のリリースに留まっている会社。その系列の最新の修正のリリースでも、backend-defaultsが0.17.8より前のことがあります
  • 確認が要る: 開発会社や委託先がBackstageを運用している会社。版と設定は、運用している側に聞きます

情シスが今日やること

  1. Backstageを使っているか、誰が運用しているかを確かめます。 開発部門や委託先に聞きます。社外から開けるかどうかも確かめます。
  2. @backstage/backend-defaultsの版を確かめます。 運用の担当者に、依存関係の一覧(yarn.lockなど)にある版を聞きます。0.17.8より前なら対象です。Backstage全体のリリースの版だけで判断しないでください。
  3. 設定を書き出します。 app-configのbackend.actions(pluginSources・filter)、mcpActions、backend.auth.externalAccessのaccessRestrictionsを開きます。何を外し、何を制限しているかを一覧にします。
  4. 上げるまでの守りを入れます。 告知の回避策は、アクションの実行の窓口への接続を、信頼できるサービスからの呼び出しだけに絞ることです。中継のサーバー(リバースプロキシ)で絞る場合は、MCPなどの正規の呼び出しが止まらないかを、検証用の環境で確かめます(編集部の補足)。
  5. 1.54.6以降へ上げる日を決めます。 担当者と期限を決め、開発部門に知らせます。上げた後も、危ないアクションは設定の絞り込みだけに頼らず、権限(visibilityPermission)でも守ります(編集部の補足)。

よくある質問

Qアクションを外す設定をしていません。対象ですか?

A告知の中身は、設定で外したアクションを実行できたというものです。backend.actionsのpluginSourcesやfilterを書いていなければ、外したアクションが無いため、この件で新しく呼べる操作はありません(編集部の整理)。ただし、同じ0.17.8で直る告知がほかに3件あるので、更新はします。

Q悪用は確認されていますか?

ABackstageの告知に、悪用についての記載はありません。米国CISAのKEVには10月16日版で載っておらず、CISAの評価(SSVC)も悪用は「none(なし)」です。

Qすぐに上げられない場合はどうしますか?

A告知は、アクションの実行の窓口への接続を、信頼できるサービスからの呼び出しだけに絞ることを回避策に挙げています。窓口は、各プラグインのAPIの下にある、パスに/.backstage/actions/を含むものです(修正のコード)。

出典・参考

チェック済み。この記事は監修者によってチェックされました。(2026年10月17日)

執筆

情シスのミカタ編集部AIにより執筆

書いた AI: AI記者(解説)

法令・官公庁の発表・企業の公式発表などの一次情報を調べて、情シス向けの解説・比較・テンプレの記事を書きます。数字と日付は出典と照らして確かめ、記事の最後に出典を載せています。使っているAI: Anthropic Claude。

監修

佐々木 航株式会社Game

代表取締役。工学部出身で、21歳で起業してからシステム会社の経営一筋で8期目。アプリの受託開発から始め、いまはAIを使ったシステムソリューションを手がけています。150社以上の企業とのプロジェクトで培った開発と情報システムの現場の経験と声を形にし、激動の時代を乗り越えたいと考えています。

メモ: 掲載時に自動で(しばらくの間)

記事は AI が一次情報を調べて書き、機械の検査を通してから公開しています。人が見ているもの・見ていないものはAI の使い方に書いています。まちがいに気づいたら訂正・ご指摘からお知らせください。直したら、記事の最後に何を直したかを書きます。

役に立ったら、いいねと共有をお願いします