Patch immediately: CVE-2025-25257 PoC enables remote code execution on Fortinet FortiWeb
2025/07/13 SecurityAffairs — Fortinet FortiWeb に存在する、深刻な認証前のリモート・コード実行 (RCE) の脆弱性 CVE-2025-25257 (CVSS 9.8) に対して、PoC エクスプロイトが公開されている。この脆弱性は、FortiWeb における SQL インジェクションの欠陥 (CWE-89) に起因し、改竄された HTTP/HTTPS リクエストを送信する未認証の攻撃者に対して、不正な SQL コマンドの実行を許すものである。

Fortinet のアドバイザリでは、「FortiWeb の SQL コマンドで使用される、特殊要素の不適切な無効化 (SQL インジェクション) により、細工された HTTP/HTTPS リクエストを送信する、未認証の攻撃者に対して、不正な SQL コード/コマンドの実行を許し可能性が生じている」と説明されている。
すでに Fortinet は、問題のあるバージョン 7.6.4/7.4.8/7.2.11/7.0.11 に対して、この脆弱性を修正したパッチをリリースしている。
なお、この脆弱性は、GMO Cybersecurity の Kentaro Kawane により責任を持って報告されたものだ。
WatchTowr の研究者たちは、Fortinet の httpsd サービスにおけるバージョン 7.6.3 と 7.6.4 をバイナリ比較し、新バージョンで導入された修正内容を特定した。それにより、修正の存在と内容が明らかになった。
未認証の SQL インジェクションから、リモート・コード実行へとエスカレーションさせる手法を、研究者たちは調査した。そこで、彼らが着目したのは、MySQL の INTO OUTFILE ステートメントを用いることで、サーバのファイル・システム上に、任意のファイルを書き込む方法である。
通常において、この操作は mysql ユーザーの限定された権限で実行されるが、今回のケースでは、ミスコンフィグにより root 権限での書き込みが可能となっていた。それにより、きわめて深刻なエクスプロイトが成立する状況となっていた。
最初に研究者たちが試行したのは、CGI が有効なディレクトリ上に Web シェルを配置するかたちでの実行だったが、ファイルが実行不可となり、失敗したという。その後に研究者たちは、FortiWeb 上の CGI ディレクトリ内に存在する、既存の Python スクリプト ml-draw.py を介して、Apache 経由での “/bin/python” 実行を試行し、それを成功させた。
この方式を横展開する研究者たちは、一般には利用されていない Python の “.pth” ファイルの機構を用いた攻撃へと移行した。この “.pth” ファイルは site-packages ディレクトリに配置され、import os などの行を取り込んでいるため、Python 実行時に任意のコードを実行できる。
INTO OUTFILE を用いた手法には、ファイル・サイズ制限やパス制約といった技術的課題があったが、相対パスを利用することで、また、データベースからペイロードをチャンク単位で抽出することで、研究者たちは制約を回避していった。
最終的に、”.pth” ファイルを CGI ディレクトリ内に配置した研究者たちは、既存の CGI スクリプトをトリガーすることで、意図した Python コードの実行に成功している。
その一方で WatchTowr は、脆弱性 CVE-2025-25257 の検出アーティファクト・ジェネレーターを開発しており、それを公開している。
現時点において、この脆弱性に対する実環境での悪用は確認されていないが、この PoC の存在により、今後の攻撃が懸念されるようになった。すべてのユーザーに対して強く推奨されるのは、セキュリティ・パッチを速やかに適用することだ。
Fortinet の FortiWeb の深刻な脆弱性 CVE-2025-25257 に対して、PoC が提供されました。未認証の攻撃者が、改竄リクエストを送ることで、SQLインジェクションを介した、任意のコード実行にいたると、この記事は指摘しています。ご利用のチームは、十分に ご注意ください。よろしければ、CVE-2025-25257 で検索も、ご参照ください。
You must be logged in to post a comment.