CVE-2026-48039
KrytyczneCVSS 9.1Streszczenie
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.
Ocena ryzyka
Nieuwierzytelniony atakujący może wywoływać narzędzia MCP i uzyskać token dostępu Meta, co może prowadzić do nieautoryzowanego dostępu do kont reklamowych.
Rekomendacja
Zaktualizuj Meta Ads MCP do wersji 1.0.109 lub nowszej, która zawiera poprawkę.
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.109, `AuthInjectionMiddleware.dispatch()` at `http_auth_integration.py:272` unconditionally forwards unauthenticated Streamable HTTP requests to downstream MCP tool handlers without issuing a `401` response, allowing any network-reachable caller to invoke MCP tools without authentication. When no per-request credential is present, tool handlers fall back to the `META_ACCESS_TOKEN` environment variable, and when the downstream Meta Graph API call fails, `api.py:263–269` serialises the raw `httpx` request URL—including the operator's `access_token` as a query parameter—into the JSON-RPC response body, delivering the credential to the unauthenticated caller. Version 1.0.109 fixes the issue.

