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.
Published: 2026-10-02
Score: 8.7 High
EPSS: < 1% Very Low
KEV: No
Impact: Denial of Service
Action: Immediate Patch
AI Analysis

Impact

The flaw allows an attacker to trigger uncontrolled recursive reads when a zero‑length or minimal payload frame is processed by the Go bindings of Apache Thrift. This recursion consumes the Go stack until a fatal error occurs, causing the entire process to terminate. The vulnerability does not provide code execution or information disclosure but results in a complete service crash and loss of availability.

Affected Systems

The issue exists in all releases of Apache Thrift before 0.25.0 that use the Go bindings with either the TFramedTransport or THeaderTransport. Any service or client that accepts frames of zero or minimal size through these transports is vulnerable.

Risk and Exploitability

The vulnerability is rated high with a CVSS score of 8.7. The EPSS score is not available, and the issue is not listed in the CISA KEV catalog. An attacker can exploit it remotely by sending crafted frames—4 bytes in TFramedTransport or 18 bytes in THeaderTransport—over the network to the vulnerable Thrift service. The canvas requires network access to the Thrift endpoint and the ability to send arbitrary frames; the exploit will not succeed if the service is isolated or the transports are disabled.

Generated by OpenCVE AI on October 3, 2026 at 01:52 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade Apache Thrift to version 0.25.0 or later.
  • Restrict or disable use of TFramedTransport and THeaderTransport for services exposed to untrusted clients to prevent the transmission of zero‑length or minimal payload frames.
  • Implement process monitoring (e.g., systemd Restart=on-failure) to automatically restart the Thrift service if it terminates unexpectedly due to a stack overflow.

Generated by OpenCVE AI on October 3, 2026 at 01:52 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sat, 03 Oct 2026 06:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Sat, 03 Oct 2026 00:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-770
References
Metrics threat_severity

None

cvssV3_1

{'score': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H'}

threat_severity

Important


Fri, 02 Oct 2026 15:45:00 +0000

Type Values Removed Values Added
First Time appeared Apache
Apache thrift
Vendors & Products Apache
Apache thrift

Fri, 02 Oct 2026 12:45:00 +0000

Type Values Removed Values Added
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.
Title Apache Thrift: TFramedTransport and THeaderTransport re-enter Read once per frame that carries no payload (Go)
Weaknesses CWE-674
References
Metrics cvssV4_0

{'score': 8.7, 'vector': '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'}


cve-icon MITRE

Status: PUBLISHED

Assigner: apache

Published:

Updated: 2026-10-02T17:15:19.858Z

Reserved: 2026-08-31T22:35:52.669Z

Link: CVE-2026-83663

cve-icon Vulnrichment

Updated: 2026-10-02T17:15:15.108Z

cve-icon NVD

Status : Deferred

Published: 2026-10-02T13:17:58.780

Modified: 2026-10-02T18:17:05.747

Link: CVE-2026-83663

cve-icon Redhat

Severity : Important

Publid Date: 2026-10-02T12:18:16Z

Links: CVE-2026-83663 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-03T02:00:22Z

Weaknesses
  • CWE-674

    Uncontrolled Recursion

  • CWE-770

    Allocation of Resources Without Limits or Throttling