FineReport 9.0に認証不要の任意ファイル書込み、悪用の兆候
帳票ツール FineReport 9.0 に、ログインなしで外部からサーバーへ任意のファイルを書き込める弱点があり、遠隔操作につながるおそれがあります。実際の悪用の兆候は 2023年10月14日 に Shadowserver Foundation が最初に観測したと報告されています。FineReport 9.0 を使っている組織は、インターネットから到達できるかを確認し、到達できる場合は遮断と侵害の有無の調査を優先してください。
急ぎ度: 至急
認証不要でネットワークから遠隔操作に至るおそれがあり、悪用の兆候の観測と、検査・攻撃用ツールの公開が確認されているためです。
関係があるか
FineReport 9.0 を自社サーバーやクラウド上で運用している組織が対象です。とくに Web 画面(/WebReport/ReportServer)がインターネットや広いネットワークから到達できる環境は危険度が高くなります。
| 製品 | 影響を受ける版 | 直った版 |
|---|---|---|
| FanRuan FineReport | 9.0 | 修正版の版番号は公表されていません。ベンダーの告知で確認してください。 |
確かめ方
- 1社内の資産台帳や運用担当者への聞き取りで、FineReport を使っているか、その版が 9.0 かを確認する。
- 2Web 画面のパス
/WebReport/ReportServerが、インターネットや他拠点など広い範囲から到達できるかを、ファイアウォール、リバースプロキシ、クラウドのセキュリティグループの設定で確認する。 - 3Web サーバーのアクセスログに、
/WebReport/ReportServerへの不審な POST や、design_save_svgを含むリクエストがないかを調べる。送信内容が本文にだけ含まれる場合はログに残らないため、見つからなくても安全とは言い切れない。 - 4Web アプリケーションの配置ディレクトリに、身に覚えのない JSP ファイルや最近作られたファイルがないかを確認する。
何が起きたか
FineReport 9.0 に、パストラバーサルと呼ばれる種類の弱点があります。本来は決められた保存先にしか書き込めないはずのところ、外部から送られた指定によって、サーバー上の想定外の場所にファイルを書き込めてしまいます。しかも、ログインしていない相手でも実行できます。
書き込めるファイルの種類に制限がないため、サーバー上で動く JSP の Web シェル(外部から命令を送り込める小さなプログラム)を置かれ、サーバーを遠隔操作されるおそれがあります。弱点があるのは /WebReport/ReportServer の design_save_svg という処理で、保存先を指定する値の検査が不十分なことが原因です。分類は CWE-22(パストラバーサル)です。
深刻度は CVSS v3.1 で 9.8(緊急)、CVSS v4.0 で 9.3 と評価されています。悪用の兆候は 2023年10月14日 に Shadowserver Foundation が最初に観測したと報告されています。また、この弱点を確かめるためのツールや検査テンプレートが公開されており、攻撃者にとっても試しやすい状況です。
攻撃の流れ
-
1
到達できるか探す
インターネットなどから FineReport の Web 画面に届くサーバーが見つけられます。
-
2
不正な書込み要求
ログインなしで、保存先を操作した要求が送られ、サーバー上の任意の場所にファイルが書き込まれます。
-
3
Web シェル設置
書き込まれた JSP ファイルが、外部から命令を受け付ける入口になります。
-
4
遠隔操作
サーバー上で任意の処理を実行され、データの閲覧や改ざん、他システムへの足がかり作りに使われるおそれがあります。
どう悪用されるか
悪用に必要な条件は多くありません。攻撃者はネットワーク経由で FineReport の Web 画面に到達できればよく、ログインや利用者の操作は不要です。CVSS でも、認証不要(PR:N)、利用者の操作不要(UI:N)、攻撃の難易度が低い(AC:L)と評価されています。
悪用に成功すると、サーバー上で任意のコードを実行されるおそれがあります。帳票ツールは業務データベースへの接続情報や集計済みの機密データを扱うことが多く、情報の漏えい、データの改ざん、サービス停止、社内の別システムへの侵入につながる可能性があります。なお、実際にどの組織でどのような被害が出たかは公表されていません。
今すぐやること
-
1
公開範囲を確認して絞る
FineReport 9.0 の Web 画面がインターネットから直接到達できる場合は、ファイアウォールやリバースプロキシで、VPN 経由や特定の拠点など必要な接続元だけに制限します。業務上不要なら、いったん停止することも検討してください。
-
2
修正版・対策情報を確認する
ベンダー(FanRuan)の告知やサポート窓口で、この弱点に対する修正版やパッチの有無を確認します。現時点で修正された版は公表されていないため、公式の情報を待たずに公開範囲の制限を先に進めてください。
-
3
侵害の痕跡を調べる
アクセスログで
/WebReport/ReportServerへの不審な POST を確認し、Web アプリケーションの配置先に、身に覚えのない JSP ファイルがないかを調べます。ディレクトリ名は環境に合わせて置き換えてください。find <FineReportの配置ディレクトリ> -name "*.jsp" -mtime -30 -
4
痕跡が見つかった場合の対応
不審なファイルがあれば削除する前にコピーを保全し、サーバーを隔離します。FineReport が保持するデータベース接続情報やパスワードは、漏えいした前提で変更してください。サーバーの再構築も検討します。
-
5
実行権限を見直す
FineReport を動かすアカウントの権限を最小限にし、不要なディレクトリへの書込み権限や、データベースへの過大な権限がないかを点検します。万一侵入されても被害を小さくできます。
すぐ更新できないとき
修正版を当てられない場合は、Web 画面への接続元をネットワーク側で制限するのが最も確実な回避策です。そのうえで、WAF やリバースプロキシで /WebReport/ReportServer への design_save_svg 操作を含む要求を遮断することも考えられますが、送信内容の検査に対応した製品が必要で、完全な対策にはなりません。使っていない FineReport のサーバーは停止してください。
背景
FineReport は、データベースの内容から帳票やダッシュボードを作って Web で配布する帳票・データ可視化ツールです。社内の業務データベースに接続して集計結果を見せるため、侵入されると、見えている画面以上に重要なデータへ手が届く可能性があります。
パストラバーサルは、ファイルの保存先や読み出し先を示す値の検査が甘いために、想定外の場所に触れられてしまう古くからある種類の弱点です。ファイルの書込みに悪用できる場合は、Web シェルを置かれて遠隔操作に発展しやすく、業務用の Web アプリケーションでたびたび問題になってきました。
よくある質問
Q.社内だけで使っている FineReport でも対応は必要ですか。
Q.ログインが必要な画面なので安全ではないのですか。
Q.すでに攻撃を受けたかどうか、どう判断すればよいですか。
まだ分かっていないこと
- この弱点が修正された版の番号や、ベンダーが出した修正の内容は公表されていません。
- FineReport 9.0 以外の版が影響を受けるかどうかは、現時点で明らかになっていません。
- 悪用された組織の数や、実際に出た被害の内容は公表されていません。
この記事は、取得元の公開情報をもとに生成 AI で作成しています。誤りを含むことがあります。対応を決める前に、下の原文と参照先を確認してください。
影響パッケージ
| 種類 | パッケージ | 影響を受ける版 | 直った版 |
|---|---|---|---|
| FanRuan | FineReport | — | — |
原文の説明 取得元が公開している説明をそのまま載せています (多くは英語)。
FineReport 9.0 contains a path traversal vulnerability in the /WebReport/ReportServer design_save_svg operation that allows unauthenticated attackers to write arbitrary files via the filePath parameter. Attackers can send a POST request with directory traversal sequences in filePath and a CONTENT payload to write a JSP webshell and achieve remote code execution. Exploitation evidence was first observed by the Shadowserver Foundation on 2023-10-14.
出典: CVE.org (CVE Program・cvelistV5) NVD GitHub Advisory