CVE-2026-32286: Jackc pgproto3 denial of service in DataRow.Decode

CVE-2026-32286 · Severity: high · CVSS 7.5 · Published 2026-03-26

A vulnerability exists in a Go library used to communicate with PostgreSQL databases. A malicious or compromised database server can send a specially crafted message that causes the application using this library to crash immediately. This results in a denial-of-service, potentially disrupting business operations and application availability.

Technologies: github.com/jackc/pgproto3/v2 (Go). Vendors: Go, Jack Christensen.

Quick answers

Is CVE-2026-32286 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-32286 being exploited in the wild.
How severe is CVE-2026-32286?
High severity, with a CVSS score of 7.5, published 26 March 2026.
Which products and versions are affected?
github.com/jackc/pgproto3/v2 (Go) SEMVER:introduced=2.0.0, SEMVER:introduced=2.0.0,last_affected=2.3.3; Jack Christensen Pgproto3 >= 2.0.0, <= 2.3.3.
Is there a fix for CVE-2026-32286?
No fixed version is recorded yet. Check the vendor's advisory in the references below. If you run it, Junglewise drafts a mitigation that fits your setup and applies it once you approve, with senior security engineers behind it.
How is CVE-2026-32286 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2026-32286?
Check whether you run github.com/jackc/pgproto3/v2 (Go) or Jack Christensen Pgproto3 at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

Technical details

The vulnerability exists in the DataRow.Decode function of the github.com/jackc/pgproto3/v2 package. The function reads a field length as a signed 32-bit integer but fails to check for negative values other than the -1 null sentinel. Because Go's len() function always returns a non-negative value, a comparison check (len(src[rp:]) < msgSize) is bypassed when msgSize is negative. This leads to a 'slice bounds out of range' panic when the code attempts to slice the buffer using the negative index. An attacker controlling a PostgreSQL server can exploit this to cause a remote denial-of-service (DoS) against any Go client application using this library.

Affected products

  • jackc pgproto3/v2 >= 2.0.0, <= 2.3.3

Identifiers

  • CVE-2026-32286
  • GHSA-jqcq-xjh3-6g23
  • GO-2026-4518

Timeline

  • 2026-02-19: disclosed: Issue reported on GitHub and Go vulnerability database
  • 2026-03-18: advisory: GitHub Advisory GHSA-jqcq-xjh3-6g23 published
  • 2026-03-26: advisory: NVD published CVE-2026-32286

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.