Read the docs
TI-2026-85185 Aliases CVE-2026-102664

ProxySQL uninitialized heap read in MySQL compressed packet handling

Priority LOW 31CWE-908Published · Updated

Key facts

Attack vector
Network
Privileges required
Low
User interaction
None
Attack complexity
Low
Impact type
—
Confidentiality · integrity · availability
High · None · Low
Fix status
Fixed

Attack profile from CVSS 3.1 · CNA. Fix status from CNA.

Summary

ProxySQL versions before 3.0.10, from 3.1.0 before 3.1.10, and from 4.0.0 before 4.0.10 are affected. In decompress_mysql_payload() in lib/mysql_data_stream.cpp, a zlib stream is accepted without checking that the decompressed length matches the attacker-controlled payload length, which is a use of uninitialized resource (CWE-908). An authenticated MySQL client that negotiates compression can overstate the payload length, so ProxySQL parses uninitialized heap memory as packet headers and forwards stale data to the backend. Backend error responses can disclose prior SQL queries, result data, credentials, or session state, and malformed lengths can cause excessive allocations.

Written with Claude Haiku 5.5 from the sources below · 2026-11-06

Description from the CNA

ProxySQL is a proxy for MySQL and its forks, as well as PostgreSQL. Prior to 3.0.10, 3.1.10, and 4.0.10, decompress_mysql_payload() in lib/mysql_data_stream.cpp accepts a zlib stream when uncompress() returns Z_OK without checking that the actual output length equals the attacker-controlled payload_length. An authenticated MySQL client that negotiates compression can overstate payload_length, causing buffer2array() to parse the uninitialized tail of a heap buffer as MySQL packet headers and forward stale data to the backend. Backend error responses can disclose prior SQL queries, result data, credentials, or session state, and malformed lengths can also cause excessive allocations. This issue is fixed in versions 3.0.10, 3.1.10, and 4.0.10.

Why it matters now

EPSS 0.003 22nd percentileScored 2026-11-07
Fix Fixed proxysql (sysown): 3.0.10, 3.1.10, 4.0.10

SSVC decision points

Not available: CISA has not published SSVC decision points for this record.

Affected products

VendorProductAffected versionsFixed inStatusSource
sysownproxysqlbefore 3.0.10; 3.1.0 to before 3.1.10; 4.0.0 to before 4.0.103.0.10, 3.1.10, 4.0.10Patch availableCNA
  • proxysql Vendorsysown Affected before 3.0.10; 3.1.0 to before 3.1.10; 4.0.0 to before 4.0.10 Fixed in 3.0.10, 3.1.10, 4.0.10 Patch available CNA

CPE names Threatist (inferred) · 1

Inferred from how NVD named this product before; not given by a source.

CPEVersionsRoleVendor
cpe:2.3:a:proxysql:proxysql:*:*:*:*:*:*:*:*——sysown
  • cpe:2.3:a:proxysql:proxysql:*:*:*:*:*:*:*:* Versions — — ·sysown

Remediation

Upgrade ProxySQL to version 3.0.10, 3.1.10, or 4.0.10, which fix the issue. Red Hat lists one product as not affected.

Written with Claude Haiku 5.5 from the sources below · 2026-11-06

  • Fix · CNA proxysql (sysown) Fixed in 3.0.10, 3.1.10, 4.0.10

Vendor assessments

Red Hat

Red Hat's page for this CVE →

Not affected: 1 product
  • Red Hat

Timeline

  1. 2026-11-04 Threatist record created from CVE-2026-102664
  2. 2026-11-06 Priority changed: MEDIUM → LOW
  3. 2026-11-06 Affected versions changed · Red Hat
  4. 2026-11-06 CVSS score added · Red Hat

References

  • TI-2026-36043 ProxySQL pre-auth heap overflow in MySQL and PostgreSQL first-packet handling CVSS 3.1CRITICAL 9.8
  • TI-2026-36042 ProxySQL: PROXY-Protocol-v1 UNKNOWN parses spoofed source IP, bypassing mysql_query_rules.client_addr ACL CVSS 3.1CRITICAL 10.0
  • TI-2026-36044 ProxySQL MCP run_sql_readonly executes side-effecting MySQL multi-statements despite read-only contract CVSS 3.1HIGH 7.5

Sources