# CVE-2026-46555: WhatsApp MCP: Unauthenticated bridge API allows message sending and arbitrary file exfiltration

> Unauthenticated local API allows attackers to send messages and exfiltrate arbitrary files via path traversal or DNS rebinding.

- **Severity:** High 7.7 (`CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N`)
- **Exploited in the wild:** Not known
- **Login needed:** Not needed
- **Attackable:** Local or same network only
- **Victim action needed:** Not needed
- **Fix available:** No
- **Published:** 20 Jul 2026
- **Updated:** 20 Jul 2026
- **Also known as:** GHSA-7jj9-4qqq-4xc4

## What is CVE-2026-46555?

CVE-2026-46555 is a high-severity missing authorization vulnerability in verygoodplugins whatsapp-mcp, published on 20 Jul 2026. It can only be exploited from the same machine or local network, with no action from the victim.

### Official description

WhatsApp MCP Server is a Model Context Protocol (MCP) server for WhatsApp, enabling Claude to read and send WhatsApp messages. Prior to version 0.2.1, the `whatsapp-bridge` HTTP API listens on `127.0.0.1:8080` without authentication and without Host header validation, and the `/api/send` endpoint accepts an absolute `media_path` parameter without confining it to a safe directory. Combined, these issues allow any local process running as the same user as the bridge to send WhatsApp messages from the paired account without authorization; the same caller to read arbitrary files readable by the user (e.g. SSH private keys, browser session data, source code, dotfiles) and exfiltrate them as WhatsApp document attachments; and/or a remote attacker to trigger the same operations via DNS rebinding from a webpage the user visits, since no Host header validation is performed. In MCP environments, "local caller" extends beyond processes the user explicitly launched — sibling MCP servers, IDE extensions, and tool-triggered flows running in the user's session can act as the effective caller. This issue is fixed in whatsapp-mcp v0.2.1 and corresponding Docker images / release artifacts. Users should upgrade immediately. The fix introduces bearer token authentication on the bridge HTTP API (configured via environment variable, required on all requests, validated with constant-time comparison); host header allow-list validation to prevent DNS rebinding; and confinement of `media_path` to a configured directory, with rejection of absolute paths outside the root and path traversal sequences. This is a breaking change for clients of the bridge API. For users who cannot immediately upgrade: Stop the bridge, or block loopback access to port 8080, when the bridge is not actively in use; avoid running the bridge alongside untrusted MCP servers, browser extensions, or other untrusted local processes; avoid browsing untrusted sites while the bridge is running (DNS rebinding mitigation); and/or run the bridge under a dedicated user account or in a sandbox/container with no access to sensitive files.

Weakness: CWE-346 (Origin Validation Error), CWE-306 (Missing Authentication for Critical Functionality), CWE-22 (Improper Limitation of a Pathname to a Restricted Directory)

## Which versions are affected by CVE-2026-46555?

It affects 1 product.


Products: Verygoodplugins Whatsapp Mcp Server.

## How do I fix CVE-2026-46555?

No fix has been published for CVE-2026-46555 yet. Limit exposure of the affected software until one is available.

## Is CVE-2026-46555 being exploited?

There is no known exploitation of CVE-2026-46555 in the wild and no public exploit code.

## Fix prompt for AI coding agents

```text
Check this codebase for CVE-2026-46555 and fix it if it is affected.

What it is: CVE-2026-46555 is a high-severity missing authorization vulnerability in verygoodplugins whatsapp-mcp, published on 20 Jul 2026. It can only be exploited from the same machine or local network, with no action from the victim.
Exploitation: There is no known exploitation of CVE-2026-46555 in the wild and no public exploit code.

Affected product: verygoodplugins whatsapp-mcp. No package-level version data is available, so check the vendor advisory linked from the reference page.

Task:
1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.
2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.
3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.
4. Run the tests and summarise what changed and why.
5. If nothing in the project is affected, say so and change nothing.

Reference: https://insights.sbomify.com/CVE-2026-46555/ (Markdown: https://insights.sbomify.com/CVE-2026-46555/index.md)
```

## Sources

- CVE record: https://www.cve.org/CVERecord?id=CVE-2026-46555
- NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-46555
- OSV: https://osv.dev/vulnerability/CVE-2026-46555

---
From sbomify Insights: https://insights.sbomify.com/CVE-2026-46555/
Summaries are generated and may contain mistakes; the official description above is the record.
