You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[IMPORTANT] [SECURITY] CVE-2025-66623: Unrestricted access to all Secrets in the same Kubernetes namespace from Kafka Connect and MirrorMaker 2 operands
#12209
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.trustedCertificates section in the KafkaConnect CR)
mTLS authentication (no type: tls in .spec.authentication section of the KafkaConnect CR)
TLS encryption with configured trusted certificates for type: oauth authentication (no .spec.authentication.tlsTrustedCertificates section in the KafkaConnect CR)
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.trustedCertificates section in the KafkaConnect CR)
mTLS authentication (no type: tls in .spec.target.authentication section of the KafkaConnect CR)
TLS encryption with configured trusted certificates for type: oauth authentication (no .spec.target.authentication.tlsTrustedCertificates section in the KafkaConnect CR)
TLS encryption with configured trusted certificates (no .spec.clusters[].tls.trustedCertificates section in the KafkaConnect CR for the target cluster)
mTLS authentication (no type: tls in .spec.clusters[].authentication section of the KafkaConnect CR for the target cluster)
TLS encryption with configured trusted certificates for type: oauth authentication (no .spec.clusters[].authentication.tlsTrustedCertificates section in the KafkaConnect CR 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.
This CVE is fixed in the recent Strimzi 0.49.1 release. We recommend upgrading to it.
apiVersion: kafka.strimzi.io/v1kind: KafkaMirrorMaker2metadata:
name: my-mirror-maker-2spec:
version: 4.1.1replicas: 1target:
alias: cluster-bbootstrapServers: cluster-b-kafka-bootstrap:9092groupId: my-mirror-maker-2-groupconfigStorageTopic: my-mirror-maker-2-configoffsetStorageTopic: my-mirror-maker-2-offsetstatusStorageTopic: my-mirror-maker-2-statusconfig:
# -1 means it will use the default replication factor configured in the brokerconfig.storage.replication.factor: -1offset.storage.replication.factor: -1status.storage.replication.factor: -1mirrors:
- source:
bootstrapServers: cluster-a-kafka-bootstrap:9092alias: cluster-asourceConnector:
tasksMax: 1config:
# -1 means it will use the default replication factor configured in the brokerreplication.factor: -1offset-syncs.topic.replication.factor: -1sync.topic.acls.enabled: "false"refresh.topics.interval.seconds: 600checkpointConnector:
tasksMax: 1config:
# -1 means it will use the default replication factor configured in the brokercheckpoints.topic.replication.factor: -1sync.group.offsets.enabled: "false"refresh.groups.interval.seconds: 600topicsPattern: ".*"groupsPattern: ".*"
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
In some situations, Strimzi creates an incorrect Kubernetes
Rolewhich grants the Apache Kafka Connect and Apache Kafka MirrorMaker 2 operands theGETaccess to all Kubernetes Secrets that exist in the given Kubernetes namespace. The exact scenario when this happens is when:.spec.tls.trustedCertificatessection in theKafkaConnectCR)type: tlsin.spec.authenticationsection of theKafkaConnectCR)type: oauthauthentication (no.spec.authentication.tlsTrustedCertificatessection in theKafkaConnectCR).spec.target.tls.trustedCertificatessection in theKafkaConnectCR)type: tlsin.spec.target.authenticationsection of theKafkaConnectCR)type: oauthauthentication (no.spec.target.authentication.tlsTrustedCertificatessection in theKafkaConnectCR).spec.clusters[].tls.trustedCertificatessection in theKafkaConnectCR for the target cluster)type: tlsin.spec.clusters[].authenticationsection of theKafkaConnectCR for the target cluster)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
GETany 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 onlyGETthe Secrets. They are not allowed to list, watch, modify, or delete the Secrets.This CVE is fixed in the recent Strimzi 0.49.1 release. We recommend upgrading to it.
For more information, see GHSA-xrhh-hx36-485q
Examples of affected custom resource configurations:
All reactions