CVE-2026-12048

CRITICALNVD 5.49.3▲
EchelonGraph scoreMEDIUM confidence

Score 9.3 from GitHub Security Advisory (severity: CRITICAL) published 2026-06-19. NVD baseline CVSS 5.4; sources differ by 3.9.

Triggered by: GitHub Security Advisory CVSS
Sources: epss, ghsa, nvd
9.3EG
EchelonGraph verdictMonitorLow exploitation likelihood right now — keep watching.
  • Lower severity and no public exploit yet
CISA-KEV: Not listedEPSS PROB: 0.3%CVSS: 5.4Exploit: None knownExposed services: Not assessed

An upstream fix is merged but not yet released — mitigate (WAF / firewall / segmentation) until the release ships, then apply it.

Stored cross-site scripting in pgAdmin 4's error-rendering and plan-node-rendering paths. Text returned by a PostgreSQL server (ErrorResponse messages, including object names quoted back inside relation-does-not-exist errors and inside EXPLAIN Recheck Cond / Exact Heap Blocks fields) was passed verbatim through html-react-parser at every user-facing sink — the notifier toasts, FormFooterMessage / FormInput help and error areas, FormNote, ModalProvider AlertContent and confirmDelete, ToolErrorView, the Explain visualiser's NodeText panel, the SQL editor confirm dialogs, ConfirmSaveContent, PreferencesHelper modal alerts, and SelectThemes helper text. A PostgreSQL server an attacker controls — or any server returning attacker-influenced text such as a table or column name a low-privilege database user can create — could inject arbitrary HTML (including ) into the pgAdmin DOM the moment the victim's pgAdmin connected to that server or viewed an Explain plan that referenced the crafted object.

The injected iframe's srcdoc could fetch attacker-served JavaScript and, by writing to parent.location, redirect the victim's top-level pgAdmin browser tab to an attacker-controlled URL. Because the injection originates from inside pgAdmin's own interface, standard anti-clickjacking controls (X-Frame-Options, Content-Security-Policy: frame-ancestors) do not mitigate it. A phishing page rendered inside the legitimate pgAdmin window is indistinguishable from a genuine pgAdmin dialog.

Fix combines three complementary layers. (1) DOMPurify sanitisation is wrapped around every html-react-parser call site reachable from notifier, alert, form-error, Explain, and SQL-editor flows. (2) A new plain-text rendering contract — SafeMessage / SafeHtmlMessage components plus Notifier.errorText / alertText / warningText / infoText / successText helpers — is introduced; around fifty callers across browser, tools, dashboard, debugger, misc, llm, preferences, schema diff, and the SQL editor that previously interpolated backend-derived strings are migrated to the plain-text variants. (3) Backend HTML-escape is applied at the post-connection-SQL handler (execute_post_connection_sql) via a new sanitize_external_text helper, so third-party JSON consumers (audit logs, API clients) never receive raw markup either; the Explain plan-info renderer is also patched to _.escape Recheck Cond and Exact Heap Blocks at construction (matching every sibling field), giving defence in depth even before DOMPurify runs.

This issue affects pgAdmin 4: from 6.0 before 9.16.

CVSS v3
5.4
EG Score
9.3CRITICALmedium confidence
EG Risk
46
EG Risk 46/100

EG Risk is EchelonGraph's 0–100 priority score: it fuses intrinsic severity with real-world exploitation and automatability so you can rank equal-severity CVEs and fix the most dangerous first. Higher = act sooner. Distinct from the 0–10 EG Score (severity).

How it’s computed
Severity93% × 45%
Exploitation0% × 40%
Automatability30% × 15%
EPSS PROB
0.3%
EPSS %ILE
17th
KEV
Not listed

Published

June 19, 2026

Last Modified

June 29, 2026

Advisory Details (2)

Auto-updated Jun 22, 2026
Upstream fix merged — awaiting tagged release. Sources: github_commit.
generic

Stored XSS via PostgreSQL server error messages and Explain plan nodes (CVE-2026-12048) · Issue #10068 · pgadmin-org/pgadmin4 · GitHub

https://github.com/pgadmin-org/pgadmin4/issues/10068
github_commit

commit 9e370d3cb67b (pgadmin-org/pgadmin4)

Fix landed in pgadmin-org/pgadmin4 commit 9e370d3cb67b — awaiting tagged release

https://github.com/pgadmin-org/pgadmin4/commit/9e370d3cb67b83b3945f82969c959fad3f926517

Vendor Advisories for CVE-2026-12048(1)

These vendors published their own advisory mentioning this CVE — often with vendor-specific remediation steps + affected product lists not in NVD.

Weakness Classification(2)

MITRE Common Weakness Enumeration — the root-cause categories this CVE belongs to.

Data Freshness Timeline

(refreshed 7× in last 7d / 27× in last 30d)

Each row is a source pipeline that fetched or updated this CVE on that date, with what changed. For example, "NVD update" means NVD published or revised its analysis for this CVE; "MITRE cvelistV5" means we ingested or refreshed it from the CNA feed. Most recent first.

Showing the most recent 100 of 460 total refreshes for this CVE.

  1. 2026-10-10 19:59 UTCEPSS rescore
  2. 2026-10-09 20:06 UTCEPSS rescore
  3. 2026-10-08 17:11 UTCEPSS rescore
  4. 2026-10-07 23:47 UTCEPSS rescore
  5. 2026-10-06 15:17 UTCEPSS rescore
  6. 2026-10-05 17:42 UTCEPSS rescore
  7. 2026-10-04 23:21 UTCEPSS rescore
  8. 2026-10-03 14:25 UTCEPSS rescore
  9. 2026-10-03 13:39 UTCOSV refresh
  10. 2026-10-01 19:49 UTCEPSS rescore
  11. 2026-09-30 15:02 UTCEPSS rescore
  12. 2026-09-29 15:20 UTCEPSS rescore
  13. 2026-09-28 13:50 UTCEPSS rescore
  14. 2026-09-26 15:58 UTCEPSS rescore
  15. 2026-09-23 13:47 UTCEPSS rescore
  16. 2026-09-20 20:15 UTCEPSS rescore
  17. 2026-09-18 19:27 UTCEPSS rescore
  18. 2026-09-16 05:14 UTCEPSS rescore
  19. 2026-09-14 06:04 UTCGHSA enrichment
  20. 2026-09-14 02:17 UTCEG score recompute
  21. 2026-09-14 02:17 UTCGHSA enrichment
  22. 2026-09-13 16:46 UTCEPSS rescore
  23. 2026-09-13 13:49 UTCEG score recompute
  24. 2026-09-13 13:49 UTCGHSA enrichment
  25. 2026-09-12 15:00 UTCEPSS rescore
Show 75 more
  1. 2026-09-11 14:52 UTCEPSS rescore
  2. 2026-09-11 09:36 UTCEPSS rescore
  3. 2026-09-10 09:34 UTCEPSS rescore
  4. 2026-09-08 22:00 UTCEPSS rescore
  5. 2026-09-07 16:01 UTCEPSS rescore
  6. 2026-09-06 13:47 UTCEPSS rescore
  7. 2026-09-04 05:06 UTCEPSS rescore
  8. 2026-09-02 14:11 UTCEPSS rescore
  9. 2026-09-01 13:53 UTCEPSS rescore
  10. 2026-09-01 04:39 UTCEPSS rescore
  11. 2026-08-31 00:39 UTCGHSA enrichment
  12. 2026-08-30 20:53 UTCEG score recompute
  13. 2026-08-30 20:53 UTCGHSA enrichment
  14. 2026-08-30 19:17 UTCEPSS rescore
  15. 2026-08-30 01:21 UTCEPSS rescore
  16. 2026-08-28 21:40 UTCEPSS rescore
  17. 2026-08-27 14:24 UTCEPSS rescore
  18. 2026-08-25 13:48 UTCEPSS rescore
  19. 2026-08-25 05:50 UTCGHSA enrichment
  20. 2026-08-25 02:04 UTCGHSA enrichment
  21. 2026-08-24 22:18 UTCGHSA enrichment
  22. 2026-08-24 14:36 UTCEG score recompute
  23. 2026-08-24 14:36 UTCGHSA enrichment
  24. 2026-08-24 05:08 UTCGHSA enrichment
  25. 2026-08-23 23:55 UTCGHSA enrichment
  26. 2026-08-23 20:08 UTCGHSA enrichment
  27. 2026-08-23 16:20 UTCGHSA enrichment
  28. 2026-08-23 12:20 UTCGHSA enrichment
  29. 2026-08-23 08:35 UTCGHSA enrichment
  30. 2026-08-23 04:48 UTCGHSA enrichment
  31. 2026-08-23 01:02 UTCEG score recompute
  32. 2026-08-23 01:02 UTCGHSA enrichment
  33. 2026-08-23 00:19 UTCEPSS rescore
  34. 2026-08-22 01:10 UTCEG score recompute
  35. 2026-08-22 01:10 UTCGHSA enrichment
  36. 2026-08-21 23:48 UTCEPSS rescore
  37. 2026-08-21 21:21 UTCGHSA enrichment
  38. 2026-08-21 17:35 UTCGHSA enrichment
  39. 2026-08-21 13:13 UTCGHSA enrichment
  40. 2026-08-21 09:27 UTCGHSA enrichment
  41. 2026-08-21 05:24 UTCGHSA enrichment
  42. 2026-08-20 23:50 UTCEG score recompute
  43. 2026-08-20 23:50 UTCGHSA enrichment
  44. 2026-08-20 22:55 UTCEPSS rescore
  45. 2026-08-20 20:04 UTCGHSA enrichment
  46. 2026-08-20 16:15 UTCGHSA enrichment
  47. 2026-08-20 12:24 UTCGHSA enrichment
  48. 2026-08-20 08:07 UTCEG score recompute
  49. 2026-08-20 08:07 UTCGHSA enrichment
  50. 2026-08-19 17:03 UTCEPSS rescore
  51. 2026-08-19 12:43 UTCGHSA enrichment
  52. 2026-08-19 07:25 UTCEG score recompute
  53. 2026-08-19 07:25 UTCGHSA enrichment
  54. 2026-08-18 13:48 UTCEPSS rescore
  55. 2026-08-17 15:35 UTCEG score recompute
  56. 2026-08-17 15:35 UTCGHSA enrichment
  57. 2026-08-17 11:49 UTCGHSA enrichment
  58. 2026-08-17 07:55 UTCGHSA enrichment
  59. 2026-08-17 04:10 UTCGHSA enrichment
  60. 2026-08-17 00:24 UTCGHSA enrichment
  61. 2026-08-16 20:38 UTCGHSA enrichment
  62. 2026-08-16 15:54 UTCEG score recompute
  63. 2026-08-16 15:54 UTCGHSA enrichment
  64. 2026-08-16 14:56 UTCEPSS rescore
  65. 2026-08-16 12:08 UTCGHSA enrichment
  66. 2026-08-16 08:23 UTCGHSA enrichment
  67. 2026-08-16 04:37 UTCEG score recompute
  68. 2026-08-16 04:37 UTCGHSA enrichment
  69. 2026-08-16 02:14 UTCEPSS rescore
  70. 2026-08-16 00:52 UTCGHSA enrichment
  71. 2026-08-15 21:06 UTCGHSA enrichment
  72. 2026-08-15 16:50 UTCGHSA enrichment
  73. 2026-08-15 13:04 UTCGHSA enrichment
  74. 2026-08-15 09:01 UTCGHSA enrichment
  75. 2026-08-15 04:55 UTCEG score recompute

Frequently asked(5)

What is CVE-2026-12048?
CVE-2026-12048 is a critical vulnerability published on June 19, 2026. Stored cross-site scripting in pgAdmin 4's error-rendering and plan-node-rendering paths. Text returned by a PostgreSQL server (ErrorResponse messages, including object names quoted back inside relation-does-not-exist errors and inside EXPLAIN Recheck Cond / Exact Heap Blocks fields) was passed…
When was CVE-2026-12048 disclosed?
CVE-2026-12048 was first published on June 19, 2026, with the most recent update on June 29, 2026. EchelonGraph re-ingests CVE updates from NVD on a 2-hour cycle, so this page reflects the latest published state.
Is CVE-2026-12048 actively exploited?
CVE-2026-12048 is not currently on CISA's Known Exploited Vulnerabilities catalog. FIRST EPSS estimates a 0.3% probability of exploitation in the next 30 days (17th percentile of EPSS-scored CVEs).
What is the CVSS score of CVE-2026-12048?
CVE-2026-12048 has a CVSS v3 base score of 5.4 (NVD). EchelonGraph synthesises NVD + CISA KEV + FIRST EPSS + GHSA into a combined EG score of 9.3 (CRITICAL).
How do I remediate CVE-2026-12048?
An upstream fix for CVE-2026-12048 has been merged but is not yet in a tagged release. Until it ships, restrict network exposure of the affected system or apply the vendor's mitigation, then update to the release that contains the fix. The vendor advisories EchelonGraph has for CVE-2026-12048 are linked in the Vendor Advisories panel on this page.

Dependency Blast Radius

Explore the affected products and dependency analysis for CVE-2026-12048

Explore →

Is Your Infrastructure Affected by CVE-2026-12048?

EchelonGraph automatically scans your cloud infrastructure and maps CVE exposure using blast radius analysis.