CVE-2026-54688
ŚrednieCVSS 6.5Streszczenie
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.
Ocena ryzyka
W domyślnej konfiguracji istnieje ryzyko nieautoryzowanego dostępu do wewnętrznych zasobów i metadanych chmury, co może prowadzić do wycieku wrażliwych danych.
Rekomendacja
Zaleca się 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-54689Średnie
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ść.
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, web_url_read passes a caller-supplied URL to the server-side fetch path while assertUrlAllowed() in src/url-reader.ts runs only when MCP_HTTP_HARDEN is enabled, even though MCP_HTTP_HARDEN is disabled by default in src/http-security.ts. In the default configuration, an attacker who influences the URL selected by a user or AI agent can make the server fetch loopback, private-network, or cloud metadata endpoint resources and return their contents into the model context. file:// URLs remain rejected, and the separate DNS-resolution and redirect-validation bypasses are outside this record. This issue is fixed in version 1.2.0.

