Docatに任意ファイルのアップロード脆弱性、1.6.0は一部修正
静的ドキュメント公開ツールDocatのUpload APIに、保存先とファイル種類を検証しない脆弱性があります。社内でDocatを動かしている組織は、1.6.0に更新したうえで、アップロード権限と配信側の設定も見直してください。1.6.0はファイル名を使った保存先の操作だけを緩和する修正で、それだけでは足りません。
急ぎ度: 早めに
CVSS v3は9.1で重要度はcriticalですが、低い権限が必要とされており、実際の悪用が確認されたという情報はなく、1.6.0も一部の修正にとどまるため、更新と設定の見直しを早めに進める段階と考えます。
関係があるか
Docatを自社のサーバーやコンテナーで動かし、Upload APIに社内ネットワークやインターネットから到達できる組織が対象です。開発チームが個別に立てた文書サイトも含まれます。
| 製品 | 影響を受ける版 | 修正版 |
|---|---|---|
| Docat(docat-org/docat) | 1.6.0より前の版とみられます。正確な範囲はアドバイザリで確認してください。 | 1.6.0(ファイル名を使った保存先の操作のみ緩和。ファイル種類の制限は修正が確認されていません) |
確かめ方
- 1社内のコンテナーやサーバーに、Docatが動いているものがないか洗い出します。情シスが把握していない開発チームの環境も対象です。
- 2動いているDocatの版を、イメージのタグや導入時の記録から確認します。Dockerなら、実行中のイメージ名とタグを一覧できます。
- 3Upload APIに、どのネットワークから、どの認証情報で到達できるかを確認します。
- 4ドキュメントの保存先ディレクトリに、見覚えのないファイルや、最近更新された設定ファイルがないかを調べます。
何が起きたか
Docatのファイルアップロード機能が、受け取ったファイルの保存先と種類を確認しないまま処理してしまう脆弱性です。悪用されると、Webサーバー上の重要な設定ファイルが上書きされたり、不正なファイルが置かれたりします。
問題があるのはUpload APIです。分類はCWE-434(危険な種類のファイルの無制限アップロード)で、CVSS v3は9.1、重要度はcriticalです。設置されたファイルの内容と、サーバーの構成によっては、リモートコード実行や、Cookieの窃取や不正サイトへの誘導を狙うクロスサイトスクリプティングにつながります。
ベンダーの修正は1.6.0で入りました。ただし、この版が緩和するのはファイル名を使った保存先の操作(パストラバーサル)だけです。ファイル種類の無制限な受け入れと、置かれた内容に応じた影響は、確認された修正では解消されていません。
攻撃の流れ
-
1
APIへ到達
DocatのUpload APIにネットワーク経由でアクセスします。
-
2
ファイル送信
保存先や種類を確認されないまま、細工されたファイルが受け付けられます。
-
3
設定を上書き
設定ファイルが書き換えられるか、不正なファイルがWebサーバー上に置かれます。
-
4
二次被害
構成によってはコード実行や、閲覧者のCookie窃取、不正サイトへの誘導に発展します。
どう悪用されるか
CVSSのベクターでは、ネットワーク経由で攻撃でき、特別な条件は要らず、利用者の操作も不要とされています。一方で、低い権限が必要です。つまり、Upload APIを使える立場のアカウントや認証情報を手にした相手が、主な想定になります。
被害は、改ざんが最も大きいと評価されています。設定ファイルの上書きに加え、置かれたファイルが実行されたり配信されたりすると、サーバー上でのコード実行や、ドキュメントサイトを見た人のブラウザーへの攻撃に広がります。影響がDocat以外に及ぶ評価(スコープの変化)も付いています。機密性と可用性への影響は、低いとされています。
今すぐやること
-
1
Docatを1.6.0以降に更新する
まず稼働中のDocatの版を確認し、1.6.0より前なら修正版に更新します。今後の版でファイル種類の扱いが改善される可能性があるため、リリースノートも確認します。
docker ps --format '{{.Names}} {{.Image}}' -
2
Upload APIの利用者を絞る
アップロードに使う認証情報を持つ人とパイプラインを洗い出し、不要なものは無効にします。共有している認証情報は、更新後に入れ替えると安全です。
-
3
配信領域の改ざんを確認する
保存先ディレクトリと設定ファイルの更新日時を確認し、見覚えのないファイルがないか調べます。Webサーバーのアクセスログで、Upload APIへの不審な要求がないかも確認します。
-
4
アップロード領域でファイルを実行させない
Webサーバー側で、アップロードされたファイルをスクリプトとして実行しない設定にします。ファイル種類の制限が修正されていない以上、更新後もこの設定は残してください。
すぐ更新できないとき
すぐに更新できないときは、リバースプロキシやファイアウォールでUpload APIへのアクセスを、ドキュメントを登録する端末やCI環境だけに限定します。あわせて、アップロードされたファイルの保存先でスクリプトを実行しない設定にし、ドキュメントの配信ドメインを社内の他のシステムとは分けておくと、Cookie窃取型の被害を小さくできます。
背景
Docatは、バージョンごとに静的なドキュメントを公開するためのツールです。開発チームが自分たちの文書サイトとして立てることが多く、全社の資産管理に載らないまま動いていることもあります。
この脆弱性が分かりにくいのは、更新だけでは解消しきれない点です。保存先を操作する経路は1.6.0で緩和されましたが、どんな種類のファイルでも受け付ける点は、確認された修正の対象外です。だから、更新と同時に、置かれたファイルがどう扱われるかを配信側で抑える必要があります。
よくある質問
Q.Docatは社内だけで使っています。それでも対応は必要ですか。
Q.更新後に、ファイルが置かれていないかを調べるにはどうすればよいですか。
まだ分かっていないこと
- 影響する版の正確な範囲は、与えられた説明から読み取れません。ベンダーのアドバイザリ(GHSA-jcxj-j5qf-8crw)と1.6.0のリリースノートで確認してください。
- 実際の攻撃での悪用が確認されたかどうかは、公表されていません。
- ファイル種類の制限が、今後の版で修正されるかどうかは分かっていません。
この記事は、取得元の公開情報をもとに生成 AI で作成しています。誤りを含むことがあります。対応を決める前に、下の原文と参照先を確認してください。
原文の説明 取得元が公開している説明をそのまま載せています (多くは英語)。
Docat is a tool for hosting versioned static documentation. In the affected implementation, an arbitrary file upload vulnerability in the Upload API arises because the API does not validate the uploaded file path or type. An attacker can overwrite sensitive configuration files or place malicious files on the Docat web server. Depending on deployment context, uploaded content can enable remote code execution or cross-site scripting intended to steal cookies or redirect users to malicious websites. Version 1.6.0 mitigates filename-based path traversal; remediation of unrestricted file types or deployment-dependent malicious-content effects is not established by the verified patch.
出典: CVE.org (CVE Program・cvelistV5) NVD GitHub Advisory
参照URL
- advisory github.com
- advisory github.com
- advisory nvd.nist.gov
- patch github.com
- web github.com