CVE-2026-44161 Overview
CVE-2026-44161 is a Server-Side Request Forgery (SSRF) vulnerability in Fluentd, the open-source data collector that routes events to files, databases, and cloud services. Versions prior to 1.19.3 allow the out_http output plugin to expand placeholders such as ${tag} inside the endpoint configuration parameter. When a placeholder value is sourced from untrusted input, an attacker can control the destination hostname of outbound HTTP requests. This enables the attacker to redirect log traffic to arbitrary internal services, including cloud metadata endpoints and internal APIs. The issue is tracked under [CWE-918] and is fixed in Fluentd 1.19.3.
Critical Impact
An attacker who influences event tag or record fields consumed by out_http can pivot Fluentd into an internal HTTP client, reaching services otherwise unreachable from the network.
Affected Products
- Fluentd versions prior to 1.19.3
- Deployments using the out_http output plugin with dynamic endpoint placeholders
- Environments where event tags or records are influenced by untrusted upstream sources
Discovery Timeline
- 2026-07-08 - CVE-2026-44161 published to NVD
- 2026-07-08 - Last updated in NVD database
- Fluentd 1.19.3 - Patch released by the Fluentd maintainers with strict host validation for dynamic endpoints
Technical Details for CVE-2026-44161
Vulnerability Analysis
The out_http plugin in Fluentd supports dynamic values in its endpoint configuration parameter through placeholder expansion. Placeholders like ${tag}, ${tag_parts[n]}, or record field references are resolved at flush time using the event tag and record data. Before version 1.19.3, the resolved URL was passed directly to Net::HTTP without validating that the resulting host matched the originally configured hostname. An attacker who can inject data into an event tag or record field consumed by the endpoint template controls the outbound request destination.
Root Cause
The root cause is missing host validation after placeholder substitution in lib/fluent/plugin/out_http.rb. Fluentd trusted the expanded URL as configured infrastructure, but placeholders make the endpoint effectively user-controlled. This is a classic SSRF pattern where a templated URL parameter accepts attacker-influenced input without an allowlist check on the final host.
Attack Vector
Exploitation requires an attacker to influence event data ingested by Fluentd. In a typical pipeline, tags may originate from application logs, syslog sources, HTTP inputs, or forwarders. If an operator configures endpoint https://${tag}.example.com/ingest, an attacker who can control the tag can redirect outbound requests to hosts such as 169.254.169.254 for cloud metadata retrieval, internal admin APIs, or arbitrary intranet services. The Fluentd process, running with network access inside the trust boundary, performs the request on the attacker's behalf.
require 'net/http'
require 'uri'
require 'openssl'
+require 'securerandom'
require 'fluent/tls'
require 'fluent/plugin/output'
require 'fluent/plugin_helper/socket'
Source: GitHub Commit c6a01ea - the patch adds strict host validation for dynamic endpoints in the out_http plugin.
Detection Methods for CVE-2026-44161
Indicators of Compromise
- Outbound HTTP requests from Fluentd hosts to internal RFC1918 ranges or link-local addresses such as 169.254.169.254 that do not match the configured backend
- Unexpected DNS resolutions initiated by the Fluentd process for hostnames derived from log data
- Fluentd log entries showing endpoint resolution to hosts other than the intended ingestion target
- Sudden spikes in out_http retries or non-2xx responses to unusual destinations
Detection Strategies
- Audit Fluentd configurations for any out_http block whose endpoint contains ${tag}, ${tag_parts}, or ${record[...]} placeholders
- Instrument the Fluentd host with egress monitoring to detect connections that deviate from an approved destination allowlist
- Alert on Fluentd process connections to cloud metadata IPs, loopback ranges, or internal service subnets
Monitoring Recommendations
- Forward Fluentd process telemetry and DNS query logs into a centralized analytics platform for correlation
- Baseline the set of destination hostnames contacted by out_http and alert on deviations
- Monitor Fluentd version inventory across container images and hosts to confirm upgrade coverage
How to Mitigate CVE-2026-44161
Immediate Actions Required
- Upgrade Fluentd to version 1.19.3 or later on all collectors, forwarders, and aggregators
- Inventory every out_http configuration and remove untrusted placeholders from the endpoint parameter until upgrades complete
- Restrict egress from Fluentd hosts to an explicit allowlist of approved log ingestion endpoints
- Rotate any credentials or tokens that may have been exposed to unintended endpoints through Fluentd requests
Patch Information
The fix is available in Fluentd Release v1.19.3. The patch introduces strict host validation for dynamically resolved endpoints in out_http, ensuring placeholder expansion cannot redirect requests to hosts outside the configured target. Full details are documented in GitHub Security Advisory GHSA-72f5-rr8c-r6gr and Pull Request #5394.
Workarounds
- Replace dynamic endpoint templates with static URLs when upgrade is not immediately possible
- Sanitize or validate event tags and record fields at ingest before they can flow to out_http
- Apply network egress policies that block Fluentd from reaching cloud metadata services and internal management planes
- Run Fluentd in a network segment with no route to sensitive internal APIs
# Verify installed Fluentd version and upgrade
fluentd --version
gem install fluentd -v 1.19.3
# Example hardened out_http configuration (static endpoint)
# <match **>
# @type http
# endpoint https://logs.internal.example.com/ingest
# open_timeout 2
# </match>
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

