CVE-2026-33816
Critical · 9.8CVSS
9.8
EPSS
0.9%
Published
Apr 7, 2026
CISA due date
—
Cloudanix analysis
Some applications using a common PostgreSQL software component may be vulnerable to remote attacks that could crash the service or compromise data until the component is updated or isolated.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Remote Code Execution
- Component
- Library
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
CVE-2026-33816 is a high-severity memory-safety flaw in github.com/jackc/pgx/v5, the Go PostgreSQL driver and toolkit. An application using an affected pgx/v5 version may mishandle attacker-controlled input during PostgreSQL protocol or data processing, potentially causing memory corruption. Based on the CVSS vector, exploitation is considered network-reachable, low-complexity, unauthenticated, and does not require user interaction, with possible confidentiality, integrity, and availability impact. In practical terms, affected applications may be vulnerable to crashes, data exposure, data tampering, or, in the worst case, remote code execution depending on how the vulnerable code path is reached and how the application is deployed.
Why it matters to the business
Applications that depend on vulnerable pgx/v5 versions may be exposed to unauthenticated network attacks that can disrupt service, compromise data handled by the application, or undermine trust in systems that rely on PostgreSQL connectivity. Because pgx is a widely used database driver, the issue may be present indirectly through application dependencies, container images, internal services, and third-party components. The CVSS score is critical, but current public exploitation signals are low: EPSS is 0.00561, unchanged over 30 days, the issue is not listed in CISA KEV, and no exploit maturity is reported. Organizations should still prioritize inventory and remediation because database access layers are often embedded deeply and broadly across production software.
How an attack unfolds
An attacker first identifies an internet-facing or otherwise reachable application that uses an affected version of github.com/jackc/pgx/v5 and can be induced to process attacker-controlled data through the vulnerable code path. The attacker then sends specially crafted network input, request data, database values, or PostgreSQL protocol-related content that reaches pgx parsing or handling logic. If the vulnerable path is exercised, the application may corrupt memory, leading to process crash, unexpected behavior, disclosure or modification of data in process memory, or potentially code execution. Because no public exploit maturity is reported, the exact exploit mechanics should be treated as implementation-specific until additional technical details are available; however, the unauthenticated network vector means exposed services using affected builds should be considered at elevated risk.
How to fix it
Inventory all applications, services, containers, and build artifacts that depend on github.com/jackc/pgx/v5. No fixed version was provided in the input, so monitor the upstream jackc/pgx project and vendor advisories for patched releases, then upgrade promptly when a fix is available. Until a fixed release is available, reduce exposure by limiting network access to affected services, requiring authentication before untrusted input reaches database-backed functionality, validating and constraining input that is passed into database operations, and isolating vulnerable workloads with least privilege. Rebuild and redeploy all statically linked Go binaries after dependency updates; changing the module cache alone is not sufficient. If direct remediation is delayed, consider temporarily pinning to a known non-affected version if upstream identifies one, applying vendor-supplied patches, or using compensating controls such as WAF/API gateway rules, service segmentation, rate limiting, and crash-loop alerting.
How to confirm the fix worked
Confirm exposure by inspecting source repositories, software bills of materials, container images, and built artifacts for github.com/jackc/pgx/v5. Use Go tooling such as `go list -m all | grep 'github.com/jackc/pgx/v5'`, `go version -m <binary>`, dependency scanners, and SBOM queries to identify affected versions in compiled Go binaries and images. After remediation, verify that rebuilt applications include a patched or otherwise non-affected pgx/v5 version and that no older binaries remain deployed. Validate compensating controls by confirming vulnerable services are not directly reachable from untrusted networks and that unauthenticated request paths cannot exercise database-backed code paths unnecessarily. Monitor application stability after deployment for crashes, panics, abnormal restarts, or database-driver parsing errors.
Typical attack path
- Identify applications or services that use github.com/jackc/pgx/v5 for PostgreSQL connectivity.
- Determine whether the service exposes an unauthenticated network path that can influence data processed by pgx.
- Send crafted input intended to trigger the vulnerable memory-safety condition in pgx/v5.
- Cause the target process to crash, behave unexpectedly, leak sensitive data, corrupt application state, or execute attacker-controlled behavior depending on exploitability.
- Use resulting access, instability, or data exposure to continue intrusion activity, disrupt operations, or pivot to related systems.
How to detect it
To determine whether this was already exploited, review application, container, orchestration, and host logs for unexplained crashes, panic events, segmentation faults, abnormal exits, repeated restarts, or memory corruption symptoms in services that include github.com/jackc/pgx/v5. Correlate crash timing with inbound requests, API gateway logs, load balancer logs, PostgreSQL server logs, and authentication logs to identify suspicious unauthenticated or malformed traffic immediately before failures. Examine core dumps, crash reports, and panic traces for stack frames involving github.com/jackc/pgx/v5, PostgreSQL protocol handling, scanning/decoding, or connection processing. Review EDR telemetry for unusual child processes, unexpected outbound connections, modified application binaries, or persistence mechanisms spawned from affected services. No public exploit pattern, threat actor, malware family, network signature, or stable compromise artifact is currently provided, so detection should focus on behavioral anomalies and dependency-specific crash forensics rather than fixed IOCs.
What your security team should do
- Immediately inventory direct and transitive use of github.com/jackc/pgx/v5 across source code, SBOMs, CI/CD artifacts, containers, and deployed Go binaries.
- Track the upstream jackc/pgx advisory and release notes, and upgrade to the first fixed version as soon as it is available.
- Prioritize remediation for internet-facing services, APIs, multi-tenant services, and systems that process untrusted input before invoking PostgreSQL operations.
- Rebuild and redeploy all affected Go binaries after dependency remediation; verify compiled binaries rather than relying only on go.mod changes.
- Apply temporary exposure reduction controls, including network segmentation, authentication enforcement, request validation, rate limiting, and limiting database-backed unauthenticated endpoints.
- Add monitoring for unexpected process crashes, panic events, container restarts, database-driver errors, and anomalous requests preceding service instability.
- Because this is not currently in CISA KEV, has no reported ransomware use, and has low stable EPSS, balance urgency with exposure: remediate promptly, but prioritize based on whether vulnerable code is reachable from untrusted networks.
The record
Memory-safety vulnerability in github.com/jackc/pgx/v5.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| openSUSE:Tumbleweed | kubectl-cnpg | 0 | 1.29.1-1.1 |