CVE-2023-46254 (GCVE-0-2023-46254)

Vulnerability from cvelistv5 – Published: 2023-11-06 18:34 – Updated: 2024-08-02 20:37
VLAI?
Summary
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.
CWE
  • CWE-200 - Exposure of Sensitive Information to an Unauthorized Actor
Assigner
Impacted products
Show details on NVD website

{
  "containers": {
    "adp": [
      {
        "providerMetadata": {
          "dateUpdated": "2024-08-02T20:37:40.135Z",
          "orgId": "af854a3a-2127-422b-91ae-364da2661108",
          "shortName": "CVE"
        },
        "references": [
          {
            "name": "https://github.com/projectcapsule/capsule-proxy/security/advisories/GHSA-6758-979h-249x",
            "tags": [
              "x_refsource_CONFIRM",
              "x_transferred"
            ],
            "url": "https://github.com/projectcapsule/capsule-proxy/security/advisories/GHSA-6758-979h-249x"
          },
          {
            "name": "https://github.com/projectcapsule/capsule-proxy/commit/615202f7b02eaec7681336bd63daed1f39ae00c5",
            "tags": [
              "x_refsource_MISC",
              "x_transferred"
            ],
            "url": "https://github.com/projectcapsule/capsule-proxy/commit/615202f7b02eaec7681336bd63daed1f39ae00c5"
          }
        ],
        "title": "CVE Program Container"
      }
    ],
    "cna": {
      "affected": [
        {
          "product": "capsule-proxy",
          "vendor": "projectcapsule",
          "versions": [
            {
              "status": "affected",
              "version": "\u003c 0.4.5"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "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\u0027t 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."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "attackComplexity": "LOW",
            "attackVector": "NETWORK",
            "availabilityImpact": "NONE",
            "baseScore": 4.3,
            "baseSeverity": "MEDIUM",
            "confidentialityImpact": "LOW",
            "integrityImpact": "NONE",
            "privilegesRequired": "LOW",
            "scope": "UNCHANGED",
            "userInteraction": "NONE",
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N",
            "version": "3.1"
          }
        }
      ],
      "problemTypes": [
        {
          "descriptions": [
            {
              "cweId": "CWE-200",
              "description": "CWE-200: Exposure of Sensitive Information to an Unauthorized Actor",
              "lang": "en",
              "type": "CWE"
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2023-11-06T18:34:13.555Z",
        "orgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
        "shortName": "GitHub_M"
      },
      "references": [
        {
          "name": "https://github.com/projectcapsule/capsule-proxy/security/advisories/GHSA-6758-979h-249x",
          "tags": [
            "x_refsource_CONFIRM"
          ],
          "url": "https://github.com/projectcapsule/capsule-proxy/security/advisories/GHSA-6758-979h-249x"
        },
        {
          "name": "https://github.com/projectcapsule/capsule-proxy/commit/615202f7b02eaec7681336bd63daed1f39ae00c5",
          "tags": [
            "x_refsource_MISC"
          ],
          "url": "https://github.com/projectcapsule/capsule-proxy/commit/615202f7b02eaec7681336bd63daed1f39ae00c5"
        }
      ],
      "source": {
        "advisory": "GHSA-6758-979h-249x",
        "discovery": "UNKNOWN"
      },
      "title": "Service accounts can see namespaces of other tenants in capsule-proxy"
    }
  },
  "cveMetadata": {
    "assignerOrgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
    "assignerShortName": "GitHub_M",
    "cveId": "CVE-2023-46254",
    "datePublished": "2023-11-06T18:34:13.555Z",
    "dateReserved": "2023-10-19T20:34:00.949Z",
    "dateUpdated": "2024-08-02T20:37:40.135Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.1",
  "vulnerability-lookup:meta": {
    "fkie_nvd": {
      "configurations": "[{\"nodes\": [{\"operator\": \"OR\", \"negate\": false, \"cpeMatch\": [{\"vulnerable\": true, \"criteria\": \"cpe:2.3:a:clastix:capsule:*:*:*:*:*:*:*:*\", \"versionEndExcluding\": \"0.4.5\", \"matchCriteriaId\": \"0A4C4DC0-2E0E-4FA7-92DA-30E31FC51CC9\"}, {\"vulnerable\": true, \"criteria\": \"cpe:2.3:a:clastix:capsule-proxy:*:*:*:*:*:*:*:*\", \"versionEndExcluding\": \"0.4.5\", \"matchCriteriaId\": \"ECFAD73A-15CD-473C-8D55-645E5E5E395F\"}]}]}]",
      "descriptions": "[{\"lang\": \"en\", \"value\": \"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\u0027t 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.\"}, {\"lang\": \"es\", \"value\": \"Capsule-proxy es un proxy inverso para el framework multi-tenancy de Capsule Kubernetes. Un bug en el reflector RoleBinding utilizado por `capsule-proxy` otorga a los propietarios de tenants de ServiceAccount el derecho de enumerar espacios de nombres de otros tenants respaldados por el mismo tipo y nombre de propietario. Por ejemplo, considere dos tenant \\\"\\\"\\\"\\\"solar\\\"\\\"\\\"\\\" y \\\"\\\"\\\"\\\"wind\\\"\\\"\\\"\\\". El tenant \\\"\\\"\\\"\\\"solar\\\"\\\"\\\"\\\", propiedad de una cuenta de servicio denominada \\\"\\\"\\\"\\\"tenant-owner\\\"\\\"\\\"\\\" en el espacio de nombres \\\"\\\"\\\"\\\"solar\\\"\\\"\\\"\\\". El tenant \\\"\\\"\\\"\\\"wind\\\"\\\"\\\"\\\", propiedad de una cuenta de servicio denominada \\\"\\\"\\\"\\\"tenant-owner\\\"\\\"\\\"\\\" en el espacio de nombres \\\"\\\"\\\"\\\"wind\\\"\\\"\\\"\\\". El propietario del inquilino \\\"\\\"\\\"\\\"solar\\\"\\\"\\\"\\\" podr\\u00eda enumerar los espacios de nombres del inquilino \\\"\\\"\\\"\\\"wind\\\"\\\"\\\"\\\" y viceversa, aunque esto no es correcto. El error introduce una vulnerabilidad de exfiltraci\\u00f3n ya que permite enumerar los recursos del espacio de nombres de otros tenant, aunque solo en algunas condiciones espec\\u00edficas:\\n1. `capsule-proxy` se ejecuta con `--disable-caching=false` (valor predeterminado: `false` ) y \\n2. Los propietarios de los tenant son ServiceAccount, con el mismo nombre de recurso, pero en diferentes espacios de nombres.\\nEsta vulnerabilidad no permite ninguna escalada de privilegios en los recursos con \\u00e1mbito de espacio de nombres del inquilino externo, ya que Kubernetes RBAC lo est\\u00e1 aplicando. \\nEste problema se solucion\\u00f3 en la versi\\u00f3n 0.4.5. Se recomienda a los usuarios que actualicen. No se conocen workarounds para esta vulnerabilidad.\"}]",
      "id": "CVE-2023-46254",
      "lastModified": "2024-11-21T08:28:10.743",
      "metrics": "{\"cvssMetricV31\": [{\"source\": \"security-advisories@github.com\", \"type\": \"Secondary\", \"cvssData\": {\"version\": \"3.1\", \"vectorString\": \"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N\", \"baseScore\": 4.3, \"baseSeverity\": \"MEDIUM\", \"attackVector\": \"NETWORK\", \"attackComplexity\": \"LOW\", \"privilegesRequired\": \"LOW\", \"userInteraction\": \"NONE\", \"scope\": \"UNCHANGED\", \"confidentialityImpact\": \"LOW\", \"integrityImpact\": \"NONE\", \"availabilityImpact\": \"NONE\"}, \"exploitabilityScore\": 2.8, \"impactScore\": 1.4}, {\"source\": \"nvd@nist.gov\", \"type\": \"Primary\", \"cvssData\": {\"version\": \"3.1\", \"vectorString\": \"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N\", \"baseScore\": 4.3, \"baseSeverity\": \"MEDIUM\", \"attackVector\": \"NETWORK\", \"attackComplexity\": \"LOW\", \"privilegesRequired\": \"LOW\", \"userInteraction\": \"NONE\", \"scope\": \"UNCHANGED\", \"confidentialityImpact\": \"LOW\", \"integrityImpact\": \"NONE\", \"availabilityImpact\": \"NONE\"}, \"exploitabilityScore\": 2.8, \"impactScore\": 1.4}]}",
      "published": "2023-11-06T19:15:09.230",
      "references": "[{\"url\": \"https://github.com/projectcapsule/capsule-proxy/commit/615202f7b02eaec7681336bd63daed1f39ae00c5\", \"source\": \"security-advisories@github.com\", \"tags\": [\"Patch\"]}, {\"url\": \"https://github.com/projectcapsule/capsule-proxy/security/advisories/GHSA-6758-979h-249x\", \"source\": \"security-advisories@github.com\", \"tags\": [\"Vendor Advisory\"]}, {\"url\": \"https://github.com/projectcapsule/capsule-proxy/commit/615202f7b02eaec7681336bd63daed1f39ae00c5\", \"source\": \"af854a3a-2127-422b-91ae-364da2661108\", \"tags\": [\"Patch\"]}, {\"url\": \"https://github.com/projectcapsule/capsule-proxy/security/advisories/GHSA-6758-979h-249x\", \"source\": \"af854a3a-2127-422b-91ae-364da2661108\", \"tags\": [\"Vendor Advisory\"]}]",
      "sourceIdentifier": "security-advisories@github.com",
      "vulnStatus": "Modified",
      "weaknesses": "[{\"source\": \"security-advisories@github.com\", \"type\": \"Secondary\", \"description\": [{\"lang\": \"en\", \"value\": \"CWE-200\"}]}, {\"source\": \"nvd@nist.gov\", \"type\": \"Primary\", \"description\": [{\"lang\": \"en\", \"value\": \"NVD-CWE-noinfo\"}]}]"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2023-46254\",\"sourceIdentifier\":\"security-advisories@github.com\",\"published\":\"2023-11-06T19:15:09.230\",\"lastModified\":\"2024-11-21T08:28:10.743\",\"vulnStatus\":\"Modified\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"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\u0027t 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.\"},{\"lang\":\"es\",\"value\":\"Capsule-proxy es un proxy inverso para el framework multi-tenancy de Capsule Kubernetes. Un bug en el reflector RoleBinding utilizado por `capsule-proxy` otorga a los propietarios de tenants de ServiceAccount el derecho de enumerar espacios de nombres de otros tenants respaldados por el mismo tipo y nombre de propietario. Por ejemplo, considere dos tenant \\\"\\\"\\\"\\\"solar\\\"\\\"\\\"\\\" y \\\"\\\"\\\"\\\"wind\\\"\\\"\\\"\\\". El tenant \\\"\\\"\\\"\\\"solar\\\"\\\"\\\"\\\", propiedad de una cuenta de servicio denominada \\\"\\\"\\\"\\\"tenant-owner\\\"\\\"\\\"\\\" en el espacio de nombres \\\"\\\"\\\"\\\"solar\\\"\\\"\\\"\\\". El tenant \\\"\\\"\\\"\\\"wind\\\"\\\"\\\"\\\", propiedad de una cuenta de servicio denominada \\\"\\\"\\\"\\\"tenant-owner\\\"\\\"\\\"\\\" en el espacio de nombres \\\"\\\"\\\"\\\"wind\\\"\\\"\\\"\\\". El propietario del inquilino \\\"\\\"\\\"\\\"solar\\\"\\\"\\\"\\\" podr\u00eda enumerar los espacios de nombres del inquilino \\\"\\\"\\\"\\\"wind\\\"\\\"\\\"\\\" y viceversa, aunque esto no es correcto. El error introduce una vulnerabilidad de exfiltraci\u00f3n ya que permite enumerar los recursos del espacio de nombres de otros tenant, aunque solo en algunas condiciones espec\u00edficas:\\n1. `capsule-proxy` se ejecuta con `--disable-caching=false` (valor predeterminado: `false` ) y \\n2. Los propietarios de los tenant son ServiceAccount, con el mismo nombre de recurso, pero en diferentes espacios de nombres.\\nEsta vulnerabilidad no permite ninguna escalada de privilegios en los recursos con \u00e1mbito de espacio de nombres del inquilino externo, ya que Kubernetes RBAC lo est\u00e1 aplicando. \\nEste problema se solucion\u00f3 en la versi\u00f3n 0.4.5. Se recomienda a los usuarios que actualicen. No se conocen workarounds para esta vulnerabilidad.\"}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"security-advisories@github.com\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N\",\"baseScore\":4.3,\"baseSeverity\":\"MEDIUM\",\"attackVector\":\"NETWORK\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"LOW\",\"integrityImpact\":\"NONE\",\"availabilityImpact\":\"NONE\"},\"exploitabilityScore\":2.8,\"impactScore\":1.4},{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N\",\"baseScore\":4.3,\"baseSeverity\":\"MEDIUM\",\"attackVector\":\"NETWORK\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"LOW\",\"integrityImpact\":\"NONE\",\"availabilityImpact\":\"NONE\"},\"exploitabilityScore\":2.8,\"impactScore\":1.4}]},\"weaknesses\":[{\"source\":\"security-advisories@github.com\",\"type\":\"Secondary\",\"description\":[{\"lang\":\"en\",\"value\":\"CWE-200\"}]},{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"description\":[{\"lang\":\"en\",\"value\":\"NVD-CWE-noinfo\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:a:clastix:capsule:*:*:*:*:*:*:*:*\",\"versionEndExcluding\":\"0.4.5\",\"matchCriteriaId\":\"0A4C4DC0-2E0E-4FA7-92DA-30E31FC51CC9\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:a:clastix:capsule-proxy:*:*:*:*:*:*:*:*\",\"versionEndExcluding\":\"0.4.5\",\"matchCriteriaId\":\"ECFAD73A-15CD-473C-8D55-645E5E5E395F\"}]}]}],\"references\":[{\"url\":\"https://github.com/projectcapsule/capsule-proxy/commit/615202f7b02eaec7681336bd63daed1f39ae00c5\",\"source\":\"security-advisories@github.com\",\"tags\":[\"Patch\"]},{\"url\":\"https://github.com/projectcapsule/capsule-proxy/security/advisories/GHSA-6758-979h-249x\",\"source\":\"security-advisories@github.com\",\"tags\":[\"Vendor Advisory\"]},{\"url\":\"https://github.com/projectcapsule/capsule-proxy/commit/615202f7b02eaec7681336bd63daed1f39ae00c5\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Patch\"]},{\"url\":\"https://github.com/projectcapsule/capsule-proxy/security/advisories/GHSA-6758-979h-249x\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Vendor Advisory\"]}]}}"
  }
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.


Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…