CVE-2026-58225

LOWPre-NVD 2.12.1—
EchelonGraph scoreMEDIUM confidence

This low-severity CVE scores 2.1 under a secondary CVSS source (NVD's own analysis pending). EPSS exploit probability: 0.2% (11th percentile of EPSS-scored CVEs). GitHub Security Advisory data not yet ingested — confidence will rise once GHSA publishes (typical lag: hours to days for open-source ecosystem CVEs; never for infrastructure-only CVEs).

Triggered by: NVD CVSS baseline
Sources: epss, secondary
Elevated
2.1EG
EchelonGraph verdictMonitorLow exploitation likelihood right now — keep watching.
  • Lower severity and no public exploit yet
CISA-KEV: Not listedEPSS PROB: 0.2%CVSS: 2.1Exploit: Elevated riskExposed services: Not assessed

A fix is available — apply it.

SQL Injection vulnerability in elixir-ecto postgrex allows an attacker who can influence a LISTEN channel name to inject SQL into the reconnect replay query, causing a denial of service of the notification connection.

Postgrex.Notifications sanitizes channel names with quote_channel/1, which doubles double quotes so the name is safe inside a double-quoted identifier. This protects the single-statement LISTEN and UNLISTEN paths. On every (re)connect, however, handle_connect/1 replays all registered channels at once by concatenating their LISTEN statements and wrapping them in a dollar-quoted anonymous code block (DO $$BEGIN ... END$$). quote_channel/1 does not escape the $$ dollar-quote delimiter that opens and closes this block.

The listen/3 guards only reject null bytes and names longer than 63 bytes, so a channel name containing $$ passes validation unchanged. Once such a name is embedded, its $$ prematurely terminates the outer dollar-quoted string and PostgreSQL parses the remainder as additional top-level statements. Because handle_connect/1 runs on every (re)connect, the malformed replay query is rejected each time and the notification connection never re-establishes its subscriptions, silently dropping notifications for every channel sharing that connection.

An application is affected when it passes untrusted input (for example a tenant or user identifier) as a channel name to Postgrex.Notifications.listen/3. The double-quote doubling prevents forming a fully valid injected statement, so arbitrary SQL execution is not possible, but the corrupted query reliably breaks the shared notification connection for all tenants, resulting in denial of service.

This issue affects postgrex: from 0.16.0 before 0.22.3.

CVSS v3
2.1
EG Score
2.1LOWmedium confidence
EG Risk
25
EG Risk 25/100CISA SSVC

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
Severity21% × 45%
Exploitation40% × 40%
Automatability0% × 15%
CISA SSVC: Track at low or medium mission impact; Track* at high (mission-essential systems).
Action: A fix is available. Apply it within your standard update timelines.
EPSS PROB
0.2%
EPSS %ILE
11th
KEV
Not listed

CISA SSVCTrack at low or medium mission impact; Track* at high (mission-essential systems).

A fix is available. Apply it within your standard update timelines.

Exploitation public PoC (CISA Vulnrichment) · Automatable no (CISA Vulnrichment) · Technical impact partial (CISA Vulnrichment). Mission impact is CISA's Mission & Well-being decision point, and only you can judge it: high means the affected system is essential to your organisation's mission, or its compromise could cause irreversible harm to people. CISA's decision table

Published

July 10, 2026

Last Modified

July 10, 2026

Affected Packages

(1 across 1 ecosystem)
Hex(1)
PackageVulnerable rangeFix by version rangeDependents
postgrex0.16.0 ... 0.22.2 (23 versions)
  • 0.16.0 up to 0.22.3: fixed in 0.22.3
—

Weakness Classification(1)

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

Data Freshness Timeline

(refreshed 7× in last 7d / 30× 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 110 total refreshes for this CVE.

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

Frequently asked(5)

What is CVE-2026-58225?
CVE-2026-58225 is a low vulnerability published on July 10, 2026. SQL Injection vulnerability in elixir-ecto postgrex allows an attacker who can influence a LISTEN channel name to inject SQL into the reconnect replay query, causing a denial of service of the notification connection. Postgrex.Notifications sanitizes channel names with quotechannel/1, which doubles…
When was CVE-2026-58225 disclosed?
CVE-2026-58225 was first published on July 10, 2026. EchelonGraph re-ingests CVE updates from NVD on a 2-hour cycle, so this page reflects the latest published state.
Is CVE-2026-58225 actively exploited?
CVE-2026-58225 is not currently on CISA's Known Exploited Vulnerabilities catalog. FIRST EPSS estimates a 0.2% probability of exploitation in the next 30 days (11th percentile of EPSS-scored CVEs).
What is the CVSS score of CVE-2026-58225?
CVE-2026-58225 has a CVSS base score of 2.1 (a secondary CVSS source that NVD displays; NVD's own analysis pending).
How do I remediate CVE-2026-58225?
A fix for CVE-2026-58225 is available: update to the fixed version the vendor names in its advisory.

Dependency Blast Radius

See which npm, PyPI, Go, and Maven packages are affected by CVE-2026-58225

Explore →

Is Your Infrastructure Affected by CVE-2026-58225?

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