« Volver al listado

CVE-2026-39966

Estado: AplazadaMedia (6.5)—

TypeBot is a chatbot builder tool. In versions 3.15.2, the getLinkedTypebots API endpoint returns full bot definitions to any authenticated user who references a target bot ID in a Typebot Link block, regardless of workspace ownership, leading to IDOR. The authorization check uses Array.filter() with an async callback — since filter() is synchronous, the callback always returns a truthy Promise, so the access control predicate is never actually evaluated. Any authenticated Typebot user can read the full definition of any other workspace's private bots, including: all conversation blocks and logic flow, variable values embedded in the bot (credentials, API keys, PII), webhook URLs and integration configurations. This issue has been fixed in version 3.16.0.

CVSS

Probabilidad de explotación (EPSS)

EPSS (Exploit Prediction Scoring System, de FIRST) estima la probabilidad de que una vulnerabilidad sea explotada en 30 días. Complementa a CVSS (impacto) y a CISA KEV (explotación confirmada).

Tecnologías afectadas (1)

⚠ Inferidas por IA a partir de la descripción — NVD aún no ha analizado esta CVE; no son CPE verificados.

CWE

Referencias

JSON original (NVD)

Mostrar
{
  "id": "CVE-2026-39966",
  "cveTags": [],
  "metrics": {
    "ssvcV203": [
      {
        "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
        "ssvcData": {
          "id": "CVE-2026-39966",
          "role": "CISA Coordinator",
          "options": [
            {
              "exploitation": "poc"
            },
            {
              "automatable": "no"
            },
            {
              "technicalImpact": "partial"
            }
          ],
          "version": "2.0.3",
          "timestamp": "2026-05-22T19:03:43.970750Z"
        }
      }
    ],
    "cvssMetricV31": [
      {
        "type": "Secondary",
        "source": "security-advisories@github.com",
        "cvssData": {
          "scope": "UNCHANGED",
          "version": "3.1",
          "baseScore": 6.5,
          "attackVector": "NETWORK",
          "baseSeverity": "MEDIUM",
          "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N",
          "integrityImpact": "NONE",
          "userInteraction": "NONE",
          "attackComplexity": "LOW",
          "availabilityImpact": "NONE",
          "privilegesRequired": "LOW",
          "confidentialityImpact": "HIGH"
        },
        "impactScore": 3.6,
        "exploitabilityScore": 2.8
      }
    ]
  },
  "affected": [
    {
      "source": "security-advisories@github.com",
      "affectedData": [
        {
          "vendor": "baptisteArno",
          "product": "typebot.io",
          "versions": [
            {
              "status": "affected",
              "version": "< 3.16.0"
            }
          ]
        }
      ]
    }
  ],
  "published": "2026-05-22T19:17:03.110",
  "references": [
    {
      "url": "https://github.com/baptisteArno/typebot.io/commit/b9530a089b43bfa6e79e3ff9cbfab921ce832f45",
      "source": "security-advisories@github.com"
    },
    {
      "url": "https://github.com/baptisteArno/typebot.io/releases/tag/v3.16.0",
      "source": "security-advisories@github.com"
    },
    {
      "url": "https://github.com/baptisteArno/typebot.io/security/advisories/GHSA-3fr5-999r-84qj",
      "source": "security-advisories@github.com"
    },
    {
      "url": "https://github.com/baptisteArno/typebot.io/security/advisories/GHSA-3fr5-999r-84qj",
      "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0"
    }
  ],
  "vulnStatus": "Deferred",
  "weaknesses": [
    {
      "type": "Secondary",
      "source": "security-advisories@github.com",
      "description": [
        {
          "lang": "en",
          "value": "CWE-863"
        }
      ]
    }
  ],
  "descriptions": [
    {
      "lang": "en",
      "value": "TypeBot is a chatbot builder tool. In versions 3.15.2, the getLinkedTypebots API endpoint returns full bot definitions to any authenticated user who references a target bot ID in a Typebot Link block, regardless of workspace ownership, leading to IDOR. The authorization check uses Array.filter() with an async callback — since filter() is synchronous, the callback always returns a truthy Promise, so the access control predicate is never actually evaluated. Any authenticated Typebot user can read the full definition of any other workspace's private bots, including: all conversation blocks and logic flow, variable values embedded in the bot (credentials, API keys, PII), webhook URLs and integration configurations. This issue has been fixed in version 3.16.0."
    },
    {
      "lang": "es",
      "value": "TypeBot es una herramienta de creación de chatbots. En las versiones 3.15.2, el endpoint de la API getLinkedTypebots devuelve definiciones completas de bots a cualquier usuario autenticado que referencia un ID de bot objetivo en un bloque Typebot Link, independientemente de la propiedad del espacio de trabajo, lo que lleva a IDOR. La comprobación de autorización utiliza Array.filter() con una devolución de llamada asíncrona - dado que filter() es síncrono, la devolución de llamada siempre devuelve una Promise verdadera, por lo que el predicado de control de acceso nunca se evalúa realmente. Cualquier usuario autenticado de Typebot puede leer la definición completa de los bots privados de cualquier otro espacio de trabajo, incluyendo: todos los bloques de conversación y el flujo lógico, valores de variables incrustados en el bot (credenciales, claves de API, PII), URL de webhook y configuraciones de integración. Este problema ha sido solucionado en la versión 3.16.0."
    }
  ],
  "lastModified": "2026-07-23T16:10:00.137",
  "sourceIdentifier": "security-advisories@github.com"
}