ZeroHour

CVE-2026-54547

niche

Auth Bypass in Meta Ads MCP streamable-http transport (< 1.0.115)

CVSS 3.1
7.4 high
EPSS
Published
()
Modified
AI analysis

Meta Ads MCP, a Model Context Protocol server that lets AI assistants manage Meta Ads, contains an improper authentication flaw (CWE-287) in AuthInjectionMiddleware (meta_ads_mcp/core/http_auth_integration.py) prior to version 1.0.115. The middleware only rejects HTTP MCP requests when both auth_token and pipeboard_token are absent, while extract_token_from_headers() does not treat X-Pipeboard-Token as a primary credential, so a network attacker using the streamable-http transport can supply any arbitrary X-Pipeboard-Token value to pass the guard without ever establishing an authentication context. This causes get_auth_token() to fall back to the server operator's META_ACCESS_TOKEN, allowing the attacker to invoke MCP tools that read or modify the operator's Meta Ads data under the operator's own credentials. Deployments using the default stdio transport, or running without a META_ACCESS_TOKEN configured, are not affected. The issue is fixed in version 1.0.115; no public proof of concept is known and the flaw is not listed in CISA's KEV catalog.

What to do: Upgrade Meta Ads MCP to version 1.0.115 or later. If upgrading is delayed, switch to the default stdio transport or remove the server-side META_ACCESS_TOKEN to eliminate the credential-fallback path, and restrict network access to the streamable-http endpoint. Operators who ran an exposed streamable-http deployment should review their Meta Ads accounts for unauthorized campaign, audience, or spend changes attributable to MCP tool calls.

Affected
meta-ads-mcp project (open source) Meta Ads MCPprior to 1.0.115 (affected only when using the streamable-http transport with META_ACCESS_TOKEN configured)
Estimated exposure
nichelikely on the order of hundreds to low thousands of self-hosted operators at most (clearly an estimate) — No public install or scan counts are available; this is a niche developer/AI-tooling package that only becomes remotely exploitable when an operator deliberately exposes the non-default streamable-http transport with a Meta access token…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

Meta Ads MCP is a Model Context Protocol (MCP) server that lets AI assistants run Meta Ads. Prior to version 1.0.115, AuthInjectionMiddleware in meta_ads_mcp/core/http_auth_integration.py rejects HTTP MCP requests only when both auth_token and pipeboard_token are absent, while extract_token_from_headers() does not recognize X-Pipeboard-Token as a primary credential. A network caller using the streamable-http transport can therefore send any X-Pipeboard-Token value, pass the guard without establishing authentication context, and cause get_auth_token() to fall back to the server operator's META_ACCESS_TOKEN. Subsequent MCP tools execute with the operator's Meta credentials and can read or modify the operator's Meta Ads data. Deployments using the default stdio transport or without META_ACCESS_TOKEN are not affected. This issue is fixed in version 1.0.115.

Weakness
CWE-287
Vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N

In the news

No ingested article mentions this CVE yet.