(This report has been withdrawn with reason: "False positive"). github.com/lib/pq trusts the unsigned 32-bit length in every PostgreSQL backend frame and subtracts four without first checking that the wire length is at least four. A backend frame whose length is zero through three produces a negative payload length. recvMessage then slices the connection scratch buffer with that negative bound, causing an unrecovered runtime panic that terminates the calling goroutine and process.
{
"review_status": "REVIEWED",
"url": "https://pkg.go.dev/vuln/GO-2026-6170"
}{
"imports": [
{
"path": "github.com/lib/pq",
"symbols": [
"Connector.Connect",
"DialOpen",
"Driver.Open",
"NewDialListener",
"NewListener",
"NewListenerConn",
"Open",
"conn.Begin",
"conn.BeginTx",
"conn.Commit",
"conn.Exec",
"conn.ExecContext",
"conn.Ping",
"conn.Prepare",
"conn.PrepareContext",
"conn.Query",
"conn.QueryContext",
"conn.Rollback",
"conn.recvMessage",
"rows.Close",
"rows.Next",
"stmt.Close",
"stmt.Exec",
"stmt.ExecContext",
"stmt.Query",
"stmt.QueryContext"
]
}
]
}