Skip to main content

pgAdmin 4 CVE-2026-7818

| EUVDEUVD-2026-29086 HIGH
Deserialization of Untrusted Data (CWE-502)
2026-05-11 PostgreSQL GHSA-4rhg-h8f2-v4jm
High
Disputed · 7.3 Vendor: PostgreSQL
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Obtain pgAdmin credentials
  2. Delivery
    Gain filesystem write access via misconfiguration or chained CVE
  3. Exploit
    Craft malicious pickle payload with RCE code
  4. Execution
    Write payload to sessions directory
  5. Persist
    Trigger session loading
  6. Impact
    Execute code as pgAdmin process

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A08:2025 - Software or Data Integrity Failures
ASVS 5.0
V1 - Encoding and Sanitization Safe deserialization, type allowlists
MITRE ATT&CK

2 techniques across 2 tactics: Execution, Initial Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires three specific prerequisites: (1) Valid authentication to pgAdmin 4 as any user role-no privilege escalation within pgAdmin is needed beyond basic authenticated access. (2) Filesystem write permission to the pgAdmin sessions directory, typically /var/lib/pgadmin/sessions/ or configured SERVER_MODE session path-achievable through world-writable directory misconfiguration (chmod 777 or 775 with attacker in group), container volume mount permissiveness, or chaining with a separate path-traversal or arbitrary-file-write vulnerability in pgAdmin or underlying web server. (3) pgAdmin 4 version earlier than 9.15 using FileBackedSessionManager (default for file-based sessions). Attack vector is local (AV:L) meaning the attacker needs shell access to the server filesystem, not just HTTP access to pgAdmin web interface, limiting remote-only attack scenarios. The AC:H (high complexity) rating reflects that write access to a protected system directory requires either administrative error or exploitation of an additional vulnerability, not standard pgAdmin functionality. Database-backed session configurations are not affected.

Impact

Real-world risk is elevated for multi-tenant or shared-hosting pgAdmin deployments but constrained by multiple prerequisites. CVSS 7.0 (High) reflects local attack vector (AV:L), high attack complexity (AC:H), and low privileges required (PR:L). The AC:H rating correctly captures that exploitation demands both authenticated access AND filesystem write permission to sessions directory-not achievable in typical single-admin PostgreSQL environments with proper file permissions. EPSS score unavailable, but the attack chain complexity (requiring privilege escalation or configuration error) suggests targeted rather than opportunistic exploitation. Not present in CISA KEV, indicating no confirmed widespread active exploitation. The severity is real for environments with: (1) web-accessible pgAdmin with multiple user accounts, (2) misconfigured session-directory permissions (world-writable or group-writable), or (3) unpatched path-traversal bugs allowing arbitrary file writes. Organizations running pgAdmin in containerized/isolated environments with principle-of-least-privilege filesystem controls face materially lower risk than CVSS suggests. Priority should escalate for pgAdmin instances exposed to untrusted authenticated users or deployed on shared infrastructure.

Exploit ScenarioDerived

An attacker with valid pgAdmin credentials leverages misconfigured world-writable permissions on /var/lib/pgadmin/sessions/ (common in quick-start Docker deployments with volume mount errors). They generate a malicious Python pickle payload embedding os.system() calls to establish reverse shell, serialize it to a crafted session file matching pgAdmin's naming convention, and write it to the sessions directory. When pgAdmin's FileBackedSessionManager attempts to load any session (including the planted file during periodic cleanup or user session lookup), the unsafe pickle.load() executes the embedded payload before HMAC validation, granting the attacker shell access as the postgres or pgadmin process user with database administrative privileges.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – May 11, 2026

Unsafe Python pickle deserialization in pgAdmin 4 FileBackedSessionManager allows authenticated local users with session-directory write access to execute arbitrary code as the pgAdmin process. The vulnerability arises from deserializing session files before validating their HMAC signature, enabling payload injection through crafted pickle objects. Attackers require both valid authentication and filesystem write permission to the sessions directory-achievable through misconfiguration or chaining with a separate path-traversal vulnerability. EPSS exploitation probability and KEV status not provided; no public exploit code identified at time of analysis. PostgreSQL maintainers confirmed the flaw and patched it in version 9.15 by implementing pre-deserialization HMAC validation.

RemediationAI

Upgrade pgAdmin 4 to version 9.15 or later, which implements HMAC signature verification before deserialization as documented in https://github.com/pgadmin-org/pgadmin4/issues/9901. For environments unable to upgrade immediately, implement compensating controls with understanding of their operational impact: (1) Restrict session-directory filesystem permissions to the pgAdmin process user only (chmod 700), preventing write access by any other user or service-verify this does not break application functionality if pgAdmin runs under multiple process identities. (2) Switch to database-backed session storage instead of FileBackedSessionManager, noting this introduces PostgreSQL database dependency and potential performance trade-offs for high-concurrency deployments. (3) Deploy pgAdmin in isolated containers or VMs with read-only filesystem mounts for the sessions directory, accepting that session persistence will fail and users must re-authenticate after restarts. (4) Monitor session directory for unauthorized file modifications using filesystem audit tools (auditd, OSSEC), though this provides detection not prevention. None of these workarounds eliminate the underlying deserialization risk-patching to 9.15 remains the definitive solution.

Affected VersionsENISA

pgAdmin 4 0 <9.15

Affected Packages

pypi pgadmin4 fix: 9.15
euvd pgadmin_4 fix: 9.15

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in pypi, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

