CVE-2026-54549
nicheUnauthenticated SSRF in Meta Ads MCP server (upload_ad_image)
Meta Ads MCP, a Model Context Protocol server that lets AI assistants manage Meta ad campaigns, contains a server-side request forgery (SSRF) flaw in its upload_ad_image tool prior to version 1.0.115. The tool passes an attacker-controlled image_url to a downloader that uses httpx with follow_redirects=True and never validates the scheme, host, or resolved IP address, so the server can be directed at loopback services, private-network hosts, or cloud metadata endpoints. In streamable-http deployments the flaw is effectively unauthenticated: any non-empty Authorization header is accepted because Meta credential validation only happens after the image download. A successful attacker can read internal data, invoke state-changing internal services, or disrupt reachable services; the issue is fixed in version 1.0.115 and there is no evidence of exploitation in the wild.
What to do: Upgrade Meta Ads MCP to version 1.0.115 or later immediately. If streamable-http deployment must be used, place the server behind a real authentication layer and enforce egress rules blocking loopback, RFC1918 ranges, and the link-local cloud metadata endpoint (169.254.169.254); prefer stdio deployments where practical. Review server logs for unusual image_url fetches or redirect chains targeting internal hosts, and rotate Meta credentials if any are found.
| Meta Ads MCP project Meta Ads MCP | < 1.0.115 |
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
Meta Ads MCP is a Model Context Protocol (MCP) server that lets AI assistants run Meta Ads. Prior to version 1.0.115, the upload_ad_image tool in meta_ads_mcp/core/ads.py passes an attacker-controlled image_url to try_multiple_download_methods() in meta_ads_mcp/core/utils.py, where httpx.AsyncClient uses follow_redirects=True and performs HTTP requests without validating the scheme, host, or resolved IP address. In a streamable-http deployment, a network caller can use any non-empty authorization value because Meta credential validation occurs after the image download, then direct the server to loopback services, private-network addresses, cloud metadata endpoints, or redirect-chained internal targets. The resulting server-side request forgery can expose internal data, invoke state-changing internal services, or disrupt reachable services. This issue is fixed in version 1.0.115.
- Weakness
- CWE-918
- Vector
- CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:L
In the news0 stories
No ingested article mentions this CVE yet.