CVE-2026-61435
WysokieCVSS 8.2Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 31 - wyżej niż 31% wszystkich znanych CVE
Streszczenie
Podatność w PraisonAI przed wersją 4.6.78 umożliwia ominięcie uwierzytelniania w endpointach API agentów (agent_invoke.py) gdy opcja PRAISONAI_CALL_AUTH=disabled jest skonfigurowana. Zabezpieczenie ograniczające dostęp tylko do localhosta opiera się na nagłówku Host z żądania HTTP, który może być sfałszowany przez atakującego.
Ocena ryzyka
Zdalny, nieuwierzytelniony atakujący może wyświetlić listę zarejestrowanych agentów (GET /api/v1/agents) oraz wywołać dowolnego agenta (POST /api/v1/agents/{agent_id}/invoke) bez uwierzytelnienia, co prowadzi do nieautoryzowanego dostępu i potencjalnego przejęcia kontroli nad systemem.
Rekomendacja
Należy natychmiast zaktualizować PraisonAI do wersji 4.6.78 lub nowszej. Jeśli aktualizacja nie jest możliwa, należy wyłączyć opcję PRAISONAI_CALL_AUTH=disabled i skonfigurować uwierzytelnianie dla wszystkich endpointów API.
Inne podatności w PraisonAI
Zobacz wszystkie- CVE-2026-55533Wysokie
PraisonAI przed wersją 4.6.58 ma lukę w create_auth_middleware(), która pozwala na żądania bez uwierzytelnienia, gdy brakuje PRAISONAI_API_KEY lub PRAISONAI_JWT_SECRET. Zewnętrznie powiązany serwer Recipe może przyjmować nieuwierzytelnione żądania POST /v1/recipes/run, mimo że uwierzytelnianie jest włączone.
- CVE-2026-55532Wysokie
PraisonAI przed wersją 4.6.58 ma lukę w MCP HTTP Stream _validate_origin, która używa startswith do sprawdzania pochodzenia, co pozwala atakującemu na użycie origin localhost.attacker.com. Strona internetowa może wysyłać żądania Content-Type: text/plain bez preflight i wywoływać narzędzia bez klucza API, w tym zapisy plików.
- CVE-2026-55538Wysokie
PraisonAI to system wieloagentowy. Przed wersją 4.6.51, funkcja _create_agents_app() nie uwierzytelnia żądań POST /agents ani POST /agents/{agent_name}. Brakujące lub nieprawidłowe wartości bearer i X-API-Key nadal umożliwiają wykonanie agenta. Problem naprawiono w wersji 4.6.58.
- CVE-2026-55537Wysokie
PraisonAI to system wieloagentowy. Przed wersją 4.6.58, funkcja JobSubmitRequest.validate_webhook_url() akceptuje webhook_url, gdy rozwiązywanie nazwy zgłasza socket.gaierror, ponieważ ścieżka wyjątku używa 'except socket.gaierror: pass'. Funkcja JobExecutor._send_webhook() później wykonuje świeże wyszukiwanie, co pozwala zmianom DNS na przekierowanie żądania do wewnętrznego serwisu. Problem naprawiono w wersji 4.6.58.
- CVE-2026-55531Średnie
PraisonAI przed wersją 4.6.58 ma podatność w obsłudze MCP HTTP Stream, gdzie handler mcp_post tworzy nowy wpis _sessions dla każdego żądania initialize, ale nie wywołuje _cleanup_sessions ani nie egzekwuje maksymalnej liczby sesji. Nieuwierzytelniony atakujący może wyczerpać pamięć.
- CVE-2026-55530Średnie
PraisonAI przed wersją 1.6.58 ma podatność w funkcji ast_grep_rewrite, która nie posiada dekoratora @require_approval używanego przez podobne narzędzia mutacji. Przy dry_run=False, wywołanie kontrolowane przez agenta może przekazać --update-all i szeroką ścieżkę do przepisania plików bez wymaganego zatwierdzenia.
- CVE-2026-55525Wysokie
PraisonAI to system wieloagentowy. Przed wersją praisonaiagents 1.6.58, funkcja web_crawl waliduje tylko początkowy URL przed użyciem _crawl_with_httpx z httpx.Client(follow_redirects=True). Cele przekierowań nie są ponownie walidowane, więc atakujący, który wpływa na cel crawl, może przekierować publiczny URL do loopback, prywatnej sieci lub usług metadata chmury, podczas gdy ALLOW_LOCAL_CRAWL pozostaje wyłączone. Pobrana wewnętrzna odpowiedź jest zwracana do kontekstu agenta. Problem został naprawiony w wersji 1.6.58.
- CVE-2026-61434Wysokie
Podatność w PraisonAI przed wersją 4.6.78 umożliwia ominięcie listy dozwolonych poleceń powłoki poprzez użycie wbudowanych akcji find (-exec, -execdir, -delete). Atakujący może wykonać nieautoryzowane polecenia, odczytać lub usunąć pliki bez uruchamiania filtrów znaków specjalnych.
- CVE-2026-61432Średnie
Podatność typu path traversal w bibliotece PraisonAI (praisonaiagents) przed wersją 1.6.78 w funkcji FastContext. Funkcja FastContextAgent.execute_tool() nie sprawdza poprawnie ścieżek bezwzględnych ani nie kanonizuje ścieżek względnych, co pozwala na odczyt, przeszukiwanie i wyliczanie plików poza dozwolonym katalogiem roboczym.
- CVE-2026-61431Średnie
PraisonAI przed wersją 4.6.78 zawiera podatność na przechodzenie po ścieżkach w komponencie ContextGatherer, który nie waliduje ścieżek dołączanych w plikach .praisoncontext i .praisoninclude. Atakujący mogą podać ścieżki bezwzględne lub sekwencje przejścia do katalogu nadrzędnego, aby odczytać dowolne pliki poza obszarem roboczym i dołączyć ich zawartość do wygenerowanego pakietu kontekstu.
Oryginalny opis (angielski, źródło NVD)
PraisonAI before 4.6.78 contains an authentication bypass in the Call API agent invocation endpoints (src/praisonai/praisonai/api/agent_invoke.py) when PRAISONAI_CALL_AUTH=disabled is configured. The safeguard intended to restrict the disabled-auth opt-out to localhost binding derives the bind host from request.url.hostname, which is taken from the client-controlled HTTP Host header. A remote, unauthenticated attacker who can reach the service over the network can send a spoofed 'Host: 127.0.0.1' header to bypass the localhost-only restriction and list (GET /api/v1/agents) and invoke (POST /api/v1/agents/{agent_id}/invoke) registered agents without authentication.

