CVE-2026-83745: Apache Thrift, Apache Thrift: WebSocket frame decoders allocate the payload buffer from the declared length, not the bytes received (Node.js, D)

Published Oct 2, 2026
·
Updated

Memory allocation with excessive size value, Improper handling of length parameter inconsistency vulnerability in Apache Thrift  nodejs and D lang bindings.

Both bindings' WebSocket server transports read the payload length out of the frame header and allocate that many bytes immediately, without checking that the bytes have arrived. A single ~14-byte frame therefore commits as much memory as it cares to declare -- measured at 513 MiB against the Node.js server and 2 GiB against the D transport -- and in the Node.js case the connection is left open afterwards, so the frame can simply be sent again.

This issue affects Apache Thrift before 0.25.0.

Users are recommended to upgrade to version 0.25.0, which fixes the issue.

Affected Software

1 affected component
Apache Apache Thrift<0.25.0

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade Apache Thrift to a version that resolves this vulnerability.

    Fixed in 0.25.0

Event History

Oct 2, 2026
CVE Published
via MITRE·12:16 PM
Data Sourced
via MITRE·12:16 PM
DescriptionWeakness
Data Sourced
via NVD·01:17 PM
DescriptionSeverityWeakness

Frequently Asked Questions

1

Which deployments are exposed to this issue?

Apache Thrift deployments using the Node.js or D language bindings with their WebSocket server transports are affected if they run a version before 0.25.0. Other bindings are not identified in the provided information.

2

What does an attacker need to do to trigger the memory allocation?

An attacker needs to send a WebSocket frame with a declared payload length larger than the bytes actually received. A frame of roughly 14 bytes can cause the server to allocate memory based on the declared length.

3

How severe can the memory consumption be, and can it be repeated?

The issue was measured at 513 MiB of allocation against the Node.js server and 2 GiB against the D transport. In Node.js, the connection remains open after the frame, allowing the attacker to send the frame again.

4

What is the available remediation?

Upgrade Apache Thrift to version 0.25.0, which fixes the issue.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203