The Apache CloudStack project announces the LTS release of 4.19.3.0 and
4.20.1.0 that includes fixes that address the following security issues:

 - CVE-2025-26521 (severity 'Critical')
 - CVE-2025-30675 (severity 'Low')
 - CVE-2025-47713 (severity 'Critical')
 - CVE-2025-47849 (severity 'Moderate')
 - CVE-2025-22829 (severity 'Low')

# CVE-2025-26521: CKS cluster in Project Exposes User API Keys

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 Projects

A 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 Account
Create 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 Project
Add this account to the project where the Kubernetes cluster(s) are hosted.

3. Generate API and Secret Keys
Generate API Key and Secret Key for the default user of this account.

4. Update the CloudStack Secret in the Kubernetes Cluster
Create 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-config

5. Regenerate API and Secret Keys
Regenerate the API and secret keys for the original user account that was
used to create the Kubernetes cluster.


# CVE-2025-30675: Unauthorised template/ISO list access to the
domain/resource admins

In Apache CloudStack, a flaw in access control affects the listTemplates
and listIsos APIs.
A malicious Domain Admin or Resource Admin can exploit this issue by
intentionally specifying
the 'domainid' parameter along with the 'filter=self' or
'filter=selfexecutable' values.
This allows the attacker to gain unauthorized visibility into templates and
ISOs under the ROOT domain.
A malicious admin can enumerate and extract metadata of templates and ISOs
that belong to unrelated
domains, violating isolation boundaries and potentially exposing sensitive
or internal configuration details.

This vulnerability has been fixed by ensuring the domain resolution
strictly adheres to the caller's scope
rather than defaulting to the ROOT domain.

Affected users are recommended to upgrade to Apache CloudStack 4.19.3.0 or
4.20.1.0.

# CVE-2025-47713: Domain Admin can reset Admin password in Root Domain

A privilege escalation vulnerability exists in Apache CloudStack versions
4.10.0.0 through 4.20.0.0
where a malicious Domain Admin user in the ROOT domain can reset the
password of user-accounts
of Admin role type. This operation is not appropriately restricted and
allows the attacker to assume control
over higher-privileged user-accounts. A malicious Domain Admin attacker can
impersonate an Admin
user-account and gain access to sensitive APIs and resources that could
result in the compromise of
resource integrity and confidentiality, data loss, denial of service, and
availability of infrastructure
managed by CloudStack.

Users are recommended to upgrade to Apache CloudStack 4.19.3.0 or 4.20.1.0,
which fixes the issue with the following:

Strict validation on Role Type hierarchy: the caller's user-account role
must be equal to or higher than the target user-account's role.
API privilege comparison: the caller must possess all privileges of the
user they are operating on.
Two new domain-level settings (restricted to the default Admin):
- role.types.allowed.for.operations.on.accounts.of.same.role.type: Defines
which role types are allowed to act on users of the same role type.
Default: "Admin, DomainAdmin, ResourceAdmin".
   - allow.operations.on.users.in.same.account: Allows/disallows user
operations within the same account. Default: true.


# CVE-2025-47849: Insecure access of user's API/Secret Keys in the same
domain

A privilege escalation vulnerability exists in Apache CloudStack versions
4.10.0.0 through 4.20.0.0
where a malicious Domain Admin user in the ROOT domain can get the API key
and secret key of
user-accounts of Admin role type in the same domain. This operation is not
appropriately restricted
and allows the attacker to assume control over higher-privileged
user-accounts. A malicious Domain Admin attacker can impersonate an Admin
user-account and gain access to sensitive APIs and resources that could
result in the compromise of resource integrity and confidentiality, data
loss, denial of service, and availability of infrastructure managed by
CloudStack.

Users are recommended to upgrade to Apache CloudStack 4.19.3.0 or 4.20.1.0,
which fixes the issue with the following:

Strict validation on Role Type hierarchy: the caller's role must be equal
to or higher than the target user's role.
API privilege comparison: the caller must possess all privileges of the
user they are operating on.
Two new domain-level settings (restricted to the default admin):
- role.types.allowed.for.operations.on.accounts.of.same.role.type: Defines
which role types are allowed to act on users of the same role type.
Default: "Admin, DomainAdmin, ResourceAdmin".
- allow.operations.on.users.in.same.account: Allows/disallows user
operations within the same account. Default: true.


# CVE-2025-22829: Unauthorised access to dedicated resources in Quota plugin

The CloudStack Quota plugin has an improper privilege management logic in
version 4.20.0.0.
Anyone with authenticated user-account access in CloudStack 4.20.0.0
environments, where this plugin is
enabled and has access to specific APIs can enable or disable reception of
quota-related emails for any
account in the environment and list their configurations.

Quota plugin users using CloudStack 4.20.0.0 are recommended to upgrade to
CloudStack version 4.20.1.0, which fixes this issue.

# Credits

The CVEs are credited to the following reporters:

## CVE-2025-26521:

- Wei Zhou (weiz...@apache.org)

## CVE-2025-30675:

- Bernardo <bernardomg2...@gmail.com>

## CVE-2025-47713:

- Scott Schmitz <sschm...@ussignal.com>

## CVE-2025-47849:

- Kevin <kl...@apple.com>
- Scott Schmitz <sschm...@ussignal.com>

## CVE-2025-22829:

- Fabricio Duarte <fabricio.duarte...@gmail.com>

# Affected versions

## CVE-2025-26521:
- Apache CloudStack 4.17.0.0 through 4.19.2.0
- Apache CloudStack 4.17.0.0 through 4.20.0.0

## CVE-2025-30675:
- Apache CloudStack 4.0.0 through 4.19.2.0
- Apache CloudStack 4.0.0 through 4.20.0.0

## CVE-2025-47713:
- Apache CloudStack 4.10.0.0 through 4.19.2.0
- Apache CloudStack 4.10.0.0 through 4.20.0.0

## CVE-2025-47849:
- Apache CloudStack 4.10.0.0 through 4.19.2.0
- Apache CloudStack 4.10.0.0 through 4.20.0.0

## CVE-2025-22829:
- Apache CloudStack 4.20.0.0

# Resolution

Users are recommended to upgrade to version 4.19.3.0, 4.20.1.0 or later,
which addresses these issues. Additionally, users on a version older than
4.20.0.0 are advised to skip 4.20.0.0 and upgrade to 4.20.1.0 instead.

# Downloads and Documentation

The official source code for the 4.19.3.0 and 4.20.1.0 releases can be
downloaded from the project downloads page:

https://cloudstack.apache.org/downloads

The 4.19.3.0 and 4.20.1.0 release notes can be found at:

- https://docs.cloudstack.apache.org/en/4.19.3.0/releasenotes/about.html
- https://docs.cloudstack.apache.org/en/4.20.1.0/releasenotes/about.html

In addition to the official source code release, individual contributors
have
also made release packages available on the Apache CloudStack download
page, and available at:

- https://download.cloudstack.org/el/7/
- https://download.cloudstack.org/el/8/
- https://download.cloudstack.org/el/9/
- https://download.cloudstack.org/suse/15/
- https://download.cloudstack.org/ubuntu/dists/
- https://www.shapeblue.com/cloudstack-packages/

Reply via email to