Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain valid agent bot API token
-
ExploitCall conversations create endpoint with foreign source_id
-
ExecutionServer resolves ContactInbox unscoped to account
-
ImpactCreate/retrieve conversation and post messages to another account's contacts
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Object-level authorization, IDOR prevention
|
| Exploitation Conditions | The attacker must be an authenticated agent bot holding a valid Chatwoot API access token (PR:L) and must supply a source_id that corresponds to a contact inbox belonging to a different account. The practical limiting factors are: valid agent bot credentials are required (not an unauthenticated attacker), the attacker must know or obtain a foreign account's valid contact-inbox source_id (reflected as AT:P), and the affected deployment must run Chatwoot before 4.17.0. Impact is bounded to creating/retrieving conversations and posting messages to the targeted account's contacts; there is no availability impact and no confirmed subsequent-system impact. Risk is meaningful primarily on shared/multi-tenant instances where multiple accounts coexist. |
| Impact | All decision signals point to a genuinely low-priority issue rather than a high-CVSS-but-overrated one - indeed the CVSS itself is low. The source-provided CVSS 4.0 base score is 2.3 with vector AV:N/AC:L/AT:P/PR:L/UI:N and only VC:L/VI:L/VA:N, and the vuln.today decision label is 'monitor'. PR:L confirms this requires an authenticated principal (an agent bot with a valid API access token), and AT:P reflects that successful exploitation depends on the attacker obtaining a valid contact-inbox source_id belonging to another account - a value outside the attacker's direct control. There is no CISA KEV listing and no EPSS probability was supplied in the input, so widespread or automated exploitation cannot be inferred; no public exploit code was identified either. The impact is confined to creating/retrieving conversations and posting messages to another account's contacts (low confidentiality and integrity, no availability or subsequent-system impact). The cross-account/multi-tenant nature is the only aggravating factor and matters mainly for shared SaaS or multi-tenant Chatwoot deployments, but the low impact metrics and the authenticated-plus-foreign-source_id prerequisite keep real-world risk low and likely targeted rather than opportunistic. EPSS data is missing from the input, so probabilistic exploitation likelihood could not be cross-checked. |
| Exploit ScenarioDerived | On a multi-tenant Chatwoot instance, an attacker who controls an agent bot in their own account obtains its API access token and calls the conversations create endpoint supplying a source_id that belongs to a contact inbox in a different account. Because the pre-4.17.0 lookup resolves the ContactInbox by source_id without scoping it to the caller's account, the attacker can create or retrieve conversations and post messages to the victim account's contacts. No public exploit was identified; the fix PR and its accompanying spec test demonstrate the mechanism. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 23, 2026
An authorization bypass in Chatwoot before 4.17.0 lets an authenticated agent bot use a foreign account's contact-inbox source_id against the conversations create endpoint to create or retrieve conversations and post messages to another account's contacts. Exploitation requires a valid agent bot API access token plus prior knowledge of a valid source_id belonging to a different account, so impact is bounded to cross-account conversation and message manipulation on multi-tenant or shared instances, with no availability impact. The vendor has released a fix in Chatwoot 4.17.0; no public exploit code, CISA KEV entry, or confirmed active exploitation was identified at time of analysis, and the aggregated priority decision is monitor.
RemediationAI
Vendor-released patch: upgrade Chatwoot to 4.17.0 or later, which replaces the unscoped ContactInbox.find_by!(source_id: ...) lookup with one restricted to the current account's inboxes so foreign source_ids return 404; the change is in PR 15521 (commit 2d173978fcd64e6927b407c171095a3a7ceb03dd) and the release notes are at https://github.com/chatwoot/chatwoot/releases/tag/v4.17.0, with the vendor advisory at https://github.com/chatwoot/chatwoot/pull/15521 and https://www.vulncheck.com/advisories/chatwoot-before-4.17.0-cross-account-authorization-bypass-via-source-id. Until the upgrade is applied, the practical interim control is to restrict agent bot API token issuance on multi-tenant instances to trusted integrations and to audit existing bots, since a valid agent bot access token is a hard prerequisite for the attack - the trade-off is reduced automation and bot functionality for any integration that cannot be reviewed promptly. Because the exploit also depends on knowing a valid source_id from another account, reviewing logs for conversations create requests whose source_id does not correspond to the token's own account will surface attempted abuse; deployments running a single account are effectively shielded by the multi-tenant precondition alone.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The flaw is CWE-639 (Authorization Bypass Through User-Controlled Key), a classic insecure direct object reference in a Ruby on Rails controller. In Chatwoot 4.16.2 the conversations controller resolves the contact inbox with ContactInbox.find_by!(source_id: params[:source_id]) - a global lookup keyed solely on the client-supplied source_id with no scoping to the account bound to the requesting API token, and the inbox policy (inbox_policy.rb) governs inbox permissions but not this contact-inbox resolution. Because source_id values are per-contact-inbox identifiers rather than account-scoped secrets, a bot token issued for one account can present a source_id belonging to another account and have the record resolved anyway, letting the create-conversation path attach to a foreign contact. The upstream fix (PR 15521, commit 2d173978) replaces the global find with a scoped lookup: it uses the already-resolved inbox's contact_inboxes when an inbox is present, otherwise it joins contact_inboxes to inboxes and filters on inboxes.account_id = Current.account.id, so a mismatched source_id now raises RecordNotFound (HTTP 404) instead of succeeding. Regression specs added in the same PR confirm that a bot cannot create a conversation in another account from its source_id while still succeeding for a source_id in its own account. The affected CPE is the generic Chatwoot product range, with EUVD listing 0 through versions prior to 4.17.0.
Know when Chatwoot gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N
Authenticated agent bot (PR:L) over the network API (AV:N); needing a valid foreign source_id maps to AC:H; low confidentiality and integrity, no availability impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
Chatwoot before 4.17.0 contains an authorization bypass vulnerability that allows authenticated agent bots to access other accounts by supplying a foreign contact inbox source_id. Attackers can call the conversations create endpoint with another account's source_id to create or retrieve conversations and post messages to that account's contacts.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Impact varies for each individual vulnerability in the application. Rated critical severity (CVSS 9.8), this vulnerabili
Unauthenticated arbitrary blob creation in Chatwoot before 4.16.0 lets remote attackers abuse the ActiveStorage direct-u
chatwoot is vulnerable to Inefficient Regular Expression Complexity. Rated high severity (CVSS 7.5), this vulnerability
Improper Authorization in GitHub repository chatwoot/chatwoot prior to 2.8. Rated high severity (CVSS 7.1), this vulnera
Cross-site Scripting (XSS) - DOM in GitHub repository chatwoot/chatwoot prior to 2.7.0. Rated medium severity (CVSS 6.1)
Origin validation flaw in Chatwoot's embeddable chat Widget (versions up to and including 4.7.0) allows an attacker-infl
Insecure Storage of Sensitive Information in GitHub repository chatwoot/chatwoot prior to 2.6.0. Rated medium severity (
Cross-site Scripting (XSS) - Stored in GitHub repository chatwoot/chatwoot prior to 2.5.0. Rated medium severity (CVSS 5
A stored cross-site scripting (XSS) vulnerability exists in chatwoot/chatwoot versions 3.0.0 to 3.5.1. Rated medium seve
SQL injection in Chatwoot versions 2.2.0 through 4.11.1 allows any authenticated account user to execute arbitrary SQL v
Pre-Account Takeover in Chatwoot's OmniAuth integration affects all releases from 2.14.0 through 4.12.x, allowing an att
Chatwoot's multi-tenant API fails to restrict the `account_id` parameter in four controllers (Portals, Automation Rules,
EUVD-2026-108713
GHSA-8r78-9655-cv92
NVD
CVE.org
EPSS
Exploit-DB