Skip to main content

Logging operator EUVDEUVD-2026-50419

| CVE-2026-54680 CRITICAL
Improper Neutralization of Special Elements in Output Used by a Downstream Component ('Injection') (CWE-74)
2026-07-29 security-advisories@github.com GHSA-mjqf-28ph-426h
9.9
CVSS 3.1 · Vendor: github
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Obtain namespace CR create rights
  2. Delivery
    Apply nullout Output as sink
  3. Exploit
    Submit Flow with malicious record_transformer newline payload
  4. Execution
    Operator renders unescaped values into fluent.conf
  5. Persist
    Injected <match **> @type exec block loaded on reload
  6. Impact
    Arbitrary command execution in Fluentd aggregator

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Input neutralization, injection prevention
Exploitation Conditions

Exploitation requires that the Logging operator is deployed with a Fluentd aggregator pipeline (not a Fluent Bit-only setup) and that the attacker holds Kubernetes RBAC permission to create Flow and Output custom resources (logging.banzaicloud.io/v1beta1) in a namespace watched by the operator, e.g. a tenant namespace. The concrete injection uses the record_transformer filter's records field, where a value containing newlines closes the current </record>/</filter> blocks and opens a <match **> block with @type exec. Limiting factors: the attacker must already have namespace-level create rights on these CRDs (PR:L, so not fully unauthenticated), the aggregator image must include the core exec plugin (true for the official Fluentd image), and clusters where only cluster admins define logging Flows are not realistically exploitable by lower-privileged users. No end-user interaction is needed and the built-in fluentd --dry-run config check does not block the payload because it is syntactically valid.

Impact

The signals are largely consistent and point to a genuine high priority in multi-tenant clusters. The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H, 9.9) reflects network reachability via the Kubernetes API, low complexity, only low privileges (namespace-level ability to create Flow/Output CRs), no user interaction, and a scope change because code executes in the separate, often cluster-shared Fluentd aggregator. A functional PoC in the vendor advisory raises real exploitability; publicly available exploit code exists. The key limiting factor - which the raw 9.9 obscures - is the PR:L requirement: the attacker must already be able to create Flow/Output resources in a watched namespace, so this is primarily a tenant-to-cluster privilege-escalation / trust-boundary break rather than an unauthenticated internet-facing bug. No EPSS score was provided and there is no CISA KEV entry, so there is no evidence of widespread active exploitation; treat the risk as high specifically for multi-tenant or delegated-namespace deployments and lower where only cluster admins can define logging Flows.

Exploit ScenarioDerived

A tenant with permission to manage logging in namespace tenant-a creates a nullout Output, then a Flow whose record_transformer.records value embeds newlines that close the <record>/<filter> blocks and open a <match **> block with @type exec and a command of the attacker's choice. When the operator renders and the aggregator reloads the config, the injected exec plugin runs arbitrary commands inside the shared Fluentd aggregator pod, giving the attacker code execution across the logging pipeline. A complete PoC (Output + Flow manifests) is published in the GHSA advisory, making reproduction straightforward.

Act Now Prioritize within 24-48h. Why: CRITICAL severity + public POC available.
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Jul 29, 2026

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.

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.

Affected VersionsENISA

logging-operator < 6.6.0

Affected Packages

go github.com/kube-logging/logging-operator fix: 0.0.0-20260608145523-cf437d7f1e05
euvd logging_operator fix: 6.6.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in go, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

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).

Know when Kubernetes gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (github) PRIMARY 9.9 CRITICAL
AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
vuln.today AI 9.9 CRITICAL

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).

3.1 AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
SUSE CRITICAL

Primary rating from Vendor (github).

CVSS VectorVendor: github

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Changed
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

2
Patch available
Jul 29, 2026 - 18:17 EUVD
CVE Published
Jul 29, 2026 - 17:16 cve.org
CRITICAL 9.9

DescriptionCVE.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.

Executive ViewAI

Why It Matters

The kube-logging Logging operator (before version 6.6.0) contains a configuration injection vulnerability allowing remote code execution within the shared Fluentd aggregator used across your Kubernetes logging infrastructure. Publicly available exploit code exists; any namespace-scoped user with permissions to create Flow/Output resources can execute arbitrary commands, potentially compromising your entire logging and monitoring system.

Business Impact: Severe
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: (1) Enforce least-privilege RBAC to restrict Flow/Output CR creation to only trusted service accounts; (2) Implement network policies to limit Fluentd aggregator pod egress; (3) Enable audit logging on CRD creation and modification to detect exploitation attempts; (4) Run Fluentd aggregator pods with minimal Linux capabilities and read-only root filesystems.

Threat Intelligence Overview

EPSS Score
0.4%
Top 65% exploitable
Prevalence
Medium
popular CNCF Kubernetes logging operator, common but not universally deployed
Threat Intel
1
1 source
Exploit
POC
Public exploit code exists
Social Media
1
Sightings
Data Quality
8 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA Vendor CIRCL GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC Yes
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity + public POC available
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Out-of-Cycle
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact
Very High
Technical Impact
Total

Priority Score

70
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +50
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Code Injection CRITICAL

Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.

CVE-2025-1974 CRITICAL POC
9.8 Mar 25

A critical vulnerability in Kubernetes ingress-nginx controller allows unauthenticated attackers with pod network access

CVE-2026-45321 CRITICAL POC
9.6 May 12

Credential-harvesting malware compromised 84 versions of 42 TanStack npm packages on 2026-05-11 via chained GitHub Actio

CVE-2025-1098 HIGH POC
8.8 Mar 25

Kubernetes ingress-nginx contains a configuration injection vulnerability via the mirror-target and mirror-host Ingress

CVE-2025-24514 HIGH POC
8.8 Mar 25

A security issue was discovered in ingress-nginx https://github.com/kubernetes/ingress-nginx where the `auth-url` Ingres

CVE-2025-1097 HIGH POC
8.8 Mar 25

A security issue was discovered in ingress-nginx https://github.com/kubernetes/ingress-nginx where the `auth-tls-match-c

CVE-2020-8554 MEDIUM POC
6.3 Jan 21

Kubernetes API server in all versions allow an attacker who is able to create a ClusterIP service and set the spec.exter

CVE-2023-3676 HIGH POC
8.8 Oct 31

A security issue was discovered in Kubernetes where a user that can create pods on Windows nodes may be able to escalate

CVE-2025-55190 CRITICAL POC
9.9 Sep 04

Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. Rated critical severity (CVSS 9.9), this vulne

CVE-2026-34976 CRITICAL POC
10.0 Apr 02

Unauthenticated remote attackers can trigger complete database overwrites, server-side file reads, and SSRF attacks agai

CVE-2018-18843 CRITICAL POC
10.0 Dec 04

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

CVE-2025-64709 CRITICAL POC
9.9 Nov 13

Authenticated Typebot users can abuse the webhook block (HTTP Request component) in versions prior to 3.13.1 to issue ar

CVE-2026-22039 CRITICAL POC
9.9 Jan 27

Kyverno Kubernetes policy engine prior to 1.x has a privilege escalation vulnerability (CVSS 9.9) allowing policy bypass

Vendor StatusVendor

SUSE

Severity: Critical
Product Status
SUSE Linux Enterprise Server 16.1 Affected
SUSE Linux Enterprise Server for SAP applications 16.1 Affected

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy