CVE intelligence and bounded remediation
CVE-2026-12046 — Pgadmin Pgadmin 4 security vulnerability
Two state-mutating endpoints in pgAdmin 4's SQL Editor blueprint -- DELETE /sqleditor/close/<trans_id> and POST /sqleditor/initialize/sqleditor/update_connection/<sgid>/<sid>/<did> -- were the only routes in the module missing the @pga_login_required decorator. Both reach a pickle.loads sink on session['gridData'][<trans_id>]['command_obj']: the close endpoint via close_sqleditor_session(), and update_sqleditor_connection via check_transaction_status(). In server mode these endpoints were reachable without any authenticated pgAdmin session. The defect is a missing-authentication-on-critical-function (CWE-306) wrapper around a deserialization-of-untrusted-data sink (CWE-502). Exploiting it for remote code execution requires the attacker to also forge a server-side session file whose gridData entry contains a malicious pickle payload, which in turn requires both (a) knowledge of pgAdmin's Flask SECRET_KEY (no chain to leak it is described here -- the attacker must already possess it) and (b) write access to pgAdmin's sessions/ directory on the host. Neither precondition is granted by this defect on its own. When those preconditions are met from another channel (misconfigured deploym…
- Severity
- Critical
- CVSS
- 9.5 (4.0)
- Published
- 2026-06-19
- CISA KEV
- Not currently listed
- Ecosystem
- software/application
- Weaknesses
- CWE-306, CWE-502
Affected products
- pgadmin / pgadmin_4
Matched remediation archetype
Unsafe deserialization and object reconstruction
This catalog composition supplies bounded fallback guidance. Explicitly reviewed curated workflows load with the complete record below.
Check exposure
- Inventory serialization formats accepted from requests, queues, caches, files, cookies, and cross-service messages.
- Trace whether untrusted input can select classes, types, callbacks, constructors, or object hooks during decoding.
- Identify signing, schema validation, trust-boundary, and compatibility settings for each decoder.
Remediate safely
- Replace native object deserialization with a data-only format and explicit schema validation.
- If replacement is not immediate, use a safe decoder with a minimal type allowlist and disable polymorphic or executable hooks.
- Update the affected library and add inert tests for unknown types, extra fields, malformed nesting, and unsigned data.
Authoritative sources
Complete CVE record and remediation plan
The detailed catalog view below loads this exact record, its source evidence, and the full seven-phase agentic change plan.