CVE-2026-79748
KrytyczneCVSS 9.9Streszczenie
MCPHub przed wersją 0.12.15 nie sprawdza uprawnień administratora przy tworzeniu lub aktualizacji konfiguracji serwerów MCP, a także nie filtruje pól command i args. Każdy uwierzytelniony użytkownik niebędący administratorem może uruchomić dowolny proces jako użytkownik systemowy MCPHub, często root.
Ocena ryzyka
Uwierzytelniony atakujący może wykonać dowolne polecenia na serwerze, co prowadzi do pełnej kompromitacji systemu.
Rekomendacja
Zaktualizuj MCPHub do wersji 0.12.15 lub nowszej. Ogranicz dostęp do API tylko dla zaufanych użytkowników i stosuj listy dozwolonych komend.
Inne podatności w MCPHub
Zobacz wszystkie- CVE-2026-79750Wysokie
MCPHub przed wersją 1.0.30 nie egzekwuje ograniczeń własności w API wykonywania narzędzi. Każdy uwierzytelniony użytkownik niebędący administratorem może wywoływać narzędzia na serwerach MCP należących do innych użytkowników, nawet jeśli nie widzi tych serwerów w GET /api/servers. Może to prowadzić do odczytu plików (np. /etc/passwd) i SSRF.
- CVE-2026-79749Wysokie
MCPHub przed wersją 1.0.32 ma lukę w zabezpieczeniu SSRF w src/utils/ssrf.ts. Funkcja isBlockedIpv6 sprawdza tylko adresy loopback, link-local, unique-local, IPv4-mapped i IPv4-compatible, ale nie sprawdza adresów przejściowych IPv6 (NAT64, 6to4, Teredo). Atakujący może zakodować prywatny adres IPv4 w tych formach IPv6, aby ominąć zabezpieczenie i dotrzeć do wewnętrznej infrastruktury.
- CVE-2026-79747Wysokie
MCPHub przed wersją 1.0.32 pozwala uwierzytelnionemu użytkownikowi niebędącemu administratorem zarejestrować serwer wskazujący na dowolny URL i wysyłać do niego żądania serwerowe bez filtrowania ruchu wychodzącego (brak blokady loopback, RFC1918, link-local). Przez proxy OpenAPI odpowiedź jest zwracana do wywołującego (pełny SSRF), a przez SSE/streamable-http żądanie jest wysyłane na ślepo.
- CVE-2026-79746Wysokie
MCPHub przed wersją 1.0.31 ma lukę w autoryzacji dla kluczy bearer z accessType 'servers' lub 'custom' używanych w trasach grupowych. Funkcja isBearerKeyAllowedForRequest przyznaje dostęp do całej grupy, jeśli jakikolwiek serwer w grupie znajduje się na liście allowedServers klucza, bez ponownego sprawdzania po autoryzacji. Klucz ograniczony do jednego serwera daje dostęp do wszystkich serwerów w grupie.
- CVE-2026-79745Wysokie
MCPHub przed wersją 1.0.32 nie sprawdza ról w wbudowanych kontrolerach promptów i zasobów. Trasy POST/PUT /api/prompts* i /api/resources* są dołączone do uwierzytelnionego routera bez bramki administratora, a handlery nie czytają req.user. Nie-admin może tworzyć, nadpisywać i cieniować globalne szablony promptów i zasobów, które są serwowane wszystkim użytkownikom.
- CVE-2026-79744Wysokie
MCPHub przed wersją 1.0.29 ma lukę w punkcie końcowym PUT /api/system-config (handler updateSystemConfig), który nie wykonuje żadnej kontroli autoryzacji. Jest chroniony tylko przez middleware uwierzytelniający i ogranicznik szybkości, ale nie sprawdza req.user.isAdmin.
- CVE-2026-79743Średnie
MCPHub przed wersją 0.12.13 zawiera podatność w obsłudze plików MCPB. Podczas ekstrakcji pliku ZIP, pole 'name' w manifeście jest bezpośrednio łączone ze ścieżką pliku bez sanityzacji, co pozwala na zapis plików w dowolnej lokalizacji (path traversal). Funkcja cleanupOldMcpbServer również używa niesanityzowanej nazwy, co może umożliwić usunięcie dowolnych katalogów. Problem został naprawiony w wersji 0.12.13.
Oryginalny opis (angielski, źródło NVD)
MCPHub is a unified hub for centrally managing and dynamically orchestrating multiple MCP servers/APIs into separate endpoints with flexible routing strategies. Prior to version 0.12.15, the POST /api/servers and PUT /api/servers/:name endpoints in MCPHub create/update MCP server configurations and then immediately spawn the configured stdio process via child_process.spawn. Authentication is required, but there is no authorization check restricting these endpoints to admins, and there is no allowlist/sanitization on the command and args fields. As a result, any authenticated non-admin user can submit a server configuration with command:"/bin/sh" (or any other binary) and arbitrary args, causing MCPHub to execute the attacker-controlled process as the MCPHub server's OS user (commonly root in the published Docker image and in npx/systemd deployments). This issue has been patched in version 0.12.15.

