pgAdmin の脆弱性 CVE-2026-86863 が FIX:管理者アカウントへの不正アクセスの恐れ

Critical pgAdmin Authentication Bypass Lets Attackers Login as Administrator Without Credentials

2026/09/18 gbhackers — pgAdmin 4 に存在する深刻な脆弱性を悪用し、HTTP ID ヘッダーを介して任意のユーザーを装う未認証のリモート攻撃者が、管理者アカウントなどにアクセスする可能性がある。この CVE-2026-86863 は、pgAdmin の Web サーバ認証モードを使用する環境に影響し、CVSS 3.1 スコア 9.8 と評価されている。影響を受けるのは pgAdmin 4 バージョン 6.2〜9.17 であり、pgAdmin 4 バージョン 9.18 で修正されている。

pgAdmin の深刻な認証バイパスの脆弱性

pgAdmin の Webserver 認証は、上流の Web サーバやリバースプロキシがユーザーを認証した後、pgAdmin へリクエストを転送する環境を想定しており、これらの上流コンポーネントは CGI/WSGI の環境変数を通じて認証済みユーザー名を提供する。一方、脆弱な実装では、信頼されたサーバから提供される環境変数の値と、リモート・クライアントが HTTP ヘッダーで直接送信する ID の値を確実に区別できなかった。

この問題は、WebserverAuthentication.get_user() 関数による ID の取得処理に起因する。同関数は、まず設定された WEBSERVER_REMOTE_USER の値をリクエスト環境から取得しようとするが、取得に失敗すると、同名の値を受信したリクエスト・ヘッダーから取得する処理に切り替わる。

HTTP リクエスト・ヘッダーは送信者が制御できるため、pgAdmin インスタンスへアクセスできる攻撃者は、標的とするアカウントのユーザー名を含むヘッダーを送信でき、その結果、パスワードや多要素認証などの有効な認証情報を使用せずに、対象アカウントとして認証を通過する可能性がある。

さらに、管理者が WEBSERVER_REMOTE_USER に対して、HTTP プレフィックスやハイフンを含む名前である HTTP_X_FORWARDED_USER/X-Forwarded-User などを設定している場合には、リスクが高まる。WSGI サーバは、クライアントが送信したヘッダーを、このような名前の環境変数として公開することが多く、前述の代替処理が実行される前から、攻撃者が ID の取得元となる環境変数の値を制御できる可能性がある。

この脆弱性の悪用に成功した攻撃者は、管理者などの特権ユーザーに属する pgAdmin セッションにアクセスする可能性がある。侵入後は、そのアカウントからアクセス可能なデータベース・オブジェクトやデータの閲覧/変更/削除を行う可能性がある。

Scoring systemSeverityScore
CVSS 3.1Critical9.8
CVSS 4.0Critical9.3

この脆弱性は、両方の CVSS バージョンで「深刻度:Critical」と評価されている。CVSS 3.1 ベクターが示すのは、ネットワーク経由で悪用可能であり、攻撃の複雑性が低く、権限やユーザー操作が不要という特性であり、機密性/完全性/可用性に重大な影響を及ぼす可能性がある。

注意が必要なのは、pgAdmin の AUTHENTICATION_SOURCES 設定で Webserver が有効になっている場合にのみ、この問題が影響を及ぼすことである。その他の pgAdmin 認証メカニズムを使用する組織は、この特定の Webserver 認証の脆弱性の影響を受けない。

バージョン 9.18 では、pgAdmin における提示された ID の処理方法が変更され、正規の CGI/WSGI 変数とヘッダー由来の値を区別したうえで、デフォルトでは前者のみを信頼する。

これまでと同様、管理者はヘッダーから提供された ID を意図的に使用できるが、その場合は WEBSERVER_REMOTE_USER_FROM_HEADER を明示的に有効化する必要がある。このオプションは、WEBSERVER_TRUSTED_PROXIES を使用する信頼できるプロキシ設定と組み合わせるべきである。環境によっては、WEBSERVER_SHARED_SECRET で検証する共有シークレット・ヘッダーが必要になる場合がある。

この修正では、攻撃者の影響を受ける X-Forwarded-For の値により操作され得る request.remote_addr には依存せず、実際のソケット接続元アドレスを確認する方式が用いられる。また、pgAdmin における追加の安全策として、webserver に設定されていないアカウントのログインを、auth_source が Webserver 認証の場合にブロックする仕様が取り込まれている。

組織に求められるのは、直ちに pgAdmin 4 バージョン 9.18 などの修正済みリリースへアップグレードし、リバースプロキシの認証設定を確認することである。セキュリティチームは、明示的に信頼できるプロキシ・アドレスからのみ ID ヘッダーを受け入れるようにする必要があり、そのうえで、通常とは異なる pgAdmin セッション、権限のない管理者アクセス、想定外のヘッダー値がないかログを調査すべきである。この脆弱性を報告したのは、h9e0n としても知られるセキュリティ研究者 Sanghyeon Lee である。