Headline
CVE-2023-22480: Unauthorized access to system API
KubeOperator is an open source Kubernetes distribution focused on helping enterprises plan, deploy and operate production-level K8s clusters. In KubeOperator versions 3.16.3 and below, API interfaces with unauthorized entities and can leak sensitive information. This vulnerability could be used to take over the cluster under certain conditions. This issue has been patched in version 3.16.4.
Summary
Unauthorized access refers to the ability to bypass the system’s preset permission settings to access some API interfaces. The attack exploits a flaw in how online applications handle routing permissions.
Affected Version
<= v3.16.3
Patches
The vulnerability has been fixed in v3.16.3.
7ef42bf
Workarounds
It is recommended to upgrade the version to v3.16.4.
For more information
If you have any questions or comments about this advisory, please open an issue.
This vulnerability is reported by @suanve.
References
https://github.com/KubeOperator/KubeOperator/releases/tag/v3.16.4
Related news
### Summary API interfaces with unauthorized access will leak sensitive information /api/v1/clusters/kubeconfig/<clusterName> ### Details Routes using v1 without any restrictions <img width="930" alt="image" src="https://user-images.githubusercontent.com/35884266/211258033-84aa14fb-01d5-459c-af81-e48b7552fabf.png"> Directly pass in `downloadKubeconfig` according to the cluster name <img width="960" alt="image" src="https://user-images.githubusercontent.com/35884266/211258011-d885fda6-06c3-4603-be4a-38d9c9b918b4.png"> pkg/router/v1/white.go no restrictions ```go func downloadKubeconfig(ctx context.Context) { clusterName := ctx.Params().GetString("name") ctx.Header("Content-Disposition", "attachment") ctx.Header("filename", fmt.Sprintf("%s-config", clusterName)) ctx.Header("Content-Type", "application/download") clusterService := service.NewClusterService() str, err := clusterService.GetKubeconfig(clusterName) if err != nil { _, _ = ctx.JSON(err) ctx.StatusCode(http.StatusI...