つみかさね

CVE-2026-12046

Critical(9)

pgAdmin 4の認証欠如・pickleデシリアライズ CVE-2026-12046:影響範囲と対応方法

公開日: 2026-07-03データソース: NVD, GitHub Advisory

影響を受けるソフトウェア

製品ベンダー影響バージョン
pgAdmin 4(サーバーモード)pgAdmin Development Team6.9 〜 9.15

対応ガイド

high|対応必須セキュリティ修正影響: 広範

推奨アクション

  1. 1pgAdmin 4のバージョンが 6.9〜9.15 かつサーバーモードで動作しているか確認する
  2. 2pgAdmin 4 9.16へアップグレードする
  3. 3アップグレードまでの間、pgAdmin 4のアクセスをVPNや認証プロキシで保護する

影響対象

pgAdmin 4 6.9〜9.15 サーバーモード利用者

補足

  • -デスクトップモードで使用している場合はこのCVEの影響を受けません
  • -このCVE単独での完全な侵害には追加の前提条件(SECRET_KEY入手等)が必要ですが、複合攻撃での最終ステップとなりうるため対応を推奨します
CVEpgAdmin認証バイパスデシリアライズRCE

30秒で判断

対応すべき人:

  • pgAdmin 4 バージョン 6.9〜9.15 をサーバーモードで運用している
  • pgAdmin 4 が外部ネットワークからアクセス可能な環境にある

対応不要な人:

  • pgAdmin 4 9.16以降にアップグレード済み
  • pgAdmin 4 を使用していない
  • デスクトップモードのみで使用(デスクトップモードはすべてのリクエストを既存ユーザーとして再認証するため影響なし)

確認コマンド:

pip show pgadmin4 | grep Version

概要

pgAdmin 4 の SQL Editor ブループリントに含まれる2つのエンドポイントに、認証チェックデコレータ(@pga_login_required)が欠如していた問題です。

  • DELETE /sqleditor/close/<trans_id>
  • POST /sqleditor/initialize/sqleditor/update_connection/<sgid>/<sid>/<did>

これら2つのエンドポイントは、セッション内に保存された gridData[<trans_id>]['command_obj'] をpickle逆シリアライズするパスに到達します。サーバーモードでは、認証されていないユーザーが直接これらのエンドポイントを呼び出せる状態でした。

悪用するには「Flask の SECRET_KEY の入手」と「pgAdmin セッションディレクトリへの書き込みアクセス」の2つの前提条件が必要です。このCVE単独では完全な侵害には至りませんが、他の経路でこれらの前提が満たされた際の最終ステップとして機能します。

修正は各エンドポイントへの @pga_login_required デコレータの追加です。


CVSSベクトル

項目
CVSSスコア9.0(Critical)
CWECWE-306(重要な機能に対する認証の欠如)、CWE-502(信頼されていないデータのデシリアライズ)
攻撃元区分 (AV)ネットワーク (N)
攻撃条件の複雑さ (AC)低 (L)
必要な特権 (PR)なし (N)
ユーザーの関与 (UI)不要 (N)

影響を受けるソフトウェア

製品影響バージョン
pgAdmin 46.9 〜 9.15(サーバーモードのみ)

デスクトップモードでは before_request フックが全リクエストに対して再認証を行うため、このCVEの影響を受けません。


修正バージョンと回避策

修正バージョン: pgAdmin 4 9.16

アップグレード:

pip install --upgrade pgadmin4

回避策:

  • pgAdmin 4のアクセスをVPNや認証プロキシで保護し、外部からの直接アクセスを遮断する
  • デスクトップモードへの切り替え(サーバーモードの場合)

関連リンク


データソース: NVD (NIST), GitHub Advisory Database AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。

Xでシェアはてブ
データソース: NVD (NIST), OSV (Google), GitHub Advisory Database, JVN iPedia (IPA/JPCERT/CC)
AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。