Severity: important
CVSS 4.0: 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
Affected versions:
- Apache Thrift (github.com/apache/thrift) before 0.25.0
Description:
Uncontrolled Recursion vulnerability in Apache Thrift go bindings.
Both Go transports satisfy a read out of a buffered frame and, when that frame
yields no payload bytes, read the next frame and call `Read` again instead of
looping. A peer produces such a frame for 4 bytes in `TFramedTransport` (a
declared size of zero) or 18 bytes in `THeaderTransport` (a header block that
fills the frame), so nothing bounds the depth. The Go stack limit is reached as
a `fatal error`, which `recover()` cannot catch, so the whole process dies.
This issue affects Apache Thrift: before 0.25.0.
Users are recommended to upgrade to version 0.25.0, which fixes the issue.
Credit:
Ho1aAs <[email protected]> for TFramedTransport (finder)
Apache Thrift Developers for THeaderTransport (finder)
References:
https://thrift.apache.org/
https://www.cve.org/CVERecord?id=CVE-2026-83663