Critical FastCGI Library Flaw Exposes Embedded Devices to Code Execution
2025/04/28 gbhackers — ライトウェイトな Web サーバ通信のコア・コンポーネントである、FastCGI ライブラリに発見された深刻な脆弱性 CVE-2025-23016 により、多数の組み込みデバイスや IoT デバイスにリモート・コード実行の脅威が生じている。
NGINX や lighttpd などの Web サーバを、バックエンド・アプリケーションに接続するために、FastCGI は広く利用されている。それらのアプリケーションとして挙げられるのは、ネットワーク・カメラ/ルーター/各種スマートデバイスなどの、リソースが限られたデバイスに関連するものである。

脆弱性の概要
FastCGI のパラメータ解析コードにおける、ReadParams 関数に重大な欠陥があることを、セキュリティ研究者である Baptiste Mayaud が発見した。
通常において、FastCGI プロトコルは、構造化されたヘッダーとパラメータを介して、サーバとアプリケーションの間でリクエスト情報を交換するそれらのパラメータには、鍵と値のペアが含まれており、その大きさに応じて 1 Byte〜4 Byte で処理される。
脆弱なコード:
nameValue = (char *)Malloc(nameLen + valueLen + 2);
上記の、”nameLen” と “valueLen” に対して、きわめて大きな値が設定されると、オーバーフローが発生する。
32-Bite プラットフォームにおいて、(nameLen + valueLen + 2) が処理されると整数ラップアラウンドが発生し、malloc に極端に小さな値が挿入され、後続の書き込みに対してバッファが小さすぎる状態になる。それにより、任意のコード実行のための、典型的なヒープバッファ・オーバーフロー・ベクターが生成される。
最新のサーバの多くは 64-bit モードで動作するため、このオーバーフローの影響を受けることはないが、組み込みデバイスや IoT エンドポイントの多くは、コストと電力の制約から、依然として 32-bit システムに依存している。
この現実により、脆弱性 CVE-2025-23016 は、実際の影響を劇的に増大させる。研究者は、例示的なエクスプロイトにおいて、以下の方法を実行できることを、研究者と実証している:
- 整数オーバーフローを悪用して、FastCGI のパラメータ解析でヒープ・オーバーフローを作成する。
- FastCGI の内部ストリーム構造体 (FCGX_Stream) 内の関数ポインタを、特に fillBuffProc ポインタを上書きする。
- このポインタを、制御された引数を持つ system() などのコマンド実行関数にリダイレクトすることで、任意のコード実行が可能になる。
エクスプロイト・コードの例
以下は、脆弱な FastCGI サーバを介してコード実行を実現するための、簡略化された攻撃シーケンスである。
io.send(makeHeader(1, 1, 8, 0) + makeBeginReqBody(1, 0) + header +
(p8(0x13) + p8(0x13) + b"b" * 0x26) * 9 +
p8(0) * (2 * 2) + p32(0xffffffff) + p32(0xffffffff) +
b"a" * (4 * 4) + b" /bi;nc -lve /bin/sh" + p32(0) * 3 + p32(exe.plt["system"]))
このコードは、オーバーフローを悪用して関数ポインタを上書きし、リバースシェルを起動するものだ。
| CVE | Affected Versions | Vulnerability Type | Impact | Fixed In |
| CVE-2025-23016 | < 2.4.5 (32-bit only) | Integer/heap overflow | Remote Code Execution | 2.4.5 |
ユーザーに対して強く推奨されるのは、以下の手順である:
- 速やかな更新:FastCGI ライブラリ 2.4.5 以降には、このバグに対する修正が取り込まれている。すべてのユーザーは、特に組み込みシステムに FastCGI を導入しているユーザーは、速やかな更新が必要となる。
. - ネットワークへの露出の制限:FastCGI 通信を、TCP ではなく UNIX ソケットを使用するように設定することで、ローカル・プロセスへのアクセスを制限し、リモート攻撃対象領域を縮小する。
. - コンフィグの確認:FastCGI ポートを、ネットワークにダイレクトに露出させないようにする。特に、安全が確保されないコンフィグや、コピー&ペーストしたコンフィグの使用は避けてほしい。
Web 接続デバイスを支える OSS インフラにおいて、脆弱性 CVE-2025-23016 の微細なメモリ管理バグは、継続的なリスクを生み出すことになるだろう。
多種多様な組み込みデバイスや IoT デバイスには、タイムリーにパッチを適用するメカニズムは存在しない。したがって、デバイス・メーカーとインテグレーターは、ソフトウェア・スタックの更新を優先し、セキュリティのベスト・プラクティスが確実に遵守される方式でデプロイする必要がある。
この脆弱性 CVE-2025-23016 を NVD で調べてみたところ、 CVSS 値 9.3 (MITRE 評価)とされていました。すでに PoC エクスプロイトが公開されており、悪用の可能性も高まります。開発者の方々は、十分にご注意ください。よろしければ、Library で検索も、ご参照ください。
You must be logged in to post a comment.