Impact
Argo CD Cluster secrets might be managed declaratively using Argo CD / kubectl apply. As a result, the full secret body is stored inkubectl.kubernetes.io/last-applied-configuration
annotation.
#7139 introduced the ability to manage cluster labels and annotations. Since clusters are stored as secrets it also exposes the kubectl.kubernetes.io/last-applied-configuration
annotation which includes full secret body. In order to view the cluster annotations via the Argo CD API, the user must have clusters, get
RBAC access.
Note: In many cases, cluster secrets do not contain any actually-secret information. But sometimes, as in bearer-token auth, the contents might be very sensitive.
Patches
The bug has been patched in the following versions:
Workarounds
Update/Deploy cluster secret with server-side-apply
flag which does not use or rely on kubectl.kubernetes.io/last-applied-configuration
annotation. Note: annotation for existing secrets will require manual removal.
For more information
Impact
Argo CD Cluster secrets might be managed declaratively using Argo CD / kubectl apply. As a result, the full secret body is stored in
kubectl.kubernetes.io/last-applied-configuration
annotation.#7139 introduced the ability to manage cluster labels and annotations. Since clusters are stored as secrets it also exposes the
kubectl.kubernetes.io/last-applied-configuration
annotation which includes full secret body. In order to view the cluster annotations via the Argo CD API, the user must haveclusters, get
RBAC access.Note: In many cases, cluster secrets do not contain any actually-secret information. But sometimes, as in bearer-token auth, the contents might be very sensitive.
Patches
The bug has been patched in the following versions:
Workarounds
Update/Deploy cluster secret with
server-side-apply
flag which does not use or rely onkubectl.kubernetes.io/last-applied-configuration
annotation. Note: annotation for existing secrets will require manual removal.For more information