Severity by source
AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
Reachable via the Kubernetes API (AV:N/AC:L), needs only namespace rights to create Flow CRs (PR:L), and code runs in the separate shared Fluentd aggregator, giving full RCE and a scope change (S:C, C/I/A:H).
Primary rating from Vendor (github).
CVSS VectorVendor: github
Lifecycle Timeline
4DescriptionCVE.org
Logging operator automates the deployment and configuration of Kubernetes logging pipelines. Prior to 6.6.0, the Fluentd configuration renderer FluentRender in pkg/sdk/logging/model/render/fluent.go writes CRD strings such as Flow record_transformer.records values directly into fluent.conf without escaping, allowing a user who can create Flow resources to inject a Fluentd <match **> block using @type exec and execute arbitrary commands inside the Fluentd aggregator. This issue is fixed in version 6.6.0.
Articles & Coverage 2
AnalysisAI
Fluentd configuration injection in the kube-logging Logging operator before 6.6.0 allows a namespace-scoped user who can create Flow/Output custom resources to break out of the generated fluent.conf and achieve remote code execution inside the shared Fluentd aggregator. Because the FluentRender renderer writes CRD values (e.g. record_transformer records) into the config without escaping newlines, an attacker injects a <match **> block using the core @type exec plugin to run arbitrary commands. A working proof-of-concept is published in the GitHub advisory (GHSA-mjqf-28ph-426h); publicly available exploit code exists, but there is no CISA KEV listing indicating active exploitation.
Technical ContextAI
The affected component is the Go-based Logging operator (kube-logging/logging-operator), which automates Kubernetes logging pipelines by translating Flow/ClusterFlow and Output CRDs into a Fluentd aggregator configuration. The root cause is CWE-74 (improper neutralization / injection): FluentRender.RenderDirectives in pkg/sdk/logging/model/render/fluent.go rendered each directive parameter as key value without quoting or rejecting control characters, and its indentedf helper built strings with fmt.Sprintf then split on newlines - so any newline embedded in a CRD string value becomes a new physical line in fluent.conf. The record_transformer filter's ToDirective (pkg/sdk/logging/model/filter/record_transformer.go) passes the user-controlled Record map directly into Params with no validation. The pre-deploy fluentd -c ... --dry-run check does not catch this because the injected content is syntactically valid Fluentd config, and @type exec is a core plugin present in the official Fluentd image. The 6.6.0 fix adds validateFluentToken (rejecting newlines in structural tokens like directive name, @type, @id, @label, tag and parameter names) and escapeFluentValue (quoting values with newlines and escaping backslash, quote, tab, and # to also neutralize Ruby #{...} interpolation).
RemediationAI
Vendor-released patch: upgrade the Logging operator to version 6.6.0 or later (release https://github.com/kube-logging/logging-operator/releases/tag/6.6.0), which introduces token validation and value escaping in FluentRender (commit cf437d7f1e056c78740bf5716ac8bdebcf002425). If you cannot upgrade immediately, restrict who can create or modify Flow, ClusterFlow, Output, and ClusterOutput resources by tightening Kubernetes RBAC so only trusted operators - not general tenant users - hold create/update on these CRDs in watched namespaces; this directly removes the attacker's entry point but reduces logging self-service for tenants. As a further compensating control, use an admission policy (OPA/Gatekeeper or Kydverno/ValidatingAdmissionPolicy) to reject Flow record_transformer values containing newline characters or Fluentd directive markers such as <match, @type exec, </record>, or </filter>; note this is a denylist and may need tuning to avoid false positives on legitimate multi-line records. Consult the advisory at https://github.com/kube-logging/logging-operator/security/advisories/GHSA-mjqf-28ph-426h for the confirmed injection path.
More in Kubernetes
View allA critical vulnerability in Kubernetes ingress-nginx controller allows unauthenticated attackers with pod network access
Credential-harvesting malware compromised 84 versions of 42 TanStack npm packages on 2026-05-11 via chained GitHub Actio
Kubernetes ingress-nginx contains a configuration injection vulnerability via the mirror-target and mirror-host Ingress
A security issue was discovered in ingress-nginx https://github.com/kubernetes/ingress-nginx where the `auth-url` Ingres
A security issue was discovered in ingress-nginx https://github.com/kubernetes/ingress-nginx where the `auth-tls-match-c
Kubernetes API server in all versions allow an attacker who is able to create a ClusterIP service and set the spec.exter
A security issue was discovered in Kubernetes where a user that can create pods on Windows nodes may be able to escalate
Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. Rated critical severity (CVSS 9.9), this vulne
Unauthenticated remote attackers can trigger complete database overwrites, server-side file reads, and SSRF attacks agai
The Kubernetes integration in GitLab Enterprise Edition 11.x before 11.2.8, 11.3.x before 11.3.9, and 11.4.x before 11.4
Kyverno Kubernetes policy engine prior to 1.x has a privilege escalation vulnerability (CVSS 9.9) allowing policy bypass
Kamaji is the Hosted Control Plane Manager for Kubernetes. Rated critical severity (CVSS 9.9), this vulnerability is rem
Same technique Code Injection
View allVendor StatusVendor
SUSE
Severity: Critical| Product | Status |
|---|---|
| SUSE Linux Enterprise Server 16.1 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.1 | Affected |
Share
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-50419
GHSA-mjqf-28ph-426h