YiShaAdmin 認証不要でファイル読取・削除、悪用観測あり
管理基盤 YiShaAdmin の 2.2 から 3.1 に、ログインなしで任意のファイルを読み出し、削除できる弱点があります。Shadowserver Foundation が 2023-10-20 に悪用の形跡を初めて観測しており、インターネットから到達できる環境は特に注意が必要です。修正コミット 025b062 を取り込んだ版へ更新し、更新できない間は該当の URL を遮断してください。
急ぎ度: 至急
ログイン不要でネットワーク越しに悪用でき、実際の悪用の形跡が観測されており、ファイルの削除でサービス停止にもつながるためです。
関係があるか
YiShaAdmin 2.2 から 3.1 を自社で運用している、または業務システムの部品として組み込んでいる組織が対象です。特にインターネットや広い社内ネットワークから管理画面の URL に到達できる環境は、影響を受けやすくなります。
| 製品 | 影響を受ける版 | 直った版 |
|---|---|---|
| YiShaAdmin | 2.2 以上 3.1 以下 | 修正コミット 025b062 以降(修正版の版番号は公表されていません) |
確かめ方
- 1自社の資産台帳や、ソースの管理リポジトリ、ビルド成果物を調べ、YiShaAdmin を使っているシステムを洗い出します。受託開発や外部ベンダーが納めたシステムも含めて確認してください。
- 2使っている YiShaAdmin が 2.2 から 3.1 の範囲か確認します。ソースから取り込んでいる場合は、修正コミット 025b062 が履歴に含まれているかも確認します。
- 3Web サーバーやリバースプロキシのアクセスログに
/admin/File/DownloadFileへのリクエストがないか調べます。身に覚えのない送信元からのアクセスや、filePathやdeleteを含む要求があれば、悪用の疑いがあります。 - 4そのパスにインターネットや想定外のネットワークから到達できるか、外部から接続できる環境で確認します。
何が起きたか
YiShaAdmin の 2.2 から 3.1 に、ログインしていない第三者がサーバー上のファイルを読み出したり、削除したりできる弱点が見つかりました。管理画面の中にあるファイルのダウンロード用の入口が、要求されたファイルの場所を十分に確認せず、本来公開するつもりのない場所のファイルまで扱ってしまうことが原因です。例えるなら、貸出カウンターで頼まれた資料をそのまま取りに行き、立入禁止の書庫の資料まで渡してしまう状態です。
問題の入口は /admin/File/DownloadFile で、ファイルの場所を指定する filePath というパラメーターが、ディレクトリをさかのぼる指定(パストラバーサル、CWE-22)を適切に制限していません。さらに delete というパラメーターを併用すると、読み出すだけでなく対象ファイルの削除もできると説明されています。通常の GET リクエストで行え、認証は不要です。
CVSS v3.1 は 9.1(Critical)、CVSS v4.0 は 8.8 です。Shadowserver Foundation が 2023-10-20 に悪用の形跡を初めて観測したと報告されています。修正は、コミット 025b062 で取り込まれています。
攻撃の流れ
-
1
公開先を発見
インターネットなどから到達できる YiShaAdmin のファイルダウンロード用の入口を見つけます。
-
2
不正な指定を送信
ログインなしで、保存場所の外をさかのぼる指定を含む GET リクエストを送ります。
-
3
ファイルを読み出す
入口が指定を検査しないため、サーバー上の重要なファイルが応答として返ります。
-
4
ファイルを削除
削除を指示するパラメーターを併用すると、対象のファイルが消されます。
-
5
情報流出・停止
読み出された情報の悪用や、必要なファイルの消失によるサービス停止につながります。
どう悪用されるか
悪用に必要なのは、対象のサーバーへのネットワーク経由の到達だけです。ログインも利用者の操作も要らず、複雑な条件もありません。CVSS のベクトルでも、認証不要(PR:N)・利用者の操作不要(UI:N)・攻撃の難易度が低い(AC:L)とされています。
悪用されると、設定ファイルや認証情報、システムの情報などが読み出されるおそれがあります。読み出された情報をきっかけに、別の攻撃へ進まれる可能性もあります。また、ファイルを削除されると、アプリケーションが動かなくなるなど業務に影響が出ます。評価上は、機密性と可用性への影響が大きく、改ざん(完全性)への影響はないとされています。実際にどの程度のファイルが対象になるかは、アプリケーションを動かしているアカウントの権限に左右されます。
今すぐやること
-
1
利用状況を洗い出す
YiShaAdmin を使っているシステムを、外部ベンダーが運用するものも含めて特定し、版が 2.2 から 3.1 の範囲か確認します。
-
2
修正を取り込んで更新する
修正コミット 025b062 以降を取り込んだ版へ更新します。ソースから取り込んでいる場合は、そのコミットが履歴に含まれているか確認し、再ビルドして配備し直します。
git merge-base --is-ancestor 025b062 HEAD && echo 修正コミットを含んでいます || echo 修正コミットを含んでいません -
3
アクセスログを調べる
/admin/File/DownloadFileへのアクセスを確認します。公開前から現在までの期間を対象にし、心当たりのない送信元やfilePath・deleteを含む要求がないか見ます。grep "/admin/File/DownloadFile" /var/log/nginx/access.log -
4
外部からの到達を制限する
更新が済むまでの間、管理画面や該当のパスを、インターネットから届かないようにします。VPN や接続元 IP の制限が使えます。
-
5
悪用の疑いがあれば調査する
不審なアクセスが見つかった場合は、重要ファイルが消えていないか確認します。サーバーに保存されていた認証情報やキーが読み出された可能性も考え、変更を検討します。
すぐ更新できないとき
すぐに更新できない場合は、リバースプロキシや WAF で /admin/File/DownloadFile への外部からのアクセスを遮断してください。あわせて、管理画面への接続を VPN や接続元 IP で限定します。アプリケーションを動かすアカウントの権限を最小限にし、読み書きできるフォルダーを絞っておくと、万一の被害も抑えられます。これらは根本的な修正ではないため、修正の取り込みまでの一時的な措置としてください。
背景
管理画面やファイル操作の機能を備えた基盤は、社内の業務データや設定を扱うため、外部に公開されたときの影響が大きくなりやすい部品です。ファイルの場所を利用者の入力から決める機能で、指定の検査が不十分なものは、パストラバーサルという形で以前から繰り返し問題になってきました。
この種の弱点は仕組みが単純で、悪用の手間も小さいため、公開後に自動の探索で見つけられやすい傾向があります。認証が不要な場合は特にそうです。今回の弱点でも、脆弱性スキャナー用のテンプレートが公開されています。自社で使っていないか早めに確認することが大切です。
よくある質問
Q.インターネットに公開していない社内システムなら、対応しなくてよいですか。
Q.修正版は何という版番号ですか。
Q.すでに悪用されたかどうかは、どう確認しますか。
/admin/File/DownloadFile へのアクセスログを調べます。通常の業務で使っていない送信元からの要求や、ファイルの場所を指定する値に不自然な内容がある要求は、疑わしいと考えてください。ログが残っていない場合は、重要ファイルの有無や設定の変更も合わせて確認します。まだ分かっていないこと
- 修正版の版番号は公表されていません。修正はコミット 025b062 で示されています。
- 実際の悪用による被害の規模や、狙われた組織については公表されていません。
- 修正の詳細は、プロジェクトのリポジトリや、VulnCheck、NVD の告知で確認してください。
この記事は、取得元の公開情報をもとに生成 AI で作成しています。誤りを含むことがあります。対応を決める前に、下の原文と参照先を確認してください。
影響パッケージ
| 種類 | パッケージ | 影響を受ける版 | 直った版 |
|---|---|---|---|
| liukuo362573 | YiShaAdmin |
2.2 〜 3.1 |
— |
原文の説明 取得元が公開している説明をそのまま載せています (多くは英語)。
YiShaAdmin 2.2 through 3.1, fixed in commit 025b062, contains an unauthenticated path traversal vulnerability in the /admin/File/DownloadFile endpoint that allows attackers to read and delete arbitrary files via the filePath parameter. Attackers can send crafted GET requests with directory traversal sequences in filePath and set the delete parameter to read or remove system files like etc/passwd. Exploitation evidence was first observed by the Shadowserver Foundation on 2023-10-20.
出典: CVE.org (CVE Program・cvelistV5) NVD GitHub Advisory