Skip to main content
VulnerabilityPublished Updated

CVE-2025-26521: Apache CloudStack · Information Exposure

Affects Apache CloudStackSource CVE Database V5

0

Not known to be exploited · CVSS 8.1 High · fixed in 4.19.3.0 : patch Apache CloudStack soon.

Data as of 26 Oct 2026, 10:12 UTC

CVSS 3.1 base score
8.1High
How severe the flaw is on the 0–10 CVSS scale.
EPSS
0.6% chance of exploitation in 30 days – higher than 51% of CVEsExploit Prediction Scoring System: the likelihood attackers will use this flaw soon.
Patch
Available – fixed in 4.19.3.0
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N

Exploitation evidence

  1. Disclosed: evidence found.

    CVE published 10 Jun 2025

  2. Detectable: no evidence on record.

    No public nuclei template indexed

  3. Weaponised: no evidence on record.

    No public exploit code indexed in Metasploit or Exploit-DB

  4. Exploited in the wild: no evidence on record.

    Not in CISA KEV and no source reports exploitation

  5. Observed by OffSeq Mirage: no evidence on record.

    No attack traffic recorded by OffSeq Mirage sensors

A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 26 Oct 2026.

What to do

Affected software

ProductAffectedFixed in
Mavenorg.apache.cloudstack/cloudstackpkg:maven/org.apache.cloudstack/cloudstackOther threatsAffected
  • =4.17.0.0
  • =4.20.0.0
Fixed in–

Check your own hosts for these packages with threat-finder (opens in a new tab), our free open-source scanner.

AI-suggested

  1. Upgrade Apache CloudStack to versions 4.19.3.0 or 4.20.1.0 where the vulnerability is fixed.
  2. Implement the recommended service account model: create a dedicated service account with the 'Project Kubernetes Service Role' for Kubernetes cluster management, limiting permissions to only what is necessary.
  3. Add the service account to the relevant project and generate new API and secret keys for it.
  4. Update the Kubernetes cluster secret to use the new service account credentials by deleting the existing 'cloudstack-secret' and creating a new one with the updated keys.
  5. Regenerate the original user's API and secret keys to invalidate any exposed credentials.
  6. Review project membership and Kubernetes cluster access controls to ensure only authorized users have access.
  7. Monitor API key usage and audit logs for suspicious activity related to Kubernetes clusters and project resources.
  8. Educate administrators and users about the risks of credential exposure within shared projects and enforce the principle of least privilege for all accounts. These steps go beyond generic patching by restructuring credential management and access control to minimize future exposure risks.

Description

When an Apache CloudStack user-account creates a CKS-based Kubernetes cluster in a project, the API key and the secret key of the 'kubeadmin' user of the caller account are used to create the secret config in the CKS-based Kubernetes cluster. A member of the project who can access the CKS-based Kubernetes cluster, can also access the API key and secret key of the 'kubeadmin' user of the CKS cluster's creator's account. An attacker who's a member of the project can exploit this to impersonate and perform privileged actions that can result in complete compromise of the confidentiality, integrity, and availability of resources owned by the creator's account. CKS users are recommended to upgrade to version 4.19.3.0 or 4.20.1.0, which fixes this issue.Updating Existing Kubernetes Clusters in ProjectsA service account should be created for each project to provide limited access specifically for Kubernetes cluster providers and autoscaling. Follow the steps below to create a new service account, update the secret inside the cluster, and regenerate existing API and service keys:1. Create a New Service AccountCreate a new account using the role "Project Kubernetes Service Role" with the following details: Account Name kubeadmin-<FIRST_EIGHT_CHARACTERS_OF_PROJECT_ID> First Name Kubernetes Last Name Service User Account Type 0 (Normal User) Role ID <ID_OF_SERVICE_ROLE> 2. Add the Service Account to the ProjectAdd this account to the project where the Kubernetes cluster(s) are hosted.3. Generate API and Secret KeysGenerate API Key and Secret Key for the default user of this account.4. Update the CloudStack Secret in the Kubernetes ClusterCreate a temporary file `/tmp/cloud-config` with the following data:    api-url = <API_URL>     # For example: <MS_URL>/client/api   api-key = <SERVICE_USER_API_KEY>   secret-key = <SERVICE_USER_SECRET_KEY>   project-id = <PROJECT_ID> Delete the existing secret using kubectl and Kubernetes cluster config:    ./kubectl --kubeconfig kube.conf -n kube-system delete secret cloudstack-secret Create a new secret using kubectl and Kubernetes cluster config:     ./kubectl --kubeconfig kube.conf -n kube-system create secret generic cloudstack-secret --from-file=/tmp/cloud-config Remove the temporary file:     rm /tmp/cloud-config5. Regenerate API and Secret KeysRegenerate the API and secret keys for the original user account that was used to create the Kubernetes cluster.

References

Community reviews

Loading reviews…