CVE-2026-32286该漏洞影响Go语言PostgreSQL驱动库jackc/pgx及其底层协议解析库pgproto3。由于DataRow.Decode函数在对服务器返回的数据行进行解码时,未对字段长度进行有效验证。当客户端连接到恶意或被入侵的PostgreSQL服务器时,攻击者可发送包含负字段长度的DataRow消息,导致客户端触发切片越界panic,从而引发服务拒绝。
漏洞的核心在于pgx库处理PostgreSQL wire protocol中的DataRow消息时的逻辑缺陷。在正常通信中,DataRow消息包含每列数据的长度,该值应为非负整数。然而,受影响版本的代码直接使用了该值进行内存切片操作,未进行范围校验。攻击者可以通过控制PostgreSQL服务器或利用中间人攻击(MITM),构造一个字段长度为负数(例如-1)的特制数据包。当pgx尝试解析该数据包并执行slice操作时,Go运行时因索引越界抛出panic,导致连接断开或程序崩溃。该漏洞利用无需用户交互,攻击复杂度低,主要影响应用的可用性。