PT-2026-50814 · Postgresql Global Development Group+2 · Postgresql+2

·

CVE-2026-12048

·

Published

2026-06-10

·

Updated

2026-09-08

CVSS v3.1

9.4

Critical

VectorAV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N
Name of the Vulnerable Software and Affected Versions pgAdmin 4 versions 6.0 through 9.15
Description Stored cross-site scripting exists in the error-rendering and plan-node-rendering paths. Text returned by a PostgreSQL server, such as ErrorResponse messages, object names in relation-does-not-exist errors, and EXPLAIN Recheck Cond or Exact Heap Blocks fields, is passed verbatim through html-react-parser at various user-facing sinks. These sinks include notifier toasts, FormFooterMessage, FormInput help and error areas, FormNote, ModalProvider AlertContent and confirmDelete, ToolErrorView, the Explain visualiser's NodeText panel, SQL editor confirm dialogs, ConfirmSaveContent, PreferencesHelper modal alerts, and SelectThemes helper text.
An attacker controlling a PostgreSQL server, or a low-privilege user capable of creating objects with crafted names, can inject arbitrary HTML, such as <iframe> tags, into the DOM. This occurs when a victim connects to the server or views an Explain plan referencing the crafted object. The injected iframe can execute JavaScript to redirect the user to an attacker-controlled URL. Because the injection occurs within the internal interface, standard anti-clickjacking controls like X-Frame-Options and Content-Security-Policy frame-ancestors are ineffective.
Recommendations Update pgAdmin 4 to version 9.16 or later.

Exploit

Fix

DoS

Improper Encoding or Escaping of Output

XSS

Found an issue in the description? Have something to add? Feel free to write us 👾

Weakness Enumeration

Related Identifiers

BDU:2026-08904
CVE-2026-12048
OPENSUSE-SU-2026:11508-1

Affected Products

Pgadmin
Postgresql
Pgadmin 4