Skip to main content
Vulnerability Database/CVE-2026-94652

CVE-2026-94652: Apache Thrift Use After Free Vulnerability

CVE-2026-94652 is a use after free vulnerability in Apache Thrift C++ bindings caused by missing memory release. This memory management flaw can lead to crashes or potential code execution. This article covers technical details, affected versions, impact assessment, and mitigation strategies.

Published:

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Sources: National Vulnerability Database, CISA KEV, Exploit-DB

CVE-2026-94652 Overview

CVE-2026-94652 is a memory leak vulnerability in the Apache Thrift C++ bindings. The flaw stems from missing release of memory after its effective lifetime, classified under [CWE-401]. All versions of Apache Thrift prior to 0.25.0 are affected. The project maintainers released version 0.25.0 to address the issue.

Attackers can trigger the condition remotely across a network without authentication or user interaction. Repeated exploitation gradually exhausts available memory in services that embed the Thrift C++ bindings, resulting in degraded availability.

Critical Impact

Remote, unauthenticated attackers can cause progressive memory exhaustion in long-running Apache Thrift C++ services, leading to a denial-of-service condition.

Affected Products

  • Apache Thrift C++ bindings versions before 0.25.0
  • Applications and services linking the vulnerable Thrift C++ library
  • Downstream distributions packaging Thrift releases prior to 0.25.0

Discovery Timeline

  • 2026-10-02 - CVE-2026-94652 published to the National Vulnerability Database
  • 2026-10-05 - Last updated in NVD database

Technical Details for CVE-2026-94652

Vulnerability Analysis

The vulnerability resides in the Apache Thrift C++ bindings, which implement the Thrift serialization and remote procedure call (RPC) protocol for C++ applications. The code allocates memory during request processing but fails to free that memory once the allocation's effective lifetime ends.

Each malformed or specially crafted request leaves residual memory allocations in the server process. Over time, these orphaned allocations accumulate and consume all available heap space. Services built on Thrift C++ typically run as long-lived daemons, which makes the leak cumulative across the process lifetime.

The maintainers categorized the defect as [CWE-401] Missing Release of Memory After Effective Lifetime. The fix is included in Apache Thrift 0.25.0.

Root Cause

The root cause is an omitted deallocation path in the C++ binding code. Memory allocated during object or buffer handling is not released when the associated scope or operation completes. Because C++ requires explicit lifetime management for heap-allocated resources, missing delete, free, or smart-pointer ownership transfers directly produce a leak.

Attack Vector

The attack vector is network-based and requires no authentication or user interaction. An attacker who can reach a Thrift C++ endpoint can issue repeated requests that trigger the leaking code path. Sustained traffic causes the target process to grow its resident memory until the operating system kills it or the host runs out of memory, interrupting service availability.

No public proof-of-concept exploit has been released. Technical discussion is available on the Apache Mailing List Discussion and the Apache Mailing List Thread.

Detection Methods for CVE-2026-94652

Indicators of Compromise

  • Steadily increasing resident set size (RSS) in processes linking the Thrift C++ library without a corresponding increase in legitimate workload.
  • Repeated out-of-memory (OOM) kills of Thrift-based services recorded in dmesg or systemd journal entries.
  • Unusual volume of Thrift RPC requests originating from a limited set of source IP addresses.

Detection Strategies

  • Enumerate deployed Thrift C++ library versions across production inventory and flag any instance below 0.25.0.
  • Run heap profiling tools such as valgrind --leak-check=full or jemalloc statistics against test instances to confirm the leak signature.
  • Correlate process memory growth with inbound Thrift RPC traffic patterns in telemetry pipelines.

Monitoring Recommendations

  • Alert on sustained memory growth of Thrift server processes over rolling 24-hour windows.
  • Capture network flow data for Thrift listener ports and alert on sudden spikes in request rate from single sources.
  • Track service restart counts for Thrift-based daemons and investigate repeated restarts tied to OOM events.

How to Mitigate CVE-2026-94652

Immediate Actions Required

  • Inventory all applications that statically or dynamically link the Apache Thrift C++ bindings.
  • Upgrade affected components to Apache Thrift 0.25.0 or later and redeploy the services.
  • Restrict network exposure of Thrift endpoints to trusted clients using firewall or service mesh policies.

Patch Information

Apache Thrift version 0.25.0 contains the fix for CVE-2026-94652. Users are recommended to upgrade to this version. Refer to the Apache Mailing List Discussion for the maintainers' advisory.

Workarounds

  • Place Thrift C++ services behind a rate-limiting proxy to slow the accumulation of leaked allocations.
  • Configure process supervisors such as systemd to enforce memory limits and automatically restart Thrift daemons before OOM termination.
  • Terminate inbound connections from sources exhibiting abnormal request volume at the network edge.
bash
# Example systemd memory limit for a Thrift-based service
[Service]
MemoryMax=2G
MemoryHigh=1500M
Restart=on-failure
RestartSec=5s

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Sources: National Vulnerability Database, CISA KEV, Exploit-DB

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.