| id: GO-2026-5004 |
| modules: |
| - module: github.com/jackc/pgx |
| vulnerable_at: 3.6.2+incompatible |
| packages: |
| - package: github.com/jackc/pgx/internal/sanitize |
| symbols: |
| - SanitizeSQL |
| - Query.Sanitize |
| - module: github.com/jackc/pgx/v4 |
| vulnerable_at: 4.18.3 |
| packages: |
| - package: github.com/jackc/pgx/v4/internal/sanitize |
| symbols: |
| - SanitizeSQL |
| - Query.Sanitize |
| - module: github.com/jackc/pgx/v5 |
| versions: |
| - fixed: 5.9.2 |
| vulnerable_at: 5.9.1 |
| packages: |
| - package: github.com/jackc/pgx/v5/internal/sanitize |
| symbols: |
| - SanitizeSQL |
| - Query.Sanitize |
| summary: |- |
| SQL Injection via placeholder confusion with dollar quoted string literals in |
| github.com/jackc/pgx |
| description: |- |
| SQL Injection can occur when using the non-default simple protocol with a dollar |
| quoted string literal in the SQL query. If that string literal contains text |
| that would be interpreted as a placeholder outside of a string literal, and the |
| value of that placeholder is controllable by the attacker, an injection may be |
| possible. |
| |
| For example, an attacker could provide a value that includes a closing dollar |
| quote followed by malicious SQL commands. This is unlikely to occur outside of a |
| contrived scenario. |
| cves: |
| - CVE-2026-41889 |
| ghsas: |
| - GHSA-j88v-2chj-qfwx |
| credits: |
| - Jack Christensen |
| references: |
| - advisory: https://github.com/jackc/pgx/security/advisories/GHSA-j88v-2chj-qfwx |
| - fix: https://github.com/jackc/pgx/commit/60644f84918a8af66d14a4b0d865d4edafd955da |
| - web: https://github.com/jackc/pgx/releases/tag/v5.9.2 |
| source: |
| id: GHSA-j88v-2chj-qfwx |
| created: 2026-05-21T09:29:52.747438-04:00 |
| review_status: REVIEWED |