CVE-2026-58483
WysokieCVSS 7.5Streszczenie
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.
Ocena ryzyka
Nieuwierzytelniony atakujący może wywołać odmowę usługi poprzez wymuszenie nieograniczonego zużycia pamięci i CPU na serwerze MCP. Może to doprowadzić do niedostępności usługi dla legalnych użytkowników.
Rekomendacja
Zaktualizuj mcp-searxng do wersji 1.7.1, która poprawnie obsługuje brak nagłówka Content-Length i egzekwuje limit rozmiaru treści. Do czasu aktualizacji rozważ ograniczenie dostępu sieciowego do serwera MCP lub monitorowanie zużycia zasobów.
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-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ść.
- 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.7.1, web_url_read in src/index.ts passes a caller-supplied URL to readUrlContent() in src/url-reader.ts, where checkContentLength() treats a missing Content-Length header as an inconclusive preflight and the normal and error paths then consume the complete body with response.text(). A server that omits Content-Length can therefore bypass URL_READ_MAX_CONTENT_LENGTH_BYTES and force unbounded memory use. The resulting string is also processed by NodeHtmlMarkdown.translate(), increasing CPU consumption and allowing an unauthenticated HTTP client to cause denial of service. This issue is fixed in version 1.7.1.

