本文へ移動
English version →
重大 9.3 急ぎ度: 早めに

Goobi viewerにXSSの欠陥、26.05で修正済み

デジタル化資料を公開するGoobi viewerの25.08以降26.05未満に、IIIF Auth 2.0の認証画面経由で利用者のブラウザ上に悪意あるスクリプトを実行させられる欠陥が見つかりました。公開の図書館・文書館・博物館などが影響を受けます。修正版の26.05が出ているため、該当する版を使っている場合は更新してください。

CVE-2026-55486 公開 生成 AI で作成
画像は生成 AI で作成したイメージです

急ぎ度: 早めに

CVSS 9.3の深刻な欠陥で修正版も出ていますが、実際の攻撃での悪用は確認されておらず、リンクを開く利用者の操作が前提です。

関係があるか

Goobi viewerのバージョン25.08以降26.05未満を運用し、IIIF Auth 2.0の認証機能を有効にしている組織が対象です。特に、外部の利用者が閲覧する公開サイトを運営している場合は影響を受けやすくなります。

製品影響を受ける版直った版
Goobi viewer(goobi-viewer-core) 25.08以降、26.05未満 26.05

確かめ方

  1. 1運用中のGoobi viewerのバージョンを、管理画面やデプロイ時の記録で確認し、25.08以上26.05未満かどうかを調べてください。
  2. 2IIIF Auth 2.0の認証機能(auth/login、auth/token)を使っているか、公開サイトに接続されているかを確認してください。この機能の有効・無効の条件はベンダーの告知で確認してください。
  3. 3リバースプロキシやWAFのアクセスログに、auth/loginやauth/tokenへのoriginパラメータ付きのリクエストが不審な値で届いていないかを確認してください。

何が起きたか

Goobi viewerは、デジタル化した書籍や古文書などをWebブラウザで閲覧できるようにするWebアプリケーションです。今回の欠陥は、外部の閲覧ツールなどと連携するための認証の仕組み(IIIF Auth 2.0)にあります。利用者のブラウザに返す画面に、リンクで渡された値がそのまま埋め込まれるため、細工されたリンクを開いた人のブラウザで、攻撃者が用意したスクリプトが動いてしまうおそれがあります。

技術的には、auth/loginとauth/tokenの2つのエンドポイントがoriginというクエリパラメータを検証せずに受け取ります。この値は、レスポンスヘッダーContent-Security-Policyのframe-ancestorsに入れられるほか、HTMLの本文中でJavaScriptのpostMessageの引数(シングルクォートで囲まれた文字列)としても使われます。値がエスケープされないため、ヘッダーの形が崩れる問題と、反射型のクロスサイトスクリプティング(XSS)の両方が起きます。

認証の流れを開始するloginとtokenの呼び出しは、どちらも攻撃者が制御できます。そのため、細工した値を入れたリンクを用意するだけで成立する点が、この欠陥の特徴です。分類はCWE-79(XSS)、CWE-113(HTTPヘッダーへの不適切な値の埋め込み)、CWE-1336です。

攻撃の流れ

  1. 1

    細工リンク作成

    攻撃者が、originに不正な値を入れた認証用のURLを用意します。

  2. 2

    利用者が開く

    閲覧者がメールやWebページ経由で、そのリンクを開きます。

  3. 3

    値がそのまま反映

    サーバーがoriginを検証せず、ヘッダーとHTML本文に埋め込んで返します。

  4. 4

    スクリプト実行

    閲覧者のブラウザで、Goobi viewerのサイトの権限で攻撃者のスクリプトが動きます。

公開されている情報をもとにした流れの例です。

どう悪用されるか

ネットワーク経由で実行でき、攻撃にログインは不要です。ただし、細工されたリンクを利用者が開く必要があります(CVSSの評価では、利用者の操作が必要で、複雑な条件は不要とされています)。

悪用されると、被害者のブラウザ上でGoobi viewerのサイトと同じ権限でスクリプトが動きます。そのため、画面の内容や、ブラウザから読み取れる情報の窃取、利用者に代わった操作、画面の改ざんなどのおそれがあります。管理者権限を持つ利用者が被害に遭った場合は、影響がより大きくなる可能性があります。CVSSでは、機密性と完全性への影響が高く、影響範囲が他の領域に及ぶと評価されています。可用性への影響は想定されていません。

KEV(実際の攻撃での悪用が確認された脆弱性の一覧)への掲載や、EPSS(悪用される見込みの指標)の値は、現時点で公表されていません。実際の被害の報告も確認されていません。

今すぐやること

  1. 1

    利用中の版を確認する

    Goobi viewerが25.08以上26.05未満かどうかを確認します。該当する場合は、次の更新作業を計画してください。

  2. 2

    26.05に更新する

    修正版の26.05に更新します。更新手順や注意点は、GitHubのリリースページとベンダーの告知で確認してください。公開サイトは優先して対応してください。

  3. 3

    回避策を検討する

    すぐに更新できない場合は、下の回避策を一時的に適用してください。

  4. 4

    ログを点検する

    リバースプロキシやWebサーバーのログで、auth/loginとauth/tokenへの不審なorigin値を含むリクエストがないか、公開日以前も含めて確認します。

  5. 5

    利用者への周知を準備する

    不審なリンクを開かないよう、必要に応じて館内・学内の利用者に案内します。

すぐ更新できないとき

ベンダーは回避策を公表していません。更新までの間は、WAFやリバースプロキシでauth/loginとauth/tokenへのoriginパラメータの値を、想定する正規のオリジンだけに制限する方法が考えられます。IIIF Auth 2.0を使っていなければ、これらのエンドポイントへの外部からのアクセスを止めることも選択肢になります。ただし、これらは一般的な緩和策であり、ベンダーが確認したものではありません。実施前に動作への影響を検証してください。

背景

Goobi viewerは、図書館・文書館・博物館などが、デジタル化した資料を一般に公開するために使うソフトウェアです。IIIF(画像などを相互に利用するための国際的な枠組み)に対応しており、その認証仕様であるIIIF Auth 2.0は、閲覧が制限された資料へのアクセスを制御するために使われます。公開サイトであるため、不特定多数の利用者が接続する環境に置かれやすい製品です。

画面に出力する値のエスケープ漏れによるXSSは、Webアプリケーションで長く繰り返し問題になってきた種類の弱点です。今回のように、外部から渡された値がHTTPヘッダーとHTML本文の両方に入る場合、片方の対策だけでは不十分になることがあります。入力の検証と、出力先に応じたエスケープの両方が求められます。

よくある質問

Q.実際に攻撃は起きていますか。
A.実際の攻撃での悪用は、現時点で確認されたという公表はありません。KEVにも載っていません。ただし、更新後に悪用が確認される可能性はあるため、ベンダーの告知を確認してください。
Q.ログインしていない利用者も被害に遭いますか。
A.攻撃者側に認証は不要で、細工されたリンクを開いた利用者が対象になります。ログインの有無による被害の違いは、公表されていません。
Q.CVSS 9.3は、どれだけ急ぐべき数値ですか。
A.高い数値ですが、利用者がリンクを開く操作が前提です。公開サイトなら早めの更新が適切です。限られた内部環境だけで使っている場合も、計画的に26.05へ更新してください。

まだ分かっていないこと

  • 実際の攻撃での悪用の有無や、悪用の規模は公表されていません。
  • IIIF Auth 2.0の機能が、標準設定で有効かどうかは明らかになっていません。ベンダーの告知で確認してください。
  • EPSS(悪用される見込み)の値は、現時点で確認できません。

この記事は、取得元の公開情報をもとに生成 AI で作成しています。誤りを含むことがあります。対応を決める前に、下の原文と参照先を確認してください。

影響パッケージ

種類パッケージ影響を受ける版直った版
intranda goobi-viewer-core — —
原文の説明 取得元が公開している説明をそのまま載せています (多くは英語)。

The Goobi viewer is a web application that allows digitised material to be displayed in a web browser. From version 25.08 to before version 26.05, the IIIF Auth 2.0 endpoints auth/login and auth/token in AuthorizationFlowResource accept an origin query parameter without validation and then (1) embed it into the Content-Security-Policy: frame-ancestors response header and (2) embed it into an HTML response body as a JavaScript single-quoted postMessage argument. Because the attacker controls both the login and token calls that initiate the flow, the unescaped value yields reflected XSS. This issue has been patched in version 26.05.

出典: CVE.org (CVE Program・cvelistV5) NVD GitHub Advisory

参照URL

当サイトでは、アクセス解析と広告の効果測定のために Cookie を使います。株式会社Game のサイト共通の設定です。 詳しく