04/06/2025にpgAdminの脆弱性(Critical: CVE-2025-2945, CVE-2025-2946)が公開されました。今回はこちらの脆弱性の概要と、各ディストリビューションの対応について纏めます。
一次情報源
- Remote Code Executtion Vulnerability with Query Tool and Cloud Deployment (CVE-2025-2945) #8603
- XSS Vulnerability in Query tool and View/Edit Data executing HTML/Javascript code on rendering of result grid. (CVE-2025-2946) #8602
CVSS/プライオリティ
- CVE-2025-2945
- 一次情報源
- 影響するバージョン
- 9.2より前のphpAdmin 4
- Priority
- NVD: 9.9(CRITICAL)
- Red Hat:
- CVSS Score / CVSS Vector
- NVD: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
- Red Hat:
- EPSS Score
- “date”: “2025-04-05”
- “epss”: “0.002290000”
- “percentile”: “0.429330000”
- CVE-2025-2946
- 一次情報源
- 影響するバージョン
- 9.2より前のphpAdmin 4
- Priority
- NVD: 9.1(CRITICAL)
- Red Hat:
- CVSS Score / CVSS Vector
- NVD: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:H
- Red Hat:
- EPSS Score
- “date”: “2025-04-05”
- “epss”: “0.000420000”
- “percentile”: “0.097970000”
修正方法
各ディストリビューションの情報を確認してください。
CVE概要(詳細はCVEのサイトをご確認ください)
- https://www.cve.org/CVERecord?id=CVE-2025-2945
- pgAdmin 4: Query Tool / Cloud Deploymentでのリモートコード実行
- pgAdmin 4(Query Tool / Cloud Deployment)で、リモートコード実行が可能になる脆弱性が見つかりました。この脆弱性は2つのPOSTエンドポイント: query_commitedパラメータが存在する/sqleditor/query_tool/downloadと、high_availabilityパラメータが存在する/cloud/deployエンドポイントで、パラメータがPythonのeval()に安全に渡されず、それにより任意のコードが実行されてしまう可能性があります。この問題はpgAdmin 4の9.2より前のバージョンに影響します。
- https://www.cve.org/CVERecord?id=CVE-2025-2946
- Query Tool / View/Edit DataでのXSSによりHTML/Javascriptコードがレンダリングの際に実行可能になる脆弱性
- 悪意のあるJavaScriptペイロードが含まれたデータを取得するクエリをユーザが実行すると、PgAdminが正しいサニタイズを行わずに結果をレンダリングします。これにより、ブラウザ内に埋め込まれたスクリプトが即座に実行されます。
PoC
- CVE-2025-2945
- Query Tool (mp4 download): https://github.com/pyozzi-toss/poc/raw/refs/heads/main/pgAdmin_poc.mp4
- Cloud Deployment (Youtube): https://www.youtube.com/watch?v=V2WzCmRct7s&ab_channel=SYP
- CVE-2025-2946: 再現手順
- pgAdminを開き、任意のデータベースインスタンスに接続します。
- クエリツールに移動します。
- 次のSQLコマンドを実行します。 CREATE TABLE IF NOT EXISTS EXPALUM (TEXT_SAMPLE VARCHAR(255)); — TRUNCATE TABLE EXPALUM; INSERT INTO EXPALUM (TEXT_SAMPLE) VALUES (‘
‘); SELECT * FROM EXPALUM;
- SELECTステートメントを実行すると、JavaScriptがQuery Result Gridで直接実行され、アラートボックスがトリガーされます。
主なディストリビューションの対応方法
詳細は、各ディストリビューションの提供元にご確認ください
- Debian
- Red Hat Enterprise Linux/CentOS/Rocky Linux/Alma Linux
- Ubuntu
- SUSE/openSUSE
対処方法
各ディストリビューションの案内に従い、アップデートを行ってください。