CSIRTS // UNIFIED SECURITY ADVISORY FEEDSYS ● ONLINE · POWERED BY INTELFUSIONS.COM

GHSA-mjqf-28ph-426h: Logging operator has Fluentd configuration injection that allows remote code execution

criticalCVSS 9.9CVE-2026-54680
Summary The Fluentd configuration renderer in Logging operator writes strings from CRDs such as Flow directly into fluent.conf without escaping them. As a result, a user who can create Flow resources can inject Fluentd configuration by providing values that contain newlines. In the confirmed path, a value in record_transformer.records can close the current <record> / <filter> block and add a new <match **> block. By specifying Fluentd's core @type exec plugin in that injected block, an attacker can execute arbitrary commands inside the Fluentd aggregator. Details The issue is in FluentRender in pkg/sdk/logging/model/render/fluent.go. https://github.com/kube-logging/logging-operator/blob/98275d2984aa8d731c4c975b8006aa433fc7bafa/pkg/sdk/logging/model/render/fluent.go#L60-L87 Each parameter is rendered as key value, but values are not quoted, and newlines or characters such as < and > are not rejected. In addition, indentedf builds the string with fmt.Sprintf and then splits it on \n, so newlines inside CRD values become new lines in the generated Fluentd configuration. One input source is record_transformer.records. ToDirective passes Record (map[string]string) into Params without validation or escaping. https://github.com/kube-logging/logging-operator/blob/98275d2984aa8d731c4c975b8006aa433fc7bafa/pkg/sdk/logging/model/filter/record_transformer.go#L92-L103 The config check in pkg/resources/fluentd/appconfigmap.go runs fluentd -c ... --dry-run, but it passes as long as the injected configuration is syntactically valid Fluentd configuration. @type exec is a core Fluentd plugin and is available in the official Fluentd image. PoC The prerequisite is that Logging operator is running with a Fluentd aggregator configuration and that the attacker can create Flow and Output resources in a watched namespace, for example tenant-a. First, create a minimal Output as the log destination. apiVersion: logging.banzaicloud.io/v1beta1 kind: Output metadata: name: sink names

Details

Source
GitHub Security Advisories (INTL · database · site)
Severity
critical — CVSS 9.9
Published
2026-07-29
Last updated
2026-07-29
Exploitation
Not in CISA KEV at last sync

Original advisory: https://github.com/advisories/GHSA-mjqf-28ph-426h

Exploitation outlook

EPSS (FIRST.org) estimates each CVE’s probability of exploitation in the next 30 days — here is the CSIRTS.com read on those numbers.

Referenced CVEs

CVECSIRTS overviewExternal
CVE-2026-54680coverage & exploitation statusNVD · CVE.org

Same CVEs, other sources

How other CERTs, PSIRTs and databases cover the vulnerabilities in this advisory.

More from GitHub Security Advisories