Executive brief
Apache Thrift is a cross-language RPC framework used by many applications to enable service communication. The Node.js web server component has vulnerabilities that allow attackers to bypass directory restrictions, inject HTTP headers for cache poisoning or session hijacking, and exhaust server resources. Exploitation requires no authentication and impacts service availability and data confidentiality.
Technical details
Apache Thrift's Node.js web_server.js implementation contains multiple distinct vulnerabilities: (1) path traversal via improper pathname validation (CWE-22), (2) HTTP request/response splitting through unsanitized CRLF sequences in HTTP headers, and (3) uncontrolled resource consumption. These issues stem from origin validation errors and insufficient input sanitization in the web server request handling. An unauthenticated remote attacker can exploit these vulnerabilities over the network without user interaction. Successful exploitation enables file access outside intended directories, HTTP header injection for cache poisoning or request smuggling, and denial-of-service via resource exhaustion. The vulnerabilities are fixed in Apache Thrift version 0.23.0 and later.
Affected products
- Apache Thrift before 0.23.0
Timeline
- 2026-05-05: disclosed: Advisory published
- 2026-04-27: patched: Fixed in version 0.23.0