CVE-2026-57138
KrytyczneCVSS 9.9Streszczenie
W PraisonAI od wersji 1.4.0 do 1.7.2, codeMode w src/praisonai-ts/src/tools/builtins/code-mode.ts wykonuje niezaufany JavaScript za pomocą new Function() wewnątrz with(sandbox) i opiera się na małej blokliście kodu źródłowego oraz przesłoniętych właściwościach process i require. Kod może użyć ({}).constructor.constructor do odzyskania prawdziwego konstruktora Function, uzyskać process i process.mainModule.require oraz dotrzeć do API systemu plików i podprocesów hosta mimo reklamowanego sandboxa. Atakujący kontrolujący dane wejściowe codeMode mogą czytać sekrety, modyfikować pliki, wykonywać polecenia lub wyczerpać proces hosta.
Ocena ryzyka
Atakujący może uciec z sandboxa i uzyskać dostęp do systemu hosta, w tym do poufnych danych i możliwości wykonawczych.
Rekomendacja
Zaktualizuj PraisonAI do wersji 1.7.2 lub nowszej.
Inne podatności w PraisonAI
Zobacz wszystkie- CVE-2026-57137Wysokie
PraisonAI to system zespołów wieloagentowych. Od wersji 1.4.0 do 1.7.2 funkcja createAgentLoop() w src/praisonai-ts/src/ai/agent-loop.ts przekazuje wykonywalne narzędzia do generateText() przed wywołaniem callbacku zatwierdzającego onToolCall. Ponieważ opakowany AI SDK wykonuje handlery narzędzi podczas generowania, callback zwracający false zapisuje tool_rejected dopiero po tym, jak odrzucone narzędzie wywołało już skutki uboczne.
- CVE-2026-57136Wysokie
PraisonAI to system zespołów wieloagentowych. Od wersji 1.2.3 do 1.7.2 klasa CommandValidator w src/praisonai-ts/src/cli/features/sandbox-executor.ts waliduje tylko pierwszy, oddzielony białym znakiem plik wykonywalny względem allowedCommands, a następnie SandboxExecutor przekazuje pełny ciąg polecenia do sh -c. Polecenie zaczynające się od dozwolonego pliku wykonywalnego może dołączyć niedozwolone polecenie za pomocą metaznaków powłoki.
- CVE-2026-57135Wysokie
PraisonAI to system zespołów wieloagentowych. Od wersji 1.2.3 do 1.7.2 tryb izolacji sieciowej SandboxExecutor w src/praisonai-ts/src/cli/features/sandbox-executor.ts używa buildEnv() jedynie do wstrzyknięcia nieprawidłowych zmiennych środowiskowych http_proxy i https_proxy i nie ustanawia granicy sieciowej na poziomie systemu operacyjnego. Programy ignorujące te zmienne proxy mogą otwierać gniazda bezpośrednio.
- CVE-2026-57134Wysokie
PraisonAI to system zespołów wieloagentowych. Od wersji 1.5.1 do 1.7.2 funkcja MCPSecurity.evaluatePolicy() w src/praisonai-ts/src/mcp/security.ts wywołuje skonfigurowany walidator poświadczeń tylko wtedy, gdy AuthMethod to api-key lub bearer. Zasady Basic i OAuth akceptują dowolny niepusty nagłówek Authorization bez wywołania auth.validate(), a następnie zwracają wynik uwierzytelnienia.
- CVE-2026-57133Wysokie
PraisonAI to system zespołów wieloagentowych. Od wersji 1.5.1 do 1.7.2 pomocnik shell() eksportowany z src/praisonai-ts/src/tools/utility-tools.ts sprawdza tylko pierwszy, oddzielony białym znakiem token względem safeCommands, a następnie przekazuje pełny oryginalny ciąg do child_process.exec(). Ciąg zaczynający się od dozwolonego polecenia tylko do odczytu może dołączyć drugie niedozwolone polecenie za pomocą składni powłoki.
- CVE-2026-57112Wysokie
W bibliotece PraisonAI metoda ToolsMCPServer.run_sse() montuje transport SseServerTransport na przestarzałych endpointach /sse i /messages/ bez domyślnego wymuszania nagłówków Host, Origin ani uwierzytelniania. Złośliwa strona internetowa może wykorzystać DNS rebinding przeciwko osiągalnemu lokalnemu lub wewnętrznemu serwerowi SSE, dostarczyć kontrolowane przez atakującego nagłówki Host i Origin, wyliczyć zarejestrowane narzędzia i wywołać je z uprawnieniami użytkownika serwera. Wstępna poprawka została wydana w praisonaiagents 1.6.59 i PraisonAI 4.6.59.
- CVE-2026-57132Wysokie
W systemie PraisonAI przed wersją 4.6.62 ustawienie zmiennej PRAISONAI_CALL_AUTH na wartość disabled powoduje, że funkcja verify_token akceptuje żądania do /api/v1/agents/{id}/invoke bez uwierzytelniania CALL_SERVER_TOKEN. Wdrożenia korzystające z reklamowanego wyłączenia uwierzytelniania mogą narazić zarejestrowanych agentów oraz ich narzędzia i prywatny kontekst na nieuwierzytelnione wywołania.
- CVE-2026-57122Wysokie
W systemie PraisonAI przed wersją 4.6.59 procedury obsługi webhooków botów WhatsApp i Linear weryfikują podpisy HMAC tylko wtedy, gdy skonfigurowano WHATSAPP_APP_SECRET lub LINEAR_WEBHOOK_SECRET; w przeciwnym razie przetwarzają i wysyłają niepodpisane treści żądań. Zdalny nieuwierzytelniony klient mogący dotrzeć do trasy webhooka może fałszować wiadomości, komentarze lub zdarzenia sesji agenta, podszywać się pod użytkowników platformy i zakłócać przetwarzanie bota.
- CVE-2026-57119Wysokie
W systemie PraisonAI przed wersją 4.6.59 nieuwierzytelnione API Jobs akceptuje bezwzględną lub podatną na traversację ścieżkę agent_file w POST /api/v1/runs i przekazuje ją do wykonawcy zadania bez listy dozwolonych obszarów roboczych ani sprawdzenia granic. Zdalny wywołujący może spowodować otwarcie przez serwer plików dostępnych dla konta usługi, ujawniając poświadczenia, klucze, zmienne środowiskowe i inne lokalne dane.
- CVE-2026-56839Wysokie
W systemie PraisonAI przed wersją 4.6.59 wrappery CODE_TOOLS utrzymują _workspace_root jako None i przekazują workspace=None do funkcji pomocniczych read_file, search_replace i apply_diff, które wymuszają ograniczenie ścieżek tylko dla niepustego workspace. Aplikacja udostępniająca code_read_file, code_search_replace lub code_apply_diff przed set_workspace może pozwolić na odczyt i modyfikację plików poza zamierzonym katalogiem projektu.
Oryginalny opis (angielski, źródło NVD)
PraisonAI is a multi-agent teams system. From 1.4.0 until 1.7.2, codeMode in src/praisonai-ts/src/tools/builtins/code-mode.ts executes untrusted JavaScript with new Function() inside with(sandbox) and relies on a small source-code blocklist plus shadowed process and require properties. Code can use ({}).constructor.constructor to recover the real Function constructor, obtain process and process.mainModule.require, and reach host filesystem and subprocess APIs despite the advertised sandbox. Attackers who control codeMode input can read secrets, modify files, execute commands, or exhaust the host process. This issue is fixed in version 1.7.2.

