{"id":"CVE-2023-46254","aliases":["EUVD-2023-2895","GHSA-6758-979h-249x"],"status":"published","title":"Service accounts can see namespaces of other tenants in capsule-proxy","description":"capsule-proxy is a reverse proxy for Capsule kubernetes multi-tenancy framework. A bug in the RoleBinding reflector used by `capsule-proxy` gives ServiceAccount tenant owners the right to list Namespaces of other tenants backed by the same owner kind and name. For example consider two tenants `solar` and `wind`. Tenant `solar`, owned by a ServiceAccount named `tenant-owner` in the Namespace `solar`. Tenant `wind`, owned by a ServiceAccount named `tenant-owner` in the Namespace `wind`. The Tenant owner `solar` would be able to list the namespaces of the Tenant `wind` and vice-versa, although this is not correct. The bug introduces an exfiltration vulnerability since allows the listing of Namespace resources of other Tenants, although just in some specific conditions: 1. `capsule-proxy` runs with the `--disable-caching=false` (default value: `false`) and 2. Tenant owners are ServiceAccount, with the same resource name, but in different Namespaces. This vulnerability doesn't allow any privilege escalation on the outer tenant Namespace-scoped resources, since the Kubernetes RBAC is enforcing this. This issue has been addressed in version 0.4.5. Users are advised to upgrade. There are no known workarounds for this vulnerability.","severity":{"version":"3.1","score":4.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N","level":"medium","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-10","score":0.005,"percentile":0.43211,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-200"],"published":"2023-11-06T18:34:13Z","modified":"2026-10-28T02:30:32Z","fixes":[{"ecosystem":"Go","package":"github.com/projectcapsule/capsule","fixed_in":["0.4.5"],"sources":["ghsa","osv"]},{"ecosystem":"Go","package":"github.com/projectcapsule/capsule-proxy","fixed_in":["0.4.5"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"Go","package":"github.com/projectcapsule/capsule","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"0.4.4"},{"fixed":"0.4.5"}]}]},{"source":"ghsa","ecosystem":"Go","package":"github.com/projectcapsule/capsule-proxy","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"0.4.4"},{"fixed":"0.4.5"}]}]},{"source":"osv","ecosystem":"Go","package":"github.com/projectcapsule/capsule","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"0.4.5"}]}]},{"source":"osv","ecosystem":"Go","package":"github.com/projectcapsule/capsule-proxy","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"0.4.5"}]}]}],"products":[{"vendor":"clastix","product":"capsule"},{"vendor":"clastix","product":"capsule-proxy"},{"vendor":"projectcapsule","product":"capsule-proxy"}],"references":[{"url":"https://github.com/projectcapsule/capsule-proxy/security/advisories/GHSA-6758-979h-249x","tags":["x_refsource_CONFIRM","x_transferred","Vendor Advisory","advisory","web"]},{"url":"https://github.com/projectcapsule/capsule-proxy/commit/615202f7b02eaec7681336bd63daed1f39ae00c5","tags":["x_refsource_MISC","x_transferred","Patch","fix","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2023-46254","tags":["advisory"]},{"url":"https://github.com/projectcapsule/capsule-proxy/releases/tag/v0.4.5","tags":["web"]},{"url":"https://github.com/advisories/GHSA-6758-979h-249x"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2023/46xxx/CVE-2023-46254.json","tags":["advisory"]},{"url":"https://github.com/projectcapsule/capsule-proxy","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2023-46254","title":"Service accounts can see namespaces of other tenants in capsule-proxy","description":"capsule-proxy is a reverse proxy for Capsule kubernetes multi-tenancy framework. A bug in the RoleBinding reflector used by `capsule-proxy` gives ServiceAccount tenant owners the right to list Namespaces of other tenants backed by the same owner kind and name. For example consider two tenants `solar` and `wind`. Tenant `solar`, owned by a ServiceAccount named `tenant-owner` in the Namespace `solar`. Tenant `wind`, owned by a ServiceAccount named `tenant-owner` in the Namespace `wind`. The Tenant owner `solar` would be able to list the namespaces of the Tenant `wind` and vice-versa, although this is not correct. The bug introduces an exfiltration vulnerability since allows the listing of Namespace resources of other Tenants, although just in some specific conditions: 1. `capsule-proxy` runs with the `--disable-caching=false` (default value: `false`) and 2. Tenant owners are ServiceAccount, with the same resource name, but in different Namespaces. This vulnerability doesn't allow any privilege escalation on the outer tenant Namespace-scoped resources, since the Kubernetes RBAC is enforcing this. This issue has been addressed in version 0.4.5. Users are advised to upgrade. There are no known workarounds for this vulnerability.","status":"published","published":"2023-11-06T18:34:13.555Z","modified":"2024-08-02T20:37:40.135Z","cvss":[{"version":"3.1","score":4.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N","level":"medium","assessor":"cna"}],"cwes":["CWE-200"],"updated_at":"2026-11-02T14:35:23.645864Z"}],"euvd":[{"id":"EUVD-2023-2895","description":"capsule-proxy is a reverse proxy for Capsule kubernetes multi-tenancy framework. A bug in the RoleBinding reflector used by `capsule-proxy` gives ServiceAccount tenant owners the right to list Namespaces of other tenants backed by the same owner kind and name. For example consider two tenants `solar` and `wind`. Tenant `solar`, owned by a ServiceAccount named `tenant-owner` in the Namespace `solar`. Tenant `wind`, owned by a ServiceAccount named `tenant-owner` in the Namespace `wind`. The Tenant owner `solar` would be able to list the namespaces of the Tenant `wind` and vice-versa, although this is not correct. The bug introduces an exfiltration vulnerability since allows the listing of Namespace resources of other Tenants, although just in some specific conditions: 1. `capsule-proxy` runs with the `--disable-caching=false` (default value: `false`) and 2. Tenant owners are ServiceAccount, with the same resource name, but in different Namespaces. This vulnerability doesn't allow any privilege escalation on the outer tenant Namespace-scoped resources, since the Kubernetes RBAC is enforcing this. This issue has been addressed in version 0.4.5. Users are advised to upgrade. There are no known workarounds for this vulnerability.","status":"published","published":"2023-11-06T18:34:13Z","modified":"2024-08-02T20:37:40Z","cvss":[{"version":"3.1","score":4.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N","level":"medium"}],"updated_at":"2026-11-03T03:49:58.369276Z"}],"ghsa":[{"id":"GHSA-6758-979h-249x","title":"capsule-proxy service discloses Namespaces of colliding tenants to owners of different tenants with the same ServiceAccount name","description":"### Summary\n\nA bug in the RoleBinding reflector used by `capsule-proxy` gives ServiceAccount tenant owners the right to list Namespaces of other tenants backed by the same owner kind and name.\n\n### Details\n\n- Tenant `solar`, owned by a ServiceAccount named `tenant-owner` in the Namespace `solar`\n- Tenant `wind`, owned by a ServiceAccount named `tenant-owner` in the Namespace `wind`\n\n\u003e Please, notice the same ServiceAccount name, although in different namespaces.\n\nThe Tenant owner `solar` would be able to list the namespaces of the Tenant `wind` and vice-versa, although this is not correct.\n\nThe bug introduces an exfiltration vulnerability since allows the listing of Namespace resources of other Tenants, although just in some specific conditions:\n\n1. `capsule-proxy` runs with the `--disable-caching=false` (default value: `false`)\n2. Tenant owners are ServiceAccount, with the same resource name, but in different Namespaces.\n\nThe CVE doesn't allow any privilege escalation on the outer tenant Namespace-scoped resources, since the Kubernetes RBAC is enforcing this.","status":"published","published":"2023-11-07T21:46:04Z","modified":"2023-11-07T21:46:05Z","cvss":[{"version":"3.1","score":4.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N","level":"medium"}],"cwes":["CWE-200"],"updated_at":"2026-11-02T14:37:15.931647Z"}],"nvd":[{"id":"CVE-2023-46254","description":"capsule-proxy is a reverse proxy for Capsule kubernetes multi-tenancy framework. A bug in the RoleBinding reflector used by `capsule-proxy` gives ServiceAccount tenant owners the right to list Namespaces of other tenants backed by the same owner kind and name. For example consider two tenants `solar` and `wind`. Tenant `solar`, owned by a ServiceAccount named `tenant-owner` in the Namespace `solar`. Tenant `wind`, owned by a ServiceAccount named `tenant-owner` in the Namespace `wind`. The Tenant owner `solar` would be able to list the namespaces of the Tenant `wind` and vice-versa, although this is not correct. The bug introduces an exfiltration vulnerability since allows the listing of Namespace resources of other Tenants, although just in some specific conditions: 1. `capsule-proxy` runs with the `--disable-caching=false` (default value: `false`) and 2. Tenant owners are ServiceAccount, with the same resource name, but in different Namespaces. This vulnerability doesn't allow any privilege escalation on the outer tenant Namespace-scoped resources, since the Kubernetes RBAC is enforcing this. This issue has been addressed in version 0.4.5. Users are advised to upgrade. There are no known workarounds for this vulnerability.","status":"published","published":"2023-11-06T19:15:09.23Z","modified":"2026-06-17T06:30:31.747Z","cvss":[{"version":"3.1","score":4.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N","level":"medium","assessor":"secondary"},{"version":"3.1","score":4.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N","level":"medium","assessor":"primary"}],"cwes":["CWE-200"],"updated_at":"2026-11-02T14:08:43.669554Z"}],"osv":[{"id":"CVE-2023-46254","title":"Service accounts can see namespaces of other tenants in capsule-proxy","description":"capsule-proxy is a reverse proxy for Capsule kubernetes multi-tenancy framework. A bug in the RoleBinding reflector used by `capsule-proxy` gives ServiceAccount tenant owners the right to list Namespaces of other tenants backed by the same owner kind and name. For example consider two tenants `solar` and `wind`. Tenant `solar`, owned by a ServiceAccount named `tenant-owner` in the Namespace `solar`. Tenant `wind`, owned by a ServiceAccount named `tenant-owner` in the Namespace `wind`. The Tenant owner `solar` would be able to list the namespaces of the Tenant `wind` and vice-versa, although this is not correct. The bug introduces an exfiltration vulnerability since allows the listing of Namespace resources of other Tenants, although just in some specific conditions: 1. `capsule-proxy` runs with the `--disable-caching=false` (default value: `false`) and 2. Tenant owners are ServiceAccount, with the same resource name, but in different Namespaces. This vulnerability doesn't allow any privilege escalation on the outer tenant Namespace-scoped resources, since the Kubernetes RBAC is enforcing this. This issue has been addressed in version 0.4.5. Users are advised to upgrade. There are no known workarounds for this vulnerability.","status":"published","published":"2023-11-06T18:34:13.555Z","modified":"2026-10-28T02:30:32.258541249Z","cvss":[{"version":"3.1","score":4.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N","level":"medium"}],"cwes":["CWE-200"],"updated_at":"2026-11-02T15:44:34.287121Z"},{"id":"GHSA-6758-979h-249x","title":"capsule-proxy service discloses Namespaces of colliding tenants to owners of different tenants with the same ServiceAccount name","description":"### Summary\n\nA bug in the RoleBinding reflector used by `capsule-proxy` gives ServiceAccount tenant owners the right to list Namespaces of other tenants backed by the same owner kind and name.\n\n### Details\n\n- Tenant `solar`, owned by a ServiceAccount named `tenant-owner` in the Namespace `solar`\n- Tenant `wind`, owned by a ServiceAccount named `tenant-owner` in the Namespace `wind`\n\n\u003e Please, notice the same ServiceAccount name, although in different namespaces.\n\nThe Tenant owner `solar` would be able to list the namespaces of the Tenant `wind` and vice-versa, although this is not correct.\n\nThe bug introduces an exfiltration vulnerability since allows the listing of Namespace resources of other Tenants, although just in some specific conditions:\n\n1. `capsule-proxy` runs with the `--disable-caching=false` (default value: `false`)\n2. Tenant owners are ServiceAccount, with the same resource name, but in different Namespaces.\n\nThe CVE doesn't allow any privilege escalation on the outer tenant Namespace-scoped resources, since the Kubernetes RBAC is enforcing this.","status":"published","published":"2023-11-07T21:46:04Z","modified":"2026-09-10T03:50:04.08805143Z","cvss":[{"version":"3.1","score":4.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N","level":"medium"}],"cwes":["CWE-200"],"updated_at":"2026-11-02T15:46:39.266402Z"}]}}
