Overview

FieldValue
ID1081
NameManage Leases in kube-system or kube-node-lease namespace
Risk CategoryTampering
Risk LevelCritical
Role TypeRole
API Groupscoordination.k8s.io
Resourcesleases
Verbscreate, update, patch, delete
TagsControlPlaneDisruption CriticalNamespace DenialOfService Tampering

Description

Allows managing Lease objects in critical namespaces like ‘kube-system’ or ‘kube-node-lease’. This is highly critical as it can disrupt core Kubernetes components, lead to node instability, or denial of service.

Abuse Scenarios

  1. Delete a critical Lease object in the ‘kube-system’ namespace.
kubectl delete lease <lease-name> -n kube-system
# Example: kubectl delete lease kube-scheduler -n kube-system
  1. Update a Lease object to extend its holder identity, potentially hijacking leadership.
# This is complex and requires knowing the current lease holder and its acquireTime.
# It's more of an API interaction than a simple kubectl command.
# Example: kubectl patch lease <lease-name> -n <namespace> --type='json' -p='[{"op": "replace", "path": "/spec/holderIdentity", "value": "malicious-controller"}]'
kubectl patch lease <lease-name> -n <namespace> --type='json' -p='[{"op": "replace", "path": "/spec/holderIdentity", "value": "malicious-controller"}]'