CVE-2026-54549
WysokieCVSS 8.3Streszczenie
W Meta Ads MCP przed wersją 1.0.115 narzędzie upload_ad_image w meta_ads_mcp/core/ads.py przekazuje kontrolowany przez atakującego image_url do try_multiple_download_methods() w meta_ads_mcp/core/utils.py, gdzie httpx.AsyncClient używa follow_redirects=True i wykonuje żądania HTTP bez walidacji schematu, hosta lub rozwiązanego adresu IP. W wdrożeniu streamable-http wywołujący sieciowy może użyć dowolnej niepustej wartości autoryzacji, ponieważ walidacja poświadczeń Meta następuje po pobraniu obrazu, a następnie skierować serwer do usług loopback, adresów sieci prywatnej, punktów końcowych metadanych chmury lub łańcuchów przekierowań do celów wewnętrznych. Wynikające z tego SSRF może ujawnić dane wewnętrzne, wywołać usługi wewnętrzne zmieniające stan lub zakłócić osiągalne usługi. Problem naprawiono w wersji 1.0.115.
Ocena ryzyka
Nieuwierzytelniony atakujący może wykorzystać podatność SSRF do dostępu do wewnętrznych usług, ujawnienia danych lub wywołania operacji zmieniających stan. Może to prowadzić do kompromitacji infrastruktury wewnętrznej i zakłócenia działania usług.
Rekomendacja
Zaktualizuj Meta Ads MCP do wersji 1.0.115, która waliduje schemat, host i rozwiązany adres IP. Do czasu aktualizacji rozważ ograniczenie dostępu sieciowego do serwera MCP lub wyłączenie narzędzia upload_ad_image.
Inne podatności w Meta Ads MCP
Zobacz wszystkie- CVE-2026-54547Wysokie
Serwer Meta Ads MCP w wersjach przed 1.0.115 zawiera błąd w mechanizmie uwierzytelniania AuthInjectionMiddleware, który odrzuca żądania HTTP tylko gdy brakuje obu tokenów, a funkcja extract_token_from_headers() nie rozpoznaje nagłówka X-Pipeboard-Token jako głównego poświadczenia. Zdalny atakujący przez transport streamable-http może wysłać dowolną wartość tego nagłówka, ominąć zabezpieczenie i spowodować użycie przez serwer tokenu META_ACCESS_TOKEN operatora.
- CVE-2026-48039Krytyczne
Meta Ads MCP przed wersją 1.0.109 ma podatność w AuthInjectionMiddleware.dispatch(), która bezwarunkowo przekazuje nieuwierzytelnione żądania Streamable HTTP do handlerów narzędzi MCP bez zwracania odpowiedzi 401, co pozwala każdemu wywołującemu z sieci na wywoływanie narzędzi MCP bez uwierzytelnienia. Gdy brakuje poświadczeń, handlery używają zmiennej środowiskowej META_ACCESS_TOKEN, a gdy wywołanie Meta Graph API nie powiedzie się, odpowiedź JSON-RPC zawiera surowy URL żądania z tokenem dostępu, co ujawnia poświadczenia nieuwierzytelnionemu wywołującemu.
Oryginalny opis (angielski, źródło NVD)
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.

