CVE-2026-54689
ŚrednieCVSS 6.3Streszczenie
mcp-searxng przed wersją 1.2.0 zawiera podatność w polityce URL web_url_read, która może zostać ominięta, gdy włączony jest MCP_HTTP_HARDEN, a MCP_HTTP_ALLOW_PRIVATE_URLS nie jest włączony. Obejście wynika z braku ponownej walidacji celów przekierowań, nieklasyfikowania adresu 0.0.0.0 jako wewnętrznego oraz nierozpoznawania adresów IPv4-mapped IPv6 w formie szesnastkowej. Atakujący może wpłynąć na wywołanie narzędzia, aby serwer MCP pobrał zasoby z pętli zwrotnej lub wewnętrznych adresów HTTP i zwrócił ich zawartość.
Ocena ryzyka
Organizacja może być narażona na wyciek danych z wewnętrznych usług, prywatnych API, punktów końcowych service-mesh lub metadanych chmury, co może prowadzić do naruszenia poufności.
Rekomendacja
Zaleca się natychmiastową aktualizację mcp-searxng do wersji 1.2.0 lub nowszej, która zawiera poprawkę.
Inne podatności w mcp-searxng
Zobacz wszystkie- CVE-2026-58485Wysokie
W mcp-searxng przed wersją 1.7.1 funkcja web_url_read przyjmuje kontrolowany przez wywołującego URL i waliduje jedynie literalną nazwę hosta w assertUrlAllowed() przed wykonaniem rozwiązywania DNS przez undiciFetch(). Publicznie wyglądająca nazwa hosta kontrolowana przez atakującego, która rozwiązuje się do adresu prywatnego, loopback, link-local lub cloud-metadata, przechodzi kontrolę leksykalną i powoduje połączenie serwera MCP z wewnętrznym celem. W domyślnej konfiguracji HTTP nieuwierzytelniony klient sieciowy może odczytywać wewnętrzne usługi, ujawniać poświadczenia lub tokeny oraz enumerować osiągalne hosty wewnętrzne. Problem naprawiono w wersji 1.7.1.
- CVE-2026-58483Wysokie
W mcp-searxng przed wersją 1.7.1 funkcja web_url_read przekazuje URL dostarczony przez wywołującego do readUrlContent(), gdzie checkContentLength() traktuje brak nagłówka Content-Length jako niekonkluzyjny preflight, a następnie ścieżki normalna i błędów pobierają całe ciało odpowiedzi przez response.text(). Serwer pomijający Content-Length może obejść limit URL_READ_MAX_CONTENT_LENGTH_BYTES i wymusić nieograniczone zużycie pamięci, a wynikowy ciąg jest przetwarzany przez NodeHtmlMarkdown.translate(), zwiększając zużycie CPU. Nieuwierzytelniony klient HTTP może wywołać odmowę usługi. Problem naprawiono w wersji 1.7.1.
- CVE-2026-54688Średnie
mcp-searxng przed wersją 1.2.0 zawiera podatność, w której funkcja web_url_read przekazuje URL dostarczony przez wywołującego do ścieżki pobierania po stronie serwera, a walidacja assertUrlAllowed() jest wykonywana tylko wtedy, gdy włączony jest MCP_HTTP_HARDEN, który domyślnie jest wyłączony. W domyślnej konfiguracji atakujący, który wpływa na URL wybrany przez użytkownika lub agenta AI, może sprawić, że serwer pobierze zasoby z pętli zwrotnej, sieci prywatnej lub punktów końcowych metadanych chmury i zwróci ich zawartość do kontekstu modelu.
Oryginalny opis (angielski, źródło NVD)
mcp-searxng is a Model Context Protocol server that gives AI assistants web search and URL-reading capabilities through SearXNG. Prior to 1.2.0, the web_url_read URL policy in src/url-reader.ts can be bypassed while MCP_HTTP_HARDEN is enabled and MCP_HTTP_ALLOW_PRIVATE_URLS is not enabled because redirect targets are not revalidated, 0.0.0.0 is not classified as an internal address, and IPv4-mapped IPv6 literals canonicalized to hexadecimal form are not recognized. These inputs allow an attacker-influenced tool call to make the MCP server fetch loopback or internal HTTP resources and return content from local services, private APIs, service-mesh endpoints, or cloud metadata endpoints. The separate hostname-to-private-address case addressed by the earlier partial fix is not part of these residual bypasses. This issue is fixed in version 1.2.0.

