← Back to CVE Explorer

CVE-2026-11876

Full vulnerability record from the local CVENow database.

Description

In zenml-io/zenml version 0.94.2, the `GET /api/v1/stack-deployment/stack` endpoint (`get_deployed_stack`) lacks proper RBAC authorization checks, allowing any authenticated user to enumerate all deployed stacks across all users and tenants. This includes stack component details, service connector information, and user IDs of stack owners. The vulnerability arises from two issues: missing endpoint-level RBAC checks and the use of a server-side `Client()` that bypasses the RBAC enforcement layer by directly accessing the database through `SqlZenStore`. This exposes sensitive information such as infrastructure topology, service connector details, stack ownership, and deployment metadata, potentially enabling cross-tenant reconnaissance and further attacks in multi-tenant ZenML Pro/Cloud deployments.

Severity
MEDIUM
CVSS score
5.0 (v3.0)
Vulnerability status
Awaiting Analysis
Source identifier
Published
2026-07-21 15:16:30.480000
Last modified
2026-10-24 20:10:00.137000
View original CVE JSON
{
  "id": "CVE-2026-11876",
  "sourceIdentifier": "[email protected]",
  "published": "2026-07-21T15:16:30.480",
  "lastModified": "2026-10-24T20:10:00.137",
  "vulnStatus": "Awaiting Analysis",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "In zenml-io/zenml version 0.94.2, the `GET /api/v1/stack-deployment/stack` endpoint (`get_deployed_stack`) lacks proper RBAC authorization checks, allowing any authenticated user to enumerate all deployed stacks across all users and tenants. This includes stack component details, service connector information, and user IDs of stack owners. The vulnerability arises from two issues: missing endpoint-level RBAC checks and the use of a server-side `Client()` that bypasses the RBAC enforcement layer by directly accessing the database through `SqlZenStore`. This exposes sensitive information such as infrastructure topology, service connector details, stack ownership, and deployment metadata, potentially enabling cross-tenant reconnaissance and further attacks in multi-tenant ZenML Pro/Cloud deployments."
    },
    {
      "lang": "es",
      "value": "En zenml-io/zenml versión 0.94.2, el endpoint ’GET /api/v1/stack-deployment/stack’ (’get_deployed_stack’) carece de comprobaciones de autorización RBAC adecuadas, permitiendo a cualquier usuario autenticado enumerar todas las pilas desplegadas en todos los usuarios y tenants. Esto incluye detalles de los componentes de la pila, información del conector de servicio y los ID de usuario de los propietarios de la pila. La vulnerabilidad surge de dos problemas: la falta de comprobaciones RBAC a nivel de endpoint y el uso de un ’Client()’ del lado del servidor que omite la capa de aplicación de RBAC accediendo directamente a la base de datos a través de ’SqlZenStore’. Esto expone información sensible como la topología de la infraestructura, detalles del conector de servicio, propiedad de la pila y metadatos de despliegue, lo que podría permitir el reconocimiento entre tenants y ataques adicionales en despliegues multi-tenant de ZenML Pro/Cloud."
    }
  ],
  "affected": [
    {
      "source": "[email protected]",
      "affectedData": [
        {
          "vendor": "zenml-io",
          "product": "zenml-io/zenml",
          "versions": [
            {
              "version": "unspecified",
              "lessThan": "0.95.0",
              "versionType": "custom",
              "status": "affected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {
    "cvssMetricV30": [
      {
        "source": "[email protected]",
        "type": "Secondary",
        "cvssData": {
          "version": "3.0",
          "vectorString": "CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:N/A:N",
          "baseScore": 5.0,
          "baseSeverity": "MEDIUM",
          "attackVector": "NETWORK",
          "attackComplexity": "LOW",
          "privilegesRequired": "LOW",
          "userInteraction": "NONE",
          "scope": "CHANGED",
          "confidentialityImpact": "LOW",
          "integrityImpact": "NONE",
          "availabilityImpact": "NONE"
        },
        "exploitabilityScore": 3.1,
        "impactScore": 1.4
      }
    ],
    "ssvcV203": [
      {
        "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
        "ssvcData": {
          "timestamp": "2026-07-22T18:03:21.298320Z",
          "id": "CVE-2026-11876",
          "options": [
            {
              "exploitation": "poc"
            },
            {
              "automatable": "no"
            },
            {
              "technicalImpact": "partial"
            }
          ],
          "role": "CISA Coordinator",
          "version": "2.0.3"
        }
      }
    ]
  },
  "weaknesses": [
    {
      "source": "[email protected]",
      "type": "Secondary",
      "description": [
        {
          "lang": "en",
          "value": "CWE-862"
        }
      ]
    }
  ],
  "references": [
    {
      "url": "https://github.com/zenml-io/zenml/commit/9ad2c65f24ded22a5a98d289d63a7f629b434b61",
      "source": "[email protected]"
    },
    {
      "url": "https://huntr.com/bounties/3b434e02-0ee9-4b5e-a44b-0988b6f074c7",
      "source": "[email protected]"
    },
    {
      "url": "https://huntr.com/bounties/3b434e02-0ee9-4b5e-a44b-0988b6f074c7",
      "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0"
    }
  ]
}