
2025年5月、PHP向けの著名なデータベース抽象化ライブラリADOdbにおいて、PostgreSQLドライバのpg_insert_id()
メソッドに深刻なSQLインジェクションの脆弱性が発見されました。この脆弱性はCVE-2025-46337として追跡されており、CVSSスコアは最高の10.0が付与されています。
ADOdbは全世界で280万件以上のインストール実績があり、Webアプリケーションや業務システムで広く使用されているため、影響範囲は極めて広範です。
影響を受けるバージョンと対象ドライバ
この脆弱性(CVE-2025-46337)は、ADOdbライブラリの古いバージョンに存在し、特にPostgreSQL(ポストグレス)用のドライバを使用している場合に影響を及ぼします。
影響を受けるバージョン
-
ADOdb バージョン 5.22.8 以下
対象となるPostgreSQLドライバ
-
postgres64
ドライバ -
postgres7
ドライバ -
postgres8
ドライバ -
postgres9
ドライバ
これらはいずれも、PostgreSQLデータベースに接続するためにADOdbが用意している接続モードの違いを表すドライバです。
特にレガシーなアプリケーションやPHPベースのCMS・業務システムで利用されているケースが多く、バージョン確認が必須です。
脆弱性の対策バージョン
ADOdbバージョン5.22.9以降
脆弱性 CVE-2025-46337 の概要
この脆弱性は、ADOdbがPostgreSQLに接続する際に、ユーザー入力をpg_insert_id()
メソッドの$fieldname
パラメータとして受け取った場合に発生します。
不適切なエスケープ処理により、悪意のある入力がSQL文に埋め込まれることで、以下のようなリスクが発生します:
-
任意のSQL文の実行
-
データの読み取り・改ざん・削除
-
データベース権限次第では、リモートコード実行の可能性も
特に、pg_insert_id()
にHTTPリクエストやフォーム入力などのユーザー入力を直接渡している場合には、重大な影響を受ける可能性があります。
本脆弱性は、サーバー側で意識せずにユーザー入力を受け入れているシナリオで簡単に悪用可能なため、業務システムやWebサービスに直結する重大リスクを内包しています。
PHPやPostgreSQLを利用したアプリケーションを開発・運用している全ての関係者に対し、速やかなアップデートとコードレビューの実施を強く推奨します。