製品・ソフトウェアに関する情報
pgAdmin ProjectのpgAdmin 4における信頼できないデータのデシリアライゼーションに関する脆弱性
Title pgAdmin ProjectのpgAdmin 4における信頼できないデータのデシリアライゼーションに関する脆弱性
Summary

pgAdmin 4 の FileBackedSessionManager における信頼されていないデータの逆シリアライズの脆弱性(CWE-502)です。セッションマネージャは、HMAC の整合性チェックを行う前に、Python の標準オブジェクトシリアライズモジュールを使用してセッションファイルの内容を安全でない方法で逆シリアライズしていました。セッションディレクトリに置かれた任意のファイルは無条件に逆シリアライズされていました。書き込み権限を持つ認証済みユーザーは、設定ミスや他のパストラバーサルの脆弱性と組み合わせることで、細工されたシリアライズペイロードを設置し、pgAdmin プロセスの権限で OS レベルのリモートコード実行を達成できる可能性があります。修正では、SESSION_BODY に対して SECRET_KEY を用いて計算した 64 バイトの 16 進 SHA-256 HMAC を前置し、逆シリアライズ前に hmac.compare_digest で検証します。SECRET_KEY が空の場合は例外を発生させるのではなくエラーとし、-O オプションで除去されないようにしています。この問題は pgAdmin 4 のバージョン 9.15 未満に影響します。

Possible impacts 当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。 また、当該ソフトウェアが扱う全ての情報が書き換えられる可能性があります。 さらに、当該ソフトウェアが完全に停止する可能性があります。 そして、この脆弱性を悪用した攻撃の影響は、他のソフトウェアには及びません。 
Solution

正式な対策が公開されています。ベンダ情報を参照して適切な対策を実施してください。

Publication Date May 11, 2026, midnight
Registration Date May 28, 2026, 2:38 p.m.
Last Update May 28, 2026, 2:38 p.m.
CVSS3.0 : 重要
Score 7.8
Vector CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Affected System
pgAdmin Project
pgAdmin 4 9.15 未満
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
ベンダー情報
Change Log
No Changed Details Date of change
1 [2026年05月28日]
  掲載
May 28, 2026, 2:38 p.m.

NVD Vulnerability Information
CVE-2026-7818
Summary

Deserialization of untrusted data (CWE-502) in pgAdmin 4 FileBackedSessionManager.

The session manager performed unsafe deserialization of session-file contents (using Python's standard object-serialization module) before performing any HMAC integrity check. Any file dropped into the sessions directory was deserialized unconditionally. An authenticated user with write access to the sessions directory (whether by misconfiguration or in combination with another path-traversal flaw) could plant a crafted serialized payload to achieve operating-system level remote code execution under the pgAdmin process identity.

Fix prepends a 64-byte hex SHA-256 HMAC over the session body, computed with SECRET_KEY, and verifies it via hmac.compare_digest before any deserialization. The check is raised (rather than asserted) on empty SECRET_KEY so it is not stripped under -O.

This issue affects pgAdmin 4: before 9.15.

Publication Date May 12, 2026, 1:17 a.m.
Registration Date May 12, 2026, 4:14 a.m.
Last Update May 14, 2026, 12:34 a.m.
Related information, measures and tools
Common Vulnerabilities List