{"id":"CVE-2026-54549","summary":"Meta Ads MCP: Server-Side Request Forgery (SSRF) in `upload_ad_image` via Unrestricted `image_url` Fetch","details":"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.","aliases":["GHSA-45gf-fjxp-cjpq","PYSEC-2026-3485"],"modified":"2026-09-18T03:30:31.299929762Z","published":"2026-09-15T17:18:26.004Z","database_specific":{"cna_assigner":"GitHub_M","cwe_ids":["CWE-918"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/54xxx/CVE-2026-54549.json"},"references":[{"type":"WEB","url":"https://github.com/pipeboard-co/meta-ads-mcp/releases/tag/1.0.115"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/54xxx/CVE-2026-54549.json"},{"type":"ADVISORY","url":"https://github.com/pipeboard-co/meta-ads-mcp/security/advisories/GHSA-45gf-fjxp-cjpq"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-54549"},{"type":"FIX","url":"https://github.com/pipeboard-co/meta-ads-mcp/commit/7d9926336bbdac6285a988d043c4ccfe126c94c5"},{"type":"FIX","url":"https://github.com/pipeboard-co/meta-ads-mcp/pull/138"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/pipeboard-co/meta-ads-mcp","events":[{"introduced":"0"},{"fixed":"7d9926336bbdac6285a988d043c4ccfe126c94c5"}],"database_specific":{"extracted_events":[{"introduced":"0"},{"fixed":"1.0.115"}],"source":["AFFECTED_FIELD","REFERENCES"]}}],"versions":["1.0.113","1.0.112","1.0.111","1.0.110","1.0.109","1.0.108","1.0.107","1.0.106","1.0.104","1.0.103","1.0.102","v1.0.101","v1.0.100","v1.0.99","v1.0.98","v1.0.97","v1.0.96","v1.0.95","v1.0.94","v1.0.93","v1.0.92","v1.0.91","v1.0.90","v1.0.89","1.0.88","1.0.87","1.0.86","1.0.85","1.0.84","1.0.83","v1.0.82","1.0.81","1.0.80","1.0.79","1.0.78","1.0.77","1.0.76","1.0.73","1.0.75","1.0.74","1.0.72","1.0.71","1.0.70","1.0.69","1.0.68","1.0.67","1.0.66","1.0.65","1.0.64","1.0.63","1.0.62","1.0.61","1.0.60","1.0.59","1.0.58","1.0.57","1.0.56","1.0.55","1.0.54","1.0.53","1.0.52","1.0.51","1.0.50","1.0.49","1.0.48","1.0.47","1.0.46","1.0.45","1.0.44","1.0.43","1.0.42","1.0.41","1.0.40","1.0.39","1.0.38","1.0.36","1.0.35","1.0.34","1.0.33","1.0.32","1.0.31","1.0.30","1.0.29","1.0.28","1.0.27","1.0.26","1.0.25","1.0.24","1.0.23","1.0.22","1.0.21","1.0.20","1.0.19","1.0.18","1.0.17","1.0.16","1.0.15","1.0.14","1.0.13","1.0.12","1.0.11","1.0.10","1.0.9","1.0.8","1.0.7","1.0.6","1.0.5","1.0.4","1.0.3","1.0.2","v1.0.1","1.0.1","1.0.0","0.11.6","0.11.5","0.11.4","0.11.3","0.11.2","0.11.1","0.11.0","0.10.9","0.10.7","0.10.6","0.10.5","0.10.4","0.10.3","0.10.2","0.10.1","0.10.0","0.9.3","0.9.2","0.9.1","0.9.0","0.8.0","0.7.10","0.7.9","0.7.8","0.7.7","0.7.6","0.7.5","0.7.4","0.7.3","0.7.2","0.7.1","0.7.0","0.6.0","0.5.0","0.4.9","0.4.8","0.4.7","0.4.6","0.4.5","0.4.4","0.4.3","0.4.2","0.4.1","0.4.0","0.3.10","0.3.9","0.3.7"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-54549.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:L"}]}