Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain Tenant update privilege
-
DeliveryPersist malformed ForbiddenAnnotations.Regex
-
ExploitWebhook validates wrong field, accepts it
-
ExecutionTenant triggers namespace create/update
-
Persistregexp.MustCompile panics
-
ImpactNamespace operations denied for tenant
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V2 - Validation and Business Logic Input validation, allowlisting
|
| Exploitation Conditions | Requires Capsule 0.13.0 through 0.13.6 and an actor with permission to update a Tenant custom resource (tenant owner or cluster admin with Tenant write access) - this is a privileged, largely self-inflicted denial of service. The specific trigger is setting Spec.NamespaceOptions.ForbiddenAnnotations.Regex to a value that is not a valid Go regexp (e.g. '(', '[', '(?P<') while leaving ForbiddenLabels.Regex valid so the update webhook accepts it; the panic only manifests later, on namespace create/update for the affected tenant. Limiting factors: high privilege requirement (PR:H, no unauthenticated path), impact confined to the affected tenant's namespace operations rather than the whole cluster, and no confidentiality or integrity impact. |
| Impact | This is a genuine but low-urgency availability issue, not a high-impact priority. The CVSS 3.1 vector (AV:N/AC:L/PR:H/UI:N/S:C/C:N/I:N/A:H, base 6.8) correctly reflects a pure denial-of-service (C:N/I:N) that requires high privileges (PR:H) - specifically the ability to update a Tenant custom resource in Capsule. No EPSS score, no CISA KEV listing, and no public exploit are present in the input, so exploitation status is 'no public exploit identified at time of analysis' (the linked PR contains only e2e regression tests, which validate the fix rather than weaponize the flaw). The signals are internally consistent: a config-validation bug reachable only by a privileged tenant/cluster administrator, whose worst outcome is that Capsule denies namespace create/update operations for the affected tenant. The tag 'Information Disclosure' CONFLICTS with the vector (C:N means no confidentiality impact) - this is a mislabeling, not a confidentiality issue. The S:C (scope change) rating is defensible (a webhook mis-validation causes denial in downstream namespace operations) but arguable; S:U would also be reasonable, marginally lowering the score. |
| Exploit ScenarioDerived | A user with rights to update a Tenant object (e.g., a delegated tenant owner or cluster admin) sets ForbiddenAnnotations.Regex to a malformed pattern such as '(' while keeping the labels regex valid; the update webhook mistakenly validates only ForbiddenLabels.Regex and accepts it. Later, any namespace create or update for that tenant reaches pkg/api/forbidden_list.go, where regexp.MustCompile panics on the stored bad expression and blocks the operation, denying namespace management for the tenant. No public exploit code exists; the only demonstration is the vendor's e2e test using invalid regexes like '(', '[', '*invalid'. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 18, 2026
Capsule 0.13.0 through 0.13.6 accepts a malformed ForbiddenAnnotations.Regex on Tenant updates because the update webhook validates ForbiddenLabels.Regex for both the labels and annotations checks, letting a privileged tenant administrator persist a bad regular expression that later panics Capsule's forbidden-metadata validator and blocks namespace creation and updates for the affected tenant. Exploitation requires authenticated, high-privileged access - a Tenant update permission (tenant owner or cluster admin with Tenant write access, CVSS PR:H) - and the impact is a tenant-scoped denial of service with no confidentiality or integrity effect (AV:N/AC:L/PR:H/UI:N/S:C/C:N/I:N/A:H, CWE-20). There is no public exploit identified at time of analysis, no CISA KEV listing, and the issue is fixed in version 0.13.7, making this a genuine but low-urgency availability bug rather than a high-impact priority.
RemediationAI
Upgrade Capsule to v0.13.7 (https://github.com/projectcapsule/capsule/releases/tag/v0.13.7), which is the vendor-released patch containing the fix from PR https://github.com/projectcapsule/capsule/pull/1983 (commit 8d89d6865df6f41c7faa22fc9e807a57b01bfd0e); see the advisory at https://github.com/projectcapsule/capsule/security/advisories/GHSA-gxjc-74v5-3vx3 for details. Since the malformed regex is persisted before the panic occurs, patch plus cleanup is required: after upgrading, audit existing Tenant objects for Spec.NamespaceOptions.ForbiddenAnnotations.Regex values that do not compile as Go regular expressions (common invalid samples include '(', '[', '*invalid', '(?P<') and remove or correct them, because the upgraded webhook only blocks new writes. The most effective compensating control is to tighten RBAC on the tenants.capsule.clastix.io resource so only a small set of fully trusted cluster administrators can update Tenants, removing tenant-owner self-service update rights; the trade-off is reduced tenant autonomy and more manual cluster-admin work for tenant lifecycle changes. If full RBAC restriction is impractical, add a CI/admission policy layer that independently validates every ForbiddenAnnotations and ForbiddenLabels regex value on Tenant writes, at the cost of maintaining duplicate validation logic. There is no configuration switch that disables the affected forbidden-metadata validation, so patching or RBAC restriction is the only reliable mitigation; note that the impact is confined to the affected tenant's namespace operations, so cluster-wide outage risk is limited.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in go, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Capsule (projectcapsule:capsule, CPE cpe:2.3:a:projectcapsule:capsule:*:*:*:*:*:*:*:*) is a Kubernetes multi-tenancy framework that enforces policy on Tenant custom resources (capsulev1beta2). Tenants carry NamespaceOptions with ForbiddenLabels and ForbiddenAnnotations lists, each of which can hold a user-supplied Go regular expression used to forbid metadata on namespaces belonging to that tenant. The root cause is CWE-20 improper input validation implemented as a copy-paste defect in internal/webhook/tenant/validation/forbidden_annotations_regex.go: the Tenant update path compiles ForbiddenLabels.Regex for both the labels scope and the annotations scope, so a value placed in ForbiddenAnnotations.Regex is never syntactically validated on update. Because the labels expression remains valid, the admission webhook admits the object and the malformed annotation regex is persisted in etcd. The failure is deferred rather than immediate: when a namespace is created or updated, pkg/api/forbidden_list.go compiles the stored expression with regexp.MustCompile (rather than regexp.Compile), which panics on invalid input such as '(', '[', '*invalid' or '(?P<', aborting the reconciliation and denying namespace operations for that tenant. The S:C scope-change rating reflects that the vulnerable component (the webhook/controller path) is authorized differently from the Tenant object that the attacker controls. Regression tests added in PR 1983 confirm the create path already rejected invalid regexes for both labels and annotations, while the update path did not, and the fix also hardens handling of nil Tenant/NamespaceOptions and skips empty expressions.
Know when Capsule gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:H/UI:N/S:C/C:N/I:N/A:H
Exploitation needs Tenant-update rights (PR:H) via the K8s API (AV:N/AC:L); impact is availability-only denial of namespace operations (A:H, C:N/I:N), with S:C for the downstream namespace scope.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
Capsule is a multi-tenancy and policy-based framework for Kubernetes. From 0.13.0 until 0.13.7, the Tenant update validation in internal/webhook/tenant/validation/forbidden_annotations_regex.go compiles ForbiddenLabels.Regex for both the labels and annotations checks instead of validating ForbiddenAnnotations.Regex. An administrator who can update a Tenant can therefore persist a malformed ForbiddenAnnotations.Regex while leaving the labels expression valid. Namespace creation or update later passes the stored expression through pkg/api/forbidden_list.go, where regexp.MustCompile can panic during forbidden metadata validation and deny namespace operations for the affected tenant. This issue is fixed in version 0.13.7.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Capsule is a multi-tenancy and policy-based framework for Kubernetes. Rated high severity (CVSS 8.8), this vulnerability
Capsule, the Kubernetes multi-tenancy and policy framework (projectcapsule/capsule), mishandles case-insensitive sorting
In Capsule 0.13.0 through 0.13.6, the Tenant validating admission webhook's hostnameRegexHandler.OnUpdate passes the new
Privilege escalation in Capsule (Kubernetes multi-tenancy framework) versions 0.13.0-0.13.7 allows authenticated Tenant
Capsule is a multi-tenancy and policy-based framework for Kubernetes. Rated high severity (CVSS 8.8), this vulnerability
Capsule's node admission webhook can be crashed cluster-wide by a Cluster Admin who stores a malformed regular expressio
capsule-proxy is a reverse proxy for Capsule kubernetes multi-tenancy framework. Rated medium severity (CVSS 4.3), this
EUVD-2026-83055
GHSA-gxjc-74v5-3vx3
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB