temporalio/tchannel-go zero-chunk call fragment causes process termination
Default status is the baseline for the product, each version can override it (e.g. patched versions marked unaffected).
| Vendor | Product | Default status | Versions | ||||||
|---|---|---|---|---|---|---|---|---|---|
| Temporal Technologies, Inc. | temporalio/tchannel-go | unaffected |
|
No data.
No data.
| Vendor | Product | Versions | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Temporal | Tchannel-go |
|
Vendor Solution
Upgrade github.com/temporalio/tchannel-go to v1.22.1 or later. The fix rejects fragments containing no argument chunks before indexing the chunk slice.
Vendor Workaround
Restrict TChannel listener access to trusted peers. Where supported by the embedding application, require mutually authenticated TLS so peers without a trusted client certificate are rejected before TChannel frame parsing. External panic-recovery middleware is not a reliable mitigation because the confirmed inbound panic occurs on a library-created dispatch goroutine.
No CVSS v3.1
No CVSS v3.0
No CVSS v2
This CVE is not in the KEV list.
Exploit prediction score: < 1% (0.710% probability within 30 days)
| Type | Values Removed | Values Added |
|---|---|---|
| First Time appeared |
Temporal
Temporal tchannel-go |
|
| Vendors & Products |
Temporal
Temporal tchannel-go |
| Type | Values Removed | Values Added |
|---|---|---|
| Metrics |
ssvc
|
| Type | Values Removed | Values Added |
|---|---|---|
| Description | github.com/temporalio/tchannel-go did not reject TChannel call fragments containing checksum metadata but no length-prefixed argument chunks. The fragment reader left its chunk slice empty and then unconditionally selected the first element. A network peer can supply such a malformed call fragment, including as a direct initial call request after completing the standard initialization handshake. On that inbound path, the resulting unrecovered Go slice-bounds panic occurs on a library-created dispatch goroutine and terminates the hosting process. This allows remote denial of service against applications that expose the listener to untrusted peers. The impact is limited to availability; no confidentiality or integrity impact was identified. | |
| Title | temporalio/tchannel-go zero-chunk call fragment causes process termination | |
| Weaknesses | CWE-129 | |
| References |
|
|
| Metrics |
cvssV4_0
|