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": [
{
"symbols": [
"GetSecret",
"GetSecretsList",
"GetSystemSecret",
"UpdateSecret"
],
"path": "github.com/rancher/rke/k8s"
},
{
"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/cluster"
},
{
"symbols": [
"ClusterInit",
"ClusterRemove",
"ClusterUp",
"RestoreEtcdSnapshot",
"RestoreEtcdSnapshotFromCli",
"RetrieveClusterStateConfigMap",
"RotateEncryptionKey",
"SnapshotRemoveFromEtcdHosts",
"SnapshotSaveEtcdHosts",
"SnapshotSaveEtcdHostsFromCli",
"getStateFile",
"saveClusterState"
],
"path": "github.com/rancher/rke/cmd"
}
]
}