Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2026-39967

CVE-2026-39967: TypeBot Information Disclosure Flaw

CVE-2026-39967 is an information disclosure vulnerability in TypeBot that allows authenticated users to access result data from other typebots. This post explains its impact, affected versions, and mitigation steps.

Published:

CVE-2026-39967 Overview

CVE-2026-39967 is an Insecure Direct Object Reference (IDOR) vulnerability [CWE-639] in TypeBot, an open-source chatbot builder tool. The flaw affects versions 3.15.2 and prior. The bot engine's findResult query does not filter results by typebotId, allowing an authenticated user to load result data from a different typebot by supplying a foreign resultId to the startChat endpoint. Successful exploitation exposes previous user answers, session variable values, and the hasStarted flag, potentially leaking personally identifiable information (PII) such as names, emails, and phone numbers. The issue is fixed in version 3.16.0.

Critical Impact

Authenticated attackers can read another user's chatbot session data, including answers and variable values that may contain PII.

Affected Products

  • TypeBot versions 3.15.2 and prior
  • TypeBot bot engine findResult query handler
  • TypeBot startChat endpoint when rememberUser is enabled

Discovery Timeline

  • 2026-05-22 - CVE-2026-39967 published to NVD
  • 2026-05-26 - Last updated in NVD database

Technical Details for CVE-2026-39967

Vulnerability Analysis

The vulnerability resides in the findResult query used by the TypeBot bot engine. The query retrieves stored result records by resultId but fails to scope the lookup to the current typebotId. An authenticated user can pass a resultId belonging to a different typebot to the startChat endpoint and receive that result's stored state. The returned state includes prior answers, session variable values, and the hasStarted flag. When the foreign typebot has collected PII through its conversation flow, that data becomes accessible to the requester.

Root Cause

The root cause is a missing authorization check on a server-side query. The findResult resolver trusts the client-supplied resultId without verifying that the result belongs to the typebot referenced in the request. This is a textbook IDOR pattern: object lookups by identifier without an ownership or tenancy filter.

Attack Vector

Exploitation requires network access, authentication, and several preconditions. The attacker must obtain a valid resultId from another typebot. TypeBot uses CUID2 identifiers, which are cryptographically random 24-character strings, so brute-forcing valid IDs is infeasible. The target typebot must have rememberUser enabled, and the attacker's typebot must declare variable names matching those in the victim's session for variable values to surface. The vulnerability is described in the GitHub Security Advisory GHSA-f475-7m4x-m6mx.

Detection Methods for CVE-2026-39967

Indicators of Compromise

  • Requests to the startChat endpoint where the supplied resultId does not belong to the referenced typebotId.
  • Unusual patterns of authenticated users initiating chats with resultId values that were not previously associated with their sessions.
  • Application logs showing findResult returning records across tenant or typebot boundaries.

Detection Strategies

  • Audit application logs for startChat calls and correlate the resultId parameter with the typebotId of the requesting session.
  • Instrument the findResult query path to log mismatches between a result's typebotId and the typebotId in the active request context.
  • Review database access logs for result row reads that span multiple typebots in short time windows from a single user.

Monitoring Recommendations

  • Alert on authenticated sessions that supply previously unseen resultId values not generated by the current typebot.
  • Track variable-name collisions between typebots, since exploitation depends on shared variable names to surface data.
  • Monitor TypeBot release channels and apply security advisories from the TypeBot repository.

How to Mitigate CVE-2026-39967

Immediate Actions Required

  • Upgrade TypeBot to version 3.16.0 or later, which adds the missing typebotId filter to the findResult query.
  • Review existing typebot configurations and disable rememberUser where it is not strictly required.
  • Rotate or invalidate stored result records that may contain sensitive PII collected on vulnerable versions.

Patch Information

The fix is delivered in TypeBot 3.16.0. The patch updates the findResult resolver to filter results by the active typebotId, blocking cross-typebot result lookups. Patch details are available in the GitHub commit 73162634 and the v3.16.0 release notes.

Workarounds

  • If immediate upgrade is not possible, disable the rememberUser setting on all typebots to prevent prior-session result lookups.
  • Restrict authenticated access to the TypeBot instance and limit account provisioning to trusted users.
  • Avoid collecting sensitive PII in chatbot flows until the patched version is deployed.
bash
# Upgrade TypeBot to the patched release
git fetch --tags
git checkout v3.16.0
npm install
npm run build

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.