Summary
CVE-2026-63765 is a high-severity authentication bypass (CWE-306: Missing Authentication for Critical Function) in Chatwoot, the open-source customer support and live-chat platform, affecting all versions prior to 4.16.0. Unauthenticated remote attackers can exploit a missing authentication check in the direct uploads controller to create arbitrary ActiveStorage blobs across any tenant account and obtain signed PUT URLs to write arbitrary data to the application’s storage backend. The CVSS v3.1 base score is 8.2 (HIGH).
Technical details
- Root cause: The
DirectUploadsControllerfor conversations inherits from Rails’ActiveStorage::DirectUploadsControllerinstead of Chatwoot’s authenticated API base class. This architectural flaw causes theauthenticate_user!before-action filter — present inApi::BaseController— to be entirely bypassed. The remaining authorization gate (EnsureCurrentAccountHelper#ensure_current_account) short-circuits onif current_user, which evaluates tonilfor unauthenticated requests. - Affected endpoint:
POST /api/v1/accounts/:account_id/conversations/:conversation_id/direct_uploads - Trigger conditions: Any unauthenticated HTTP request to the above endpoint with valid blob metadata is sufficient — no credentials, session, or user interaction required.
- Attack flow: An attacker sends an unauthenticated POST with blob metadata; the controller resolves any account by ID and any conversation via its sequential
display_id(a trivially guessable integer), then returns a signed, single-use PUT URL directly from Rails ActiveStorage. - Impact: Unauthenticated attackers can create storage blobs and stage arbitrary file content on the application’s configured storage backend (local disk, Amazon S3, Google Cloud Storage, etc.) across any tenant account in a multi-tenant deployment. This enables: storage exhaustion and denial of service via resource consumption; cross-tenant blob creation and database pollution; and attacker-controlled file staging on the application’s own storage domain prior to any authentication.
Affected software
- Chatwoot — all versions before 4.16.0
Severity
- CVSS v3.1 Base Score: 8.2 (HIGH)
- Vector:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:L
Mitigation and recommended actions
- Immediate: Upgrade to Chatwoot v4.16.0 or later. The fix enforces authentication on the direct uploads controller by adding
include AccessTokenAuthHelperandbefore_action :authenticate_user!, ensuring only authenticated agents with appropriate conversation access can initiate file uploads. - If immediate upgrade is not feasible: Restrict network-level access to the
/api/v1/accounts/*/conversations/*/direct_uploadsendpoint at the reverse proxy or WAF layer to authenticated session origins only. Monitor storage usage for unexpected blob creation activity.
IONIX Status
The IONIX research team is tracking ongoing exploitation attempts and recommends immediate patching. Potentially affected assets are outlined in this post.