pgAdmin 4 is the web-based administration platform for PostgreSQL database management. The FileBackedSessionManager component stores user session state as serialized Python objects in filesystem files. Python's pickle module, used for object serialization, is inherently unsafe when deserializing untrusted data-arbitrary code embedded in pickle bytecode executes during load(). The original implementation followed the anti-pattern of deserialize-then-verify: reading session files with pickle.load() before checking HMAC integrity. This CWE-502 deserialization flaw mirrors classic vulnerabilities in Redis, Apache Spark, and other systems using unsafe object serialization. The fix follows defense-in-depth principles by prepending a 64-byte SHA-256 HMAC (keyed with SECRET_KEY) to each session file and validating via constant-time comparison (hmac.compare_digest) before any pickle operations, preventing object-injection attacks even if an attacker writes to the sessions directory.

Know when Pgadmin 4 gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Sources disagree (Low–High)
Vendor (PostgreSQL) PRIMARY 7.3 HIGH
CVSS:4.0/AV:L/AC:H/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
SUSE 3.1 LOW
AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H

vuln.today treats the vendor’s rating as authoritative. A higher third-party CVSS (e.g. CISA-ADP) is shown for transparency but does not drive the headline severity.

CVSS VectorVendor: PostgreSQL

Attack Vector
Local
Attack Complexity
High
Attack Requirements
None
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

3
Patch available
May 11, 2026 - 17:17 EUVD
CVSS changed
May 11, 2026 - 16:22 NVD
7.0 (HIGH) 7.3 (HIGH)
CVE Published
May 11, 2026 - 14:35 nvd
HIGH 7.0

DescriptionCVE.org

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.

Executive ViewAI

Why It Matters

pgAdmin 4 versions prior to 9.15 contain an unsafe pickle deserialization vulnerability in the FileBackedSessionManager that allows authenticated users with write access to the session directory to execute arbitrary code with pgAdmin process privileges. Organizations running affected pgAdmin instances should treat this as a critical integrity and confidentiality risk, particularly in environments where session directories may be accessible through misconfiguration or related vulnerabilities.

Business Impact: High
Compensating Controls

Vendor-released patch: pgAdmin 4 version 9.15. Until patched: restrict filesystem write permissions on pgAdmin session directories to the application process owner only; disable local user shell access to the host where session files are stored; implement file integrity monitoring on the sessions directory to detect unauthorized modifications; consider network segmentation to limit authenticated access to pgAdmin.

Threat Intelligence Overview

EPSS Score
0.3%
Top 49% exploitable
Threat Intel
1
1 source
Data Quality
8 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA Vendor GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Small
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

36
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +36
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Insecure deserialization occurs when an application converts serialized data (a stream of bytes representing an object's state) back into a living object without proper validation.

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

CVE-2025-2945 CRITICAL POC
9.9 Apr 03

pgAdmin 4 contains critical remote code execution vulnerabilities in the Query Tool download and Cloud Deployment endpoi

CVE-2024-2044 CRITICAL POC
9.9 Mar 07

pgAdmin <= 8.3 is affected by a path-traversal vulnerability while deserializing users’ sessions in the session handling

CVE-2024-3116 CRITICAL POC
9.8 Apr 04

pgAdmin <= 8.4 is affected by a Remote Code Execution (RCE) vulnerability through the validate binary path API. Rated cr

CVE-2026-12046 CRITICAL POC
9.5 Jun 18

Remote unauthenticated access to two SQL Editor endpoints in pgAdmin 4 server-mode deployments (versions 6.9 through 9.1

CVE-2022-4223 HIGH POC
8.8 Dec 13

The pgAdmin server includes an HTTP API that is intended to be used to validate the path a user selects to external Post

CVE-2024-9014 MEDIUM POC
6.5 Sep 23

pgAdmin versions 8.11 and earlier are vulnerable to a security flaw in OAuth2 authentication. Rated medium severity (CVS

CVE-2025-12762 CRITICAL
9.8 Nov 13

Remote code execution in pgAdmin 4 (versions up to and including 9.9) lets an attacker who can get a crafted PLAIN-forma

CVE-2026-12045 CRITICAL
9.4 Jun 18

Remote SQL injection via prompt injection in pgAdmin 4 versions 9.13 through 9.15 allows attackers who can write content

CVE-2026-17351 CRITICAL
9.4 Jul 31

SQL injection sandbox escape in pgAdmin 4's AI Assistant (versions 9.13 through 9.16) lets an attacker break out of the

CVE-2026-17566 CRITICAL POC
9.4 Jul 31

OS command injection in pgAdmin 4 (all versions before 9.18) lets an authenticated user with the commonly-granted tools_

CVE-2026-7813 CRITICAL
9.4 May 11

Authorization bypass and privilege escalation in pgAdmin 4 server mode allows authenticated users to access other users'

CVE-2024-4216 MEDIUM POC
5.4 May 02

pgAdmin <= 8.5 is affected by XSS vulnerability in /settings/store API response json payload. Rated medium severity (CVS

Vendor StatusVendor

SUSE

Severity: Low
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Fixed
SUSE Linux Enterprise High Performance Computing 15 SP7 Fixed
SUSE Linux Enterprise Module for Python 3 15 SP7 Fixed
SUSE Linux Enterprise Server 15 SP7 Fixed
SUSE Linux Enterprise Server for SAP Applications 15 SP7 Fixed

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy