Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconAuthenticate as low-privilege account user
-
DeliveryIdentify date or number custom attribute
-
ExploitCraft filter payload with is_greater_than operator
-
InstallInject time-based blind SQL into values field
-
C2POST to conversations or contacts filter API
-
ExecuteMeasure response latency to extract data bit by bit
-
ImpactExfiltrate cross-tenant or system data
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Parameterized queries, prepared statements
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Persistence The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires an authenticated Chatwoot user (CVSS PR:L) with access to at least one account that can invoke the filter APIs at /api/v1/accounts/{account_id}/conversations/filter, /api/v1/accounts/{account_id}/contacts/filter, or /api/v1/accounts/{account_id}/custom_attribute_definitions, and the target account must have at least one custom attribute defined with type date or number against which the attacker can submit a filter using the is_greater_than or is_less_than operator - string-type attributes and other operators are not vulnerable. Limiting factors are that the attacker must already hold valid account credentials (no anonymous path), the injection is blind/time-based (no direct error or content oracle, slowing extraction), and the affected deployment must run a Chatwoot version in the 2.2.0-4.11.1 range; instances upgraded to 4.11.2 are not exploitable. |
| Impact | The CVSS vector AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:L/A:N indicates a remotely reachable, low-complexity flaw requiring only low-privilege authentication and producing a scope change with high confidentiality impact - consistent with a tenant-scoped account user reading data outside their authorization boundary via blind SQLi. EPSS is very low (0.03%, 8th percentile) and SSVC marks Exploitation as none, Automatable as no, and Technical Impact as partial, and the issue is not on CISA KEV - so real-world exploitation pressure is currently minimal even though the technical severity is high. The signals are internally consistent (no KEV, no POC, low EPSS, SSVC partial), but defenders should note that 'authenticated user with access to an account' in Chatwoot multi-tenant SaaS or self-hosted instances can be a very low bar (e.g., any agent or invited user), so the practical privilege barrier is weaker than PR:L might suggest in isolation. |
| Exploit ScenarioDerived | An attacker registers or is invited as a low-privilege agent in a Chatwoot account, then sends a POST to /api/v1/accounts/{account_id}/conversations/filter with a filter targeting a date or number custom attribute and the is_greater_than operator, embedding a time-based blind SQL payload (e.g., a CASE/pg_sleep construct) in the values field. By measuring response latency across many crafted requests, the attacker exfiltrates data from other tenants' rows or system tables one bit at a time. No public exploit identified at time of analysis, but the technique is straightforward for any operator familiar with blind SQLi tooling such as sqlmap once the injection point is known. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jun 08, 2026
SQL injection in Chatwoot versions 2.2.0 through 4.11.1 allows any authenticated account user to execute arbitrary SQL via time-based blind injection by abusing unparameterized values in custom-attribute filter operators on the conversation, contact, and custom attribute definition APIs. No public exploit identified at time of analysis, and EPSS exploitation probability is very low (0.03%, 8th percentile), but CVSS 8.5 with scope-changed confidentiality impact reflects the ability to read data beyond the attacker's account boundary. The vulnerability is fixed in Chatwoot 4.11.2.
RemediationAI
Upgrade Chatwoot to 4.11.2 or later, which is the vendor-released patch that adds parameterization for the is_greater_than and is_less_than operators on date and number custom attributes; see the GitHub Security Advisory at https://github.com/chatwoot/chatwoot/security/advisories/GHSA-9pgm-75gg-6948 for the authoritative fix reference. If immediate upgrade is not possible, compensating controls include restricting access to /api/v1/accounts/{account_id}/conversations/filter, /api/v1/accounts/{account_id}/contacts/filter, and /api/v1/accounts/{account_id}/custom_attribute_definitions at a reverse proxy or WAF layer with rules that reject filter payloads containing SQL meta-characters in the values field for numeric/date attributes, and tightening account membership and role assignments so that only fully trusted users hold accounts that can invoke filter APIs - both controls trade off legitimate filtering and onboarding flexibility against risk reduction. Database-side hardening such as enforcing least privilege for the Chatwoot DB role (revoking unnecessary read access to non-Chatwoot schemas) limits blast radius if injection is achieved but does not block the vulnerability itself.
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
Chatwoot is an open-source customer engagement and support platform written primarily in Ruby on Rails, where dynamic filter APIs translate user-supplied filter payloads into ActiveRecord/SQL queries. The root cause is CWE-89 (Improper Neutralization of Special Elements used in an SQL Command): when a filter targets a custom attribute of type date or number and uses the is_greater_than or is_less_than operators, the values field is interpolated directly into the generated SQL string instead of being passed as a bound parameter. Because numeric and date comparison operators are not wrapped in the parameterization path that string operators use, the user-controlled value becomes part of the query text, enabling injection. Per the CPE (cpe:2.3:a:chatwoot:chatwoot) and EUVD data, all Chatwoot deployments at versions 2.2.0 through 4.11.1 are affected.
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
AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:L/A:N
Primary rating from Vendor (GitHub_M) · only source for this CVE.
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
Chatwoot is a customer engagement suite. From 2.2.0 to before 4.11.2, a SQL injection vulnerability exists in the conversation and contact filter APIs. When filtering by a custom attribute of type date or number using the is_greater_than or is_less_than operators, user-supplied values in the values field of the filter payload are interpolated directly into the SQL query without parameterization. Any authenticated user with access to an account can exploit this to execute arbitrary SQL via time-based blind injection. This affects /api/v1/accounts/{account_id}/conversations/filter, /api/v1/accounts/{account_id}/contacts/filter, and /api/v1/accounts/{account_id}/custom_attribute_definitions. This vulnerability is fixed in 4.11.2.
Executive ViewAI
Chatwoot versions 2.2.0-4.11.1 contain a SQL injection vulnerability (CVSS 8.5) that allows any authenticated user to access sensitive customer data across the entire database without authorization. This creates immediate risk of customer data exposure affecting customer trust, competitive position, and regulatory compliance. A patch is available in version 4.11.2 and requires urgent deployment.
Apply vendor patch.
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
SQL injection exploits the way applications construct database queries by mixing user input directly into SQL statements.
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)
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
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,
Cross-site scripting (XSS) in Chatwoot up to version 4.7.0 allows remote attackers to inject malicious scripts via the L
Server-side request forgery in Chatwoot's Shopify OAuth integration allows an authenticated user to make the Chatwoot se
EUVD-2026-31913
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB