CVE-2025-66623: Strimzi allows unrestricted access to all Secrets in the same Kubernetes namespace from Kafka Connect and MirrorMaker 2 operands
In some situations, Strimzi creates an incorrect Kubernetes Role which grants the Apache Kafka Connect and Apache Kafka MirrorMaker 2 operands the GET access to all Kubernetes Secrets that exist in the given Kubernetes namespace. The exact scenario when this happens is when:
- Apache Kafka Connect is deployed without at least one of the following options configured:
- TLS encryption with configured trusted certificates (no
.spec.tls.trustedCertificatessection in theKafkaConnectCR) - mTLS authentication (no
type: tlsin.spec.authenticationsection of theKafkaConnectCR) - TLS encryption with configured trusted certificates for
type: oauthauthentication (no.spec.authentication.tlsTrustedCertificatessection in theKafkaConnectCR) - Apache Kafka MirrorMaker2 is deployed without at least one of the following options configured for the target cluster:
- TLS encryption with configured trusted certificates (no
.spec.target.tls.trustedCertificatessection in theKafkaConnectCR) - mTLS authentication (no
type: tlsin.spec.target.authenticationsection of theKafkaConnectCR) - TLS encryption with configured trusted certificates for
type: oauthauthentication (no.spec.target.authentication.tlsTrustedCertificatessection in theKafkaConnectCR) - TLS encryption with configured trusted certificates (no
.spec.clusters[].tls.trustedCertificatessection in theKafkaConnectCR for the target cluster) - mTLS authentication (no
type: tlsin.spec.clusters[].authenticationsection of theKafkaConnectCR for the target cluster) - TLS encryption with configured trusted certificates for
type: oauthauthentication (no.spec.clusters[].authentication.tlsTrustedCertificatessection in theKafkaConnectCR for the target cluster)
When the operands configured as described above are deployed with Strimzi >= 0.47.0 and <= 0.49.0, any code running within their Pods and using their Service Account for authentication will be able to GET any Kubernetes Secret from the same namespace. This can be done by executing 3rd party tools from the Pods. Or directly from the Kafka Connect code, for example, using configuration providers or HTTP connectors. The Pods are allowed to only GET the Secrets. They are not allowed to list, watch, modify, or delete the Secrets.
References
Code Behaviors & Features
Detect and mitigate CVE-2025-66623 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →