CVE-2026-30963
Namespace Hijacking via Subresource API in Capsule
Publication date: 2026-06-01
Last updated on: 2026-06-01
Assigner: GitHub, Inc.
Description
Description
CVSS Scores
EPSS Scores
| Probability: | |
| Percentile: |
Meta Information
Affected Vendors & Products
| Vendor | Product | Version / Range |
|---|---|---|
| projectcapsule | capsule | to 0.12.5 (exc) |
| projectcapsule | capsule | to 0.13.0 (inc) |
Helpful Resources
Exploitability
| CWE ID | Description |
|---|---|
| CWE-20 | The product receives input or data, but it does not validate or incorrectly validates that the input has the properties that are required to process the data safely and correctly. |
Attack-Flow Graph
AI Powered Q&A
Can you explain this vulnerability to me?
This vulnerability affects Capsule, a multi-tenancy and policy-based framework for Kubernetes. Capsule uses a webhook to validate update requests on namespaces to prevent namespace hijacking. However, before version 0.13.0, the webhook did not intercept update requests made through the namespace/finalize and namespace/status subresource APIs, which can also modify namespace metadata. If a tenant administrator has permission to modify these subresources, they can exploit this gap to perform namespace hijacking.
How can this vulnerability impact me? :
This vulnerability allows a tenant administrator with certain permissions to hijack namespaces by modifying namespace metadata through subresource APIs that were not properly validated. This can lead to unauthorized changes within Kubernetes namespaces, potentially compromising isolation between tenants, leading to data leakage, unauthorized access, or disruption of services.
What immediate steps should I take to mitigate this vulnerability?
To mitigate this vulnerability, upgrade Capsule to version 0.13.0 or later, which includes a fix for the issue.
Alternatively, add the two subresources namespaces and namespaces/status (with namespace/finalize within it) to the resources list in the ValidatingWebhookConfiguration rules to ensure the webhook intercepts update requests targeting these subresources.
How does this vulnerability affect compliance with common standards and regulations (like GDPR, HIPAA)?:
The vulnerability allows namespace hijacking by tenant administrators with certain permissions, potentially enabling unauthorized access or control over namespaces belonging to other tenants.
Such unauthorized access could lead to exposure or modification of sensitive data managed within those namespaces, which may impact compliance with data protection regulations like GDPR or HIPAA that require strict access controls and data integrity.
However, the vulnerability requires high privileges and user interaction, and its impact on confidentiality, integrity, and availability is rated as limited (CVSS score 3.9).
Mitigations include updating the webhook configuration to intercept relevant subresource API calls and restricting permissions, which can help maintain compliance by preventing unauthorized namespace modifications.
How can this vulnerability be detected on my network or system? Can you suggest some commands?
This vulnerability can be detected by checking if the Capsule ValidatingWebhookConfiguration includes interception rules for the subresources `namespaces/status` and `namespace/finalize`. If these subresources are not included, the system is vulnerable.
Additionally, you can audit Kubernetes RBAC permissions to identify if any tenant administrators have permissions to patch `namespaces/status` or `namespace/finalize` subresources, which would allow exploitation.
Suggested commands to detect potential exposure:
- Check the ValidatingWebhookConfiguration for Capsule to see if it includes the required subresources:
- kubectl get validatingwebhookconfiguration capsule-webhook -o yaml | grep -A 10 rules
- Look for `namespaces/status` and `namespace/finalize` in the `resources` list under the webhook rules.
- Audit RBAC permissions for tenant administrators with patch access to these subresources:
- kubectl get clusterrolebindings,rolebindings --all-namespaces -o yaml | grep -B 5 -A 5 'patch.*namespaces/status\|patch.*namespace/finalize'
- Or more specifically, check roles with permissions on these subresources:
- kubectl get clusterrole <role-name> -o yaml | grep -A 10 rules
By combining these checks, you can detect if your system is vulnerable to namespace hijacking via this CVE.