CVE-2026-65651
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
Summary
temporalio/sqlparser accepts SQL containing deeply nested unary expressions and can return a correspondingly deep abstract syntax tree without enforcing an applicable nesting limit. The library's String and Walk operations recursively traverse that tree. An application that parses attacker-controlled SQL and later formats or walks the returned tree can encounter a runtime-fatal Go stack overflow that terminates the process; Go panic recovery cannot contain this condition. Temporal Server passes caller-controlled query input through the affected parser in archival, visibility, and worker-query paths. In affected validation paths, the Server recursively formats an invalid expression while constructing an error. In a supported authenticated deployment, a caller with namespace read permission can terminate the receiving Frontend or Matching process. The dynamically confirmed ListWorkers route additionally requires at least one retained worker heartbeat. Repeated requests can sustain a denial of service. The issue affects availability only; no confidentiality or integrity impact was identified.
Affected Software
| Vendor | Product | Version Range | Status |
|---|---|---|---|
| Temporal Technologies, Inc. | temporalio/sqlparser | 0.0.0-20141206041240-1aae9baceee8 < 0.0.0-20260721183058-0466b6b405ac | affected |
| Temporal Technologies, Inc. | Temporal Server | 0.0.0 < 0.10.0 | unknown |
| Temporal Technologies, Inc. | Temporal Server | 0.10.0 <= 1.29.7 | affected |
| Temporal Technologies, Inc. | Temporal Server | 1.30.0 < 1.30.7 | affected |
| Temporal Technologies, Inc. | Temporal Server | 1.31.0 < 1.31.3 | affected |
Weaknesses
- CWE-674: CWE-674: Uncontrolled Recursion
Workarounds
Applications can impose a conservative query-size or nesting limit before parsing and avoid recursively formatting or walking parser-produced trees derived from untrusted input. Temporal Server 1.29 and 1.30 operators can disable ListWorkers when it is unused, disable unused archival reads, and restrict namespace read permission to trusted principals. Go panic recovery is not an effective mitigation for runtime-fatal stack overflow.
ADP Enrichment
CISA ADP Vulnrichment
- SSVC:
- Exploitation: none
- Automatable: no
- Technical Impact: partial
References
- https://github.com/temporalio/sqlparser/commit/1aae9baceee8e48525da8f56b07bf6a5ca7eb147
- https://github.com/temporalio/sqlparser/pull/6
- https://github.com/temporalio/sqlparser/commit/0466b6b405accfaa781e4bef417933efc18bcaef
- https://github.com/temporalio/sqlparser/tree/v0.1.0
- https://github.com/temporalio/sqlparser/pull/7
- https://github.com/temporalio/temporal/pull/11202
- https://github.com/temporalio/temporal/blob/v0.10.0/common/archiver/filestore/queryParser.go#L77-L132
- https://github.com/temporalio/temporal/releases/tag/v1.30.7
- https://github.com/temporalio/temporal/releases/tag/v1.31.3
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.