CVE-2026-60089
ŚrednieCVSS 5.5Streszczenie
Podatność w pakiecie PraisonAI (praisonaiagents) przed wersją 1.6.78 pozwala na automatyczne ładowanie konfiguracji z pliku .praisonai/config.toml bez walidacji ścieżki output.output_file. Atakujący może ustawić tę ścieżkę na absolutną lub zawierającą '..', co przy wywołaniu agent.start() bez parametru output prowadzi do nadpisania plików poza katalogiem projektu.
Ocena ryzyka
Ryzyko polega na możliwości nadpisania dowolnych plików w systemie z uprawnieniami użytkownika uruchamiającego PraisonAI, co może prowadzić do eskalacji uprawnień, modyfikacji krytycznych plików systemowych lub wstrzyknięcia złośliwego kodu.
Rekomendacja
Należy natychmiast zaktualizować pakiet praisonaiagents do wersji 1.6.78 lub nowszej. Do czasu aktualizacji zaleca się ręczne sprawdzanie i blokowanie ścieżek output.output_file w plikach konfiguracyjnych projektu.
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 (pip package praisonaiagents) before 1.6.78 automatically loads defaults from a project-local .praisonai/config.toml when constructing an Agent, and does not validate the defaults.output.output_file path. A repository-controlled config file can set output_file to an absolute or '..' traversal path; when the developer subsequently calls agent.start() without explicitly passing an output parameter, PraisonAI writes the agent response to that path (creating parent directories as needed), allowing an untrusted checked-out project to overwrite files outside the project root with the privileges of the user running PraisonAI.

