temporalio/sqlparser malformed MySQL version comments can cause a panic
Summary
| CVE | CVE-2026-16651 |
|---|---|
| State | PUBLISHED |
| Assigner | Temporal |
| Source Priority | CVE Program / NVD first with legacy fallback |
| Published | 2026-09-21 12:17:10 UTC |
| Updated | 2026-09-21 16:17:07 UTC |
| Description | temporalio/sqlparser can panic when Parse, ParseStrictDDL, or ParseNext processes a MySQL version comment whose contents are empty or consist only of one to five decimal digits. ExtractMysqlComment does not check the -1 result returned by strings.IndexFunc before using it as a slice boundary. The resulting Go runtime panic propagates unless the caller recovers it on the parsing goroutine, so applications that parse attacker-controlled SQL can terminate. Temporal Server exposes the affected parser through ListWorkers. When that API is enabled, an authenticated caller with namespace read permission can submit a malformed query that terminates the receiving Matching process. Repeated requests can sustain a denial of service. The issue affects availability only; no confidentiality or integrity impact was identified. |
Risk And Classification
Primary CVSS: v4.0 8.7 HIGH from [email protected]
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Problem Types: CWE-129 | CWE-129 CWE-129: Improper Validation of Array Index
| Version | Source | Type | Score | Severity | Vector |
|---|---|---|---|---|---|
| 4.0 | [email protected] | Secondary | 8.7 | HIGH | CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/C... |
| 4.0 | CNA | CVSS | 8.7 | HIGH | CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N |
| 4.0 | CNA | CVSS | 7.1 | HIGH | CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N |
CVSS v4.0 Breakdown
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Vendor Declared Affected Products
| Source | Vendor | Product | Version | Platforms |
|---|---|---|---|---|
| CNA | Temporal Technologies Inc. | Temporalio/sqlparser | affected 0.0.0-20180604150908-b055e9c9b4fa 0.0.0-20260721183040-74181ffcbaaf semver | Not specified |
| CNA | Temporal Technologies Inc. | Temporal Server | affected 1.29.0 1.29.7 semver | Not specified |
| CNA | Temporal Technologies Inc. | Temporal Server | affected 1.30.0 1.30.7 semver | Not specified |
| CNA | Temporal Technologies Inc. | Temporal Server | affected 1.31.0 1.31.3 semver | Not specified |
References
| Reference | Source | Link | Tags |
|---|---|---|---|
| github.com/temporalio/sqlparser/tree/v0.1.0 | [email protected] | github.com | |
| github.com/temporalio/temporal/releases/tag/v1.31.3 | [email protected] | github.com | |
| github.com/temporalio/temporal/pull/11090 | [email protected] | github.com | |
| github.com/temporalio/temporal/pull/11190 | [email protected] | github.com | |
| github.com/temporalio/sqlparser/pull/5 | [email protected] | github.com | |
| github.com/temporalio/sqlparser/commit/74181ffcbaaf0c52faa925f4cf27ed6c0... | [email protected] | github.com | |
| github.com/temporalio/temporal/releases/tag/v1.30.7 | [email protected] | github.com | |
| CVE Program record | CVE.ORG | www.cve.org | canonical |
| NVD vulnerability detail | NVD | nvd.nist.gov | canonical, analysis |
Vendor Comments And Credit
Discovery Credit
CNA: An external security researcher who reported this issue responsibly to Temporal Technologies (en)
Additional Advisory Data
Solutions
CNA: Upgrade github.com/temporalio/sqlparser to v0.0.0-20260721183040-74181ffcbaaf or later. Temporal Server operators should upgrade to 1.30.7, 1.31.3, or 1.32.0, as appropriate for the deployed minor release line. The parser fix treats MySQL version comments as ordinary comments instead of interpreting their contents as SQL.
Workarounds
CNA: Until upgrading, applications can reject MySQL version comments before invoking the parser or recover parser panics on the parsing goroutine. Temporal Server 1.29 and 1.30 operators can set frontend.ListWorkersEnabled to false. On any affected Server release, restrict ListWorkers to trusted principals or apply the matching-handler panic-recovery change as interim containment. Panic recovery does not replace the parser fix.