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

CVE-2026-49141: WACRM Authorization Bypass Vulnerability

CVE-2026-49141 is an authorization bypass flaw in WACRM's automation engine allowing attackers to access and modify contacts across tenant boundaries. This post covers technical details, affected versions, impact, and mitigation.

Published:

CVE-2026-49141 Overview

CVE-2026-49141 is an authorization bypass vulnerability [CWE-639] in WACRM, an open-source customer relationship management application. The flaw resides in the automation engine endpoint, which accepts a caller-controlled contact_id in the POST request body without validating tenant ownership. Authenticated attackers can read and modify contact records belonging to other tenants using only a known contact UUID.

The automation engine uses a service-role client that bypasses row-level security, amplifying the impact across tenant boundaries. The vulnerability affects WACRM commits prior to 73041bf.

Critical Impact

Authenticated tenants can modify cross-tenant contact fields including name, email, and company, breaking multi-tenant isolation guarantees.

Affected Products

  • WACRM (ArnasDon/wacrm) prior to commit 73041bf
  • Self-hosted WACRM deployments using the automation engine endpoint
  • Multi-tenant WACRM instances relying on row-level security for isolation

Discovery Timeline

  • 2026-06-08 - CVE-2026-49141 published to NVD
  • 2026-06-09 - Last updated in NVD database

Technical Details for CVE-2026-49141

Vulnerability Analysis

The automation engine endpoint in WACRM accepts a contact_id parameter in the body of POST requests. The handler retrieves and updates the corresponding contact record without verifying that the caller's tenant owns the referenced contact. As a result, any authenticated user can target arbitrary contact UUIDs across the deployment.

The issue is compounded by the use of a service-role database client. This client is intended for privileged backend operations and intentionally bypasses Supabase row-level security policies. When the unvalidated contact_id reaches this client, tenant scoping is silently lost. Successful exploitation enables modification of victim contact attributes such as name, email, and company.

The weakness maps to [CWE-639]: Authorization Bypass Through User-Controlled Key. Exploitation requires authentication and prior knowledge of a target contact UUID, which limits trivial discovery but does not prevent enumeration through other application paths.

Root Cause

The automation engine handler trusts the client-supplied contact_id as authoritative. It performs no server-side check that the contact's tenant_id matches the authenticated session. Combined with a service-role client that skips row-level security, the missing ownership check becomes a cross-tenant data tampering primitive.

Attack Vector

An authenticated attacker submits a crafted POST request to the automation engine endpoint with a contact_id UUID belonging to another tenant. The backend updates the targeted record using the privileged service-role client. The attacker can overwrite contact fields without ever holding credentials for the victim tenant. See the VulnCheck Advisory: wacrm Bypass for additional context.

No verified exploit code is published. The fix can be reviewed in the GitHub Commit for wacrm and the corresponding GitHub Pull Request #194.

Detection Methods for CVE-2026-49141

Indicators of Compromise

  • POST requests to the automation engine endpoint containing contact_id values that do not belong to the authenticated session's tenant.
  • Unexpected modifications to contact fields such as name, email, or company without a corresponding tenant-owned audit trail.
  • Service-role database writes referencing contact UUIDs across multiple tenant scopes within a short window.

Detection Strategies

  • Instrument the automation engine handler to log the session tenant_id, the supplied contact_id, and the resolved contact's tenant_id for every request.
  • Alert on any request where the resolved contact tenant differs from the session tenant.
  • Compare contact record updated_at timestamps against authenticated session activity to identify writes lacking a legitimate caller.

Monitoring Recommendations

  • Forward application and database audit logs to a centralized analytics platform and retain them long enough to support retrospective hunts.
  • Build dashboards that track service-role client invocations by endpoint and surface anomalous volumes per tenant.
  • Review historical writes to the contacts table since deployment to identify potential pre-patch abuse.

How to Mitigate CVE-2026-49141

Immediate Actions Required

  • Upgrade WACRM to a build that includes commit 73041bf or later.
  • Audit contact records for unauthorized changes to name, email, and company since the automation engine was deployed.
  • Rotate any credentials or webhooks that may have been exposed through tampered contact fields.

Patch Information

The fix is delivered in commit 73041bf and merged via GitHub Pull Request #194. The patch adds tenant ownership validation before the automation engine performs any read or write against a contact referenced by contact_id. Self-hosted operators should pull the latest main and redeploy.

Workarounds

  • Disable or gate the automation engine endpoint until the patched commit is deployed.
  • Replace the service-role database client in the automation engine path with a tenant-scoped client that enforces row-level security.
  • Add a middleware check that rejects any request whose contact_id does not resolve to the authenticated tenant_id.
bash
# Update self-hosted WACRM to the patched commit
git fetch origin
git checkout 73041bfa6420f5e1ecbfa1dd4fa847d8529320f5
# Rebuild and redeploy the application
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.