CVE-2026-47704 is an authorization bypass in TypeBot's webhook resume handler where the system validates access against typebotId and blockId, then discards that context entirely when resolving the session via resultId. The authorization check and the execution operate on different entities with no reconciliation—an IDOR pattern wearing microservices clothing. The 7.1 CVSS likely understates the actual risk: the vulnerability lets an attacker inject JSON that advances a victim's suspended session, which then fires webhooks to external services using the victim's IP reputation and authentication context. The victim's flow becomes a weapon against third-party systems that trust the webhook source—CRM updates, ticket creation, or payment processing if the flow supports those integrations. This isn't just data integrity; it's trust inheritance through a compromised intermediary. The patch in version 3.17.0 fixes this specific instance, but the underlying pattern—authorizing against entity A while operating on entity B—likely exists elsewhere in the codebase. The webhook resume path appears to be legacy code that predates the current authorization model, making it a forgotten surface that escaped prior security hardening cycles. Audit your deployment for other cross-module identifier compositions where neither module validates the other's context. More critically, review what your webhook destinations do with incoming state—those downstream integrations are where the actual blast radius accumulates, and they're rarely revisited during patch cycles.
CVE-2026-47704
Official description Straight from the sourceThe vendor's or NVD's own wording, published unedited. Authoritative, but often terse — it says what broke, rarely what to do.
NVD · uneditedTypeBot is a chatbot builder tool. Prior to version 3.17.0, an authenticated user who has read access to any typebot can resume a waiting webhook session that belongs to a different typebot by mixing an authorized `typebotId` and `blockId` and a foreign live `resultId`. The webhook resume handler authorizes the parent typebot first, but then resolves the descendant `result` only by `resultId`. As a result, an attacker can inject arbitrary webhook JSON into another typebot's suspended session and advance its execution without any access to the victim typebot. Version 3.17.0 patches the issue.
Technical summary Written by usOur analysis, written from the advisory, the CVSS vector and the affected-version data. It adds context the advisory leaves out, and never invents facts that are not in the source.
dbcve analysisThe application uses a user-supplied identifier to look up a record without checking that the requester actually owns it, so changing the identifier in a request returns someone else's data. This is the classic insecure-direct-object-reference — the change-the-ID-in-the-URL bug. Remediation is authorizing every object access against the acting user, not merely confirming they are logged in.
General guidance for the authorization bypass (idor) class — the official description and references above are authoritative for this specific CVE. Want a bespoke review and a reviewed fix? Ask our team →
CVSS breakdown How the score is builtThe industry scoring standard. It rates how the flaw is reached, what it takes to exploit, and what an attacker gains — the score is derived from those, not the other way round.
From the vector- Attack vector
- Network
- Complexity
- Low
- Privileges
- Low
- Authentication
- X
- User interaction
- None
- Scope
- X
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Remediation Closing itWhat it takes to close this. Where a vendor fix exists we point at it; where none exists we say so plainly, and can build one. Effort estimates are scoped from the advisory, not from your codebase.
dbcve · scopedUpgrade to TypeBot version 3.17.0 or later
- Upgrade TypeBot to version 3.17.0 or later to remediate the IDOR vulnerability
- After upgrading, verify that the webhook resume handler properly validates that the resultId belongs to the authorized typebot before allowing session resumption
- Test that users can no longer resume webhook sessions belonging to typebots they do not have access to, even if they provide a valid resultId from another typebot
Generated from the published advisory — verify against the referenced sources before acting.
There is no version to upgrade to and no patch to apply. Every affected install stays exposed until the vendor ships a fix — or somebody else builds one.
Free. We build fixes in the order the community asks for them — and we’ll tell you the moment this one lands.
We develop and verify an original fix where the vendor hasn’t, from $4,900. Deployed to your staging first — never straight to production.
Scope it with usSee what else the community needs solved on the solutions-needed board.
Scan for this in your stack
Free · runs locallyCheck whether your project pulls in CVE-2026-47704 — or any other known-vulnerable package — straight from your lock files. Free and open source; it runs locally and uploads nothing.
References Go to the primary sourcePrimary sources — vendor advisories, patches and trackers. Where our summary and a reference disagree, the reference wins.
Primary sourcesCVE-2026-47704 is an authorization bypass in TypeBot's webhook resume handler where the system validates access against typebotId and blockId, then discards that context entirely when resolving the session via resultId. The authorization check and the execution operate on different entities with no reconciliation—an IDOR pattern wearing microservices clothing. The 7.1 CVSS likely understates the actual risk: the vulnerability lets an attacker inject JSON that advances a victim's suspended session, which then fires webhooks to external services using the victim's IP reputation and authentication context. The victim's flow becomes a weapon against third-party systems that trust the webhook source—CRM updates, ticket creation, or payment processing if the flow supports those integrations. This isn't just data integrity; it's trust inheritance through a compromised intermediary. The patch in version 3.17.0 fixes this specific instance, but the underlying pattern—authorizing against entity A while operating on entity B—likely exists elsewhere in the codebase. The webhook resume path appears to be legacy code that predates the current authorization model, making it a forgotten surface that escaped prior security hardening cycles. Audit your deployment for other cross-module identifier compositions where neither module validates the other's context. More critically, review what your webhook destinations do with incoming state—those downstream integrations are where the actual blast radius accumulates, and they're rarely revisited during patch cycles.
Practitioner notes
ContributedPeer-ranked notes from engineers who’ve handled CVE-2026-47704 in production — separate from our analysis above.
The advisory tells you what broke. It rarely tells you what actually worked. If you’ve dealt with this one, that detail is what the next engineer is searching for.
- The version that genuinely resolved it — not the one the vendor claimed
- A config change or rule that shut the vector down
- A gotcha in the upgrade path that cost you an afternoon
A place for practitioners to share what actually worked: a mitigation you’ve tested, a configuration change, a version- or environment-specific caveat, or a link to a verified patch. The most useful notes rise to the top as peers upvote them, so the signal stays high.
- Verified mitigations, workarounds, and config changes
- Version or environment caveats, and links to real fixes
- No weaponised exploit code, or anything meant to cause harm
- No spam, self-promotion, credentials, or personal data