CVE-2026-39966
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
- Versión: 3.1
- Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
- Puntuación base: 6.5
Probabilidad de explotación (EPSS)
- Probabilidad de explotación en los próximos 30 días: 0.44%
- Percentil entre todas las CVEs puntuadas: 36
- Fecha de la puntuación: 6/10/2026
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
- CWE-863
Referencias
- https://github.com/baptisteArno/typebot.io/commit/b9530a089b43bfa6e79e3ff9cbfab921ce832f45
- https://github.com/baptisteArno/typebot.io/releases/tag/v3.16.0
- https://github.com/baptisteArno/typebot.io/security/advisories/GHSA-3fr5-999r-84qj
- https://github.com/baptisteArno/typebot.io/security/advisories/GHSA-3fr5-999r-84qj
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"
}