When RKE provisions a cluster, it stores the cluster state in a configmap called "full-cluster-state" inside the "kube-system" namespace of the cluster itself. This cluster state object contains information used to set up the K8s cluster, which may include sensitive data.
{ "review_status": "REVIEWED", "url": "https://pkg.go.dev/vuln/GO-2024-2930" }
{ "imports": [ { "path": "github.com/rancher/rke/k8s", "symbols": [ "GetSecret", "GetSecretsList", "GetSystemSecret", "UpdateSecret" ] }, { "path": "github.com/rancher/rke/cluster", "symbols": [ "Cluster.CheckClusterPorts", "Cluster.CleanDeadLogs", "Cluster.CleanupNodes", "Cluster.ClusterRemove", "Cluster.DeployControlPlane", "Cluster.DeployRestoreCerts", "Cluster.DeployStateFile", "Cluster.DeployWorkerPlane", "Cluster.DisableSecretsEncryption", "Cluster.GetStateFileFromConfigMap", "Cluster.PrePullK8sImages", "Cluster.ReconcileDesiredStateEncryptionConfig", "Cluster.RewriteSecrets", "Cluster.RotateEncryptionKey", "Cluster.RunSELinuxCheck", "Cluster.SetUpHosts", "Cluster.StoreAddonConfigMap", "Cluster.SyncLabelsAndTaints", "Cluster.TunnelHosts", "Cluster.UpdateClusterCurrentState", "Cluster.UpgradeControlPlane", "Cluster.UpgradeWorkerPlane", "ConfigureCluster", "FullState.WriteStateFile", "GetClusterCertsFromKubernetes", "GetK8sVersion", "GetStateFromKubernetes", "ReadStateFile", "RebuildKubeconfig", "RebuildState", "ReconcileCluster", "ReconcileEncryptionProviderConfig", "RestartClusterPods", "SaveFullStateToKubernetes", "buildFreshState" ] }, { "path": "github.com/rancher/rke/cmd", "symbols": [ "ClusterInit", "ClusterRemove", "ClusterUp", "RestoreEtcdSnapshot", "RestoreEtcdSnapshotFromCli", "RetrieveClusterStateConfigMap", "RotateEncryptionKey", "SnapshotRemoveFromEtcdHosts", "SnapshotSaveEtcdHosts", "SnapshotSaveEtcdHostsFromCli", "getStateFile", "saveClusterState" ] } ] }