CVE-2026-39966: baptisteArno TypeBot IDOR in getLinkedTypebots API

CVE-2026-39966 · Severity: medium · CVSS 6.5 · Published 2026-05-22

TypeBot, a chatbot builder tool, contains a security flaw that allows any logged-in user to view the private chatbot configurations of other organizations. By referencing a target chatbot's ID, an attacker can bypass security checks to access sensitive information, including conversation flows, API keys, and private customer data. This could lead to the exposure of corporate credentials and the theft of intellectual property or personal information stored within the chatbot's logic.

Quick answers

Is CVE-2026-39966 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-39966 being exploited in the wild.
How severe is CVE-2026-39966?
Medium severity, with a CVSS score of 6.5, published 22 May 2026.
Which products and versions are affected?
baptisteArno typebot.io <= 3.15.2.
Is there a fix for CVE-2026-39966?
A patch was published on 2026-04-08: Version 3.16.0 released with fix Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-39966 attacked?
It is attacked over the network, in a network appliance.
Am I affected by CVE-2026-39966?
Check whether anything you run is named in the advisory. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

Technical details

An Insecure Direct Object Reference (IDOR) exists in the `getLinkedTypebots` API endpoint due to an incorrect implementation of an authorization check. The vulnerable code in `apps/builder/src/features/blocks/logic/typebotLink/api/getLinkedTypebots.ts` uses `Array.prototype.filter()` with an `async` callback. Because `filter()` is synchronous, it does not await the callback's Promise, treating the returned Promise object as a truthy value for every element. Consequently, the `isReadTypebotForbidden` check is effectively bypassed, allowing any authenticated user to retrieve full bot definitions (including variables, webhooks, and logic) from any workspace by providing the target bot's ID. This has been patched in version 3.16.0 by properly awaiting the authorization predicates using `Promise.all()`.

Affected products

  • baptisteArno typebot.io <= 3.15.2

Timeline

  • 2026-04-06: other: Vulnerability verified in Docker environment by researcher
  • 2026-04-08: patched: Version 3.16.0 released with fix
  • 2026-05-22: advisory: GitHub Security Advisory published

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.