services / Google Cloud / ReplicaSets
Control Kubernetes ReplicaSet objects.
ReplicaSets allow maintaining a desired number of replicas and handle situations like pod failures or manual scaling. Typically, ReplicaSets are not created directly but are managed by a Deployment. When that is the case, the ReplicaSet cannot be updated directly using the `update` endpoints. ReplicaSets expose very similar risks to Deployments, the key privilege being the ability to specify a container image to run in the Pods managed by the ReplicaSet. If coupled with a cluster that can connect to the internet, this opens up arbitrary code execution by fetching and running potentially malicious images. Secondly, creating or updating the replica count of ReplicaSets drains the limited resources available to other Kubernetes workloads.
container.replicaSets.updateScale
Only ReplicaSets without a Deployment may be updated. Updates to ReplicaSets owned by a Deployment will succeed but have no effect on the ReplicaSet. Allows updating the replica count, including setting replicas to 0. If properties other than replicas are updated in the PATCH request, those are quietly ignored. Secondly, increasing the replica count in ReplicaSets drains the limited resources available to other Kubernetes workloads.
Risks
Scope: MEDIUM
This privilege may grant access to confidential data, or its exploit can incur operational cost.
Contributed by P0 Security