CVE-2026-44160: Fluentd Gzip Decompression Denial of Service Vulnerability
Fluentd versions before 1.19.3 contain a denial-of-service vulnerability in the in_http and in_forward plugins. The plugins accept gzip-compressed data but only limit the size of the *compressed* payload, not the decompressed output. An attacker can send a specially crafted compressed message that expands to an enormous size when decompressed, exhausting the server's memory and causing Fluentd to become unavailable. This affects any Fluentd deployment that receives data from untrusted networks or users.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 7.5 HIGH · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
- Weaknesses (CWE)
- CWE-409
- Affected products
- 1 configuration(s)
- Published / Modified
- 2026-07-08 / 2026-07-13
NVD description (verbatim)
Fluentd collects events from various data sources and writes them to files, RDBMS, NoSQL, IaaS, SaaS, Hadoop and so on. Prior to 1.19.3, Fluentd's in_http and in_forward plugins support gzip-compressed data but enforce limits only on compressed payloads through settings such as body_size_limit and chunk_size_limit, allowing crafted compressed payloads to decompress in memory to an excessive size and cause denial of service through memory exhaustion. This issue is fixed in version 1.19.3.
4 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
The vulnerability stems from incomplete input validation in Fluentd's compression handling. The in_http and in_forward plugins enforce size limits (body_size_limit, chunk_size_limit) on the wire-format compressed data, but these limits do not apply to the decompressed payload. An attacker can craft a malicious gzip-compressed message with an extremely high compression ratio—for example, a highly repetitive or sparse payload that compresses to a small size but decompresses to gigabytes—and send it to a listening Fluentd endpoint. The decompression occurs in-memory without secondary validation, leading to uncontrolled memory allocation and eventual out-of-memory conditions. This is a classic Denial-of-Service vector categorized as CWE-409 (Improper Restriction of Rendered UI Layers or Frames), though the core issue is insufficient validation of decompressed data size.
Business impact
Fluentd is widely deployed in containerized environments, Kubernetes clusters, and log-aggregation pipelines. A DoS attack exploiting this vulnerability can silence logging and monitoring across dependent services, obscuring other security incidents and degrading operational visibility. In production environments relying on Fluentd for compliance logging or real-time alerting, an attacker triggering memory exhaustion may delay incident response and breach detection. Organizations using Fluentd to collect metrics and traces from microservices may experience cascading failures if the collector becomes unavailable.
Affected systems
Fluentd versions prior to 1.19.3 are affected. This includes all 1.19.x releases up to and including 1.19.2, as well as earlier 1.18.x and older branches. The vulnerability is triggered only if the in_http or in_forward plugin is enabled and exposed to untrusted input. Fluentd installations that operate purely on local host interfaces or with strict network-level access controls may face reduced risk, but any public or semi-public endpoint accepting compressed data is vulnerable.
Exploitability
Exploitability is high. The attack requires no authentication (CVSS:3.1/AV:N/AC:L/PR:N), can be executed remotely over the network, and involves sending a single crafted HTTP or forward-protocol message. No special privileges or user interaction are needed. The attacker need only identify a Fluentd instance accepting gzip-compressed data and send a payload with a low byte-size-to-decompressed-size ratio. The resulting memory exhaustion will either crash the process or trigger swap thrashing, rendering Fluentd unresponsive within seconds. No public exploit code availability does not reduce the underlying simplicity of the attack.
Remediation
Upgrade Fluentd to version 1.19.3 or later immediately. The patched version enforces decompression-size limits alongside compression-size limits, preventing payloads from expanding beyond configured thresholds. For environments unable to upgrade immediately, configure strict network segmentation to limit which hosts can send data to Fluentd, and reduce the body_size_limit and chunk_size_limit to values appropriate for your workload to minimize the window for exploitation. Disabling the in_http or in_forward plugins if they are not required is an effective mitigation.
Patch guidance
Fluentd 1.19.3 includes the fix and should be deployed as a priority. Check your current version with 'fluentd --version'. Upgrade using your package manager (apt, yum, brew, or Docker) or by downloading directly from the Fluentd GitHub releases page. Test the upgrade in a staging environment to verify compatibility with your plugins and configuration. If you are on an older branch (1.18.x or earlier), consult the Fluentd project for extended support or plan a migration to 1.19.3 or later. Container-based deployments should rebuild images with the new version and redeploy pods.
Detection guidance
Monitor Fluentd process memory usage for sudden spikes or sustained high utilization. Alert on out-of-memory (OOM) kills of the Fluentd process. Review Fluentd logs for decompression errors or warnings related to payload size. On the network side, detect multiple small HTTP POST or forward-protocol messages arriving rapidly with Content-Encoding: gzip or equivalent compression headers, especially if the decompressed size would be orders of magnitude larger than the compressed size. Implement a Web Application Firewall (WAF) rule to flag or rate-limit requests with extreme compression ratios. Query process metrics from your container orchestration platform or monitoring stack to correlate memory spikes with incoming request rates to Fluentd.
Why prioritize this
This is a network-accessible denial-of-service vulnerability affecting a widely deployed data collection tool. The CVSS 7.5 (HIGH) score reflects the ease of exploitation, lack of authentication requirement, and direct impact on availability. While not a data breach risk, the ability to silence logging and monitoring makes it strategically valuable to attackers seeking to obscure malicious activity. Organizations running Fluentd in production should prioritize patching within one to two weeks.
Risk score, explained
CVSS 3.1 score of 7.5 reflects: Attack Vector Network (0.85), Attack Complexity Low (0.77), Privileges Required None (1.0), User Interaction None (1.0), Scope Unchanged (1.0), and Availability Impact High (1.0). The score does not account for Confidentiality or Integrity; the attack causes denial of service only. The absence of KEV (Known Exploited Vulnerability) designation means the vulnerability has not yet been publicly documented as actively exploited in the wild, but this does not diminish the urgency—the attack is trivial to execute once the vector is understood.
Frequently asked questions
Does this vulnerability allow remote code execution or data theft?
No. The vulnerability is a denial-of-service attack only. It causes memory exhaustion leading to process crash or hang, but does not grant the attacker code execution or access to data processed by Fluentd. The confidentiality and integrity impact ratings in the CVSS vector are 'None.'
Can we mitigate this without upgrading if we disable gzip compression?
Disabling gzip compression entirely eliminates the attack vector but may increase network bandwidth and impact performance if you handle large volumes of data. A better short-term mitigation is to set aggressive body_size_limit and chunk_size_limit values (e.g., 5-10 MB compressed) and restrict network access to Fluentd endpoints to trusted hosts only. Upgrade to 1.19.3 to remove the limitation.
Are older Fluentd versions (1.18.x, 1.17.x) also vulnerable?
Yes. The vulnerability exists in all versions prior to 1.19.3. If you are running an older release, plan an upgrade path. Check with the Fluentd project or your distribution (e.g., via package manager) to determine if patches are available for your branch, or plan a migration to 1.19.3 or later.
If Fluentd crashes due to this attack, will it restart automatically and resume normal operation?
Behavior depends on your deployment. In Kubernetes, a crashed pod will be restarted by the kubelet or ReplicaSet controller, returning to normal operation. In standalone or VM-based deployments, the service will remain down until manually restarted or monitored by a supervisor service (e.g., systemd). Either way, any logs or metrics created during the crash will be lost, and the window of unavailability represents an operational risk.
This analysis is provided for informational and educational purposes. The information contained herein is based on publicly available vulnerability disclosures and the vendor advisory. SEC.co does not guarantee the completeness or accuracy of vulnerability data and recommends verification against authoritative sources such as the official Fluentd security advisories and the NIST CVE database. Organizations must conduct their own risk assessment and testing before deploying patches in production. Patch testing should occur in a staging environment that mirrors production architecture and workload. Source: NVD (public-domain), retrieved 2026-08-17. Analysis generated by SEC.co (claude-haiku-4-5).
Related vulnerabilities
- CVE-2026-10725HIGHProtocol::HTTP2 HTTP/2 Bomb Memory Exhaustion Vulnerability
- CVE-2026-24264HIGHNVIDIA Triton Inference Server Denial of Service Vulnerability
- CVE-2026-44697HIGHKlever-Go Remote Denial-of-Service via Decompression Bomb
- CVE-2026-47774HIGHEnvoy HTTP/2 Memory Exhaustion Denial of Service
- CVE-2026-48044HIGHEnvoy Zstd Decompressor Memory Exhaustion DoS Vulnerability
- CVE-2026-48502HIGHMessagePack for C# Stack Overflow in Timestamp Parsing
- CVE-2026-48510HIGHMessagePack for C# LZ4 Decompression Memory Exhaustion DoS
- CVE-2026-49975HIGHApache HTTP Server Memory Allocation DoS Vulnerability (2.4.17–2.4.67)