CVE-2026-57114
WysokieCVSS 7.2Streszczenie
W PraisonAI w wersjach od 4.5.126 do przed 4.6.59 walidacja webhook_url w Async Jobs API nie jest powiązana z późniejszym żądaniem sieciowym. Nazwa hosta kontrolowana przez napastnika może najpierw rozwiązać się na publiczny adres IP podczas walidacji, a następnie na adres loopback/prywatny/metadanych chmury podczas dostarczania webhooka, omijając zabezpieczenie SSRF. To niepełna poprawka / obejście dla GHSA-8frj-8q3m-xhgm.
Ocena ryzyka
Możliwe wykonanie żądań SSRF do zasobów wewnętrznych lub metadanych chmury, co może skutkować wyciekiem danych lub eskalacją uprawnień.
Rekomendacja
Zaktualizuj PraisonAI do wersji 4.6.59 lub nowszej, która zawiera poprawkę tego problemu.
Inne podatności w PraisonAI
Zobacz wszystkie- CVE-2026-57146Wysokie
W PraisonAI od wersji 4.5.115 do przed 4.6.61 udokumentowany punkt wejścia CLI nadal udostępnia trasy subskrypcji i zdarzeń A2U bez uwierzytelniania. Opakowanie CLI nie udostępnia --api-key, nie instaluje oprogramowania pośredniczącego API-key i nie generuje tokenu dla A2U; jeśli zmienna A2U_AUTH_TOKEN nie jest ustawiona, uwierzytelnianie jest wyłączone. Podatność naprawiono w wersji 4.6.61.
- CVE-2026-57144Wysokie
W PraisonAI od wersji 4.5.110 do przed 4.6.61 SandlockSandbox, który ma być piaskownicą egzekwowaną przez jądro, w przypadku gdy moduł sandlock importuje się, ale zgłasza niedostępność Landlock, nie zawodzi bezpiecznie. Metody execute() i run_command() po cichu przechodzą do SubprocessSandbox, który nie egzekwuje ograniczeń systemu plików ani sieci. Podatność naprawiono w wersji 4.6.61.
- CVE-2026-57142Wysokie
W PraisonAI od wersji 4.5.87 do przed 4.6.61 polityka niebezpiecznych narzędzi sprawdza tylko narzędzia zadeklarowane w TEMPLATE.yaml requires.tools. Dla przepisów opartych na krokach workflow.yaml jest ładowany przez YAMLWorkflowParser, który rozwiązuje narzędzia na poziomie agenta i zachowuje approve: na najwyższym poziomie, co pozwala niezaufanemu przepisowi zadeklarować execute_command i samodzielnie go zatwierdzić bez allow_dangerous_tools=True. Podatność naprawiono w wersji 4.6.61.
- CVE-2026-57117Wysokie
W PraisonAI w wersjach od 4.6.10 do przed 4.6.59 mostek LocalManagedAgent / SandboxedAgent konwertuje operacje na plikach (read_file, list_files, write_file) na polecenia powłoki, używając surowych argumentów ścieżek. Napastnik mogący wpłynąć na argument ścieżki może wyłamać się z cytowanej ścieżki i wykonać dowolne polecenia powłoki w środowisku obliczeniowym (host lub kontener Docker).
- CVE-2026-57113Wysokie
W PraisonAI w wersjach od 2.6.0 do przed 4.6.59 loader szablonów akceptuje URI GitHub z refami i zapisuje ścieżkę oraz ref bez normalizacji, łącząc je w ścieżkę cache bez sprawdzenia, czy pozostaje w katalogu cache. Spreparowany ref z sekwencjami ../ pozwala wyjść poza katalog cache, zapisać .cache_meta.json poza nim, a w pewnych warunkach usunąć katalog poza cache przez shutil.rmtree.
- CVE-2026-56840Wysokie
W PraisonAI komponent praisonai.bots.HTTPApproval renderuje argumenty oczekującego zatwierdzenia narzędzia bezpośrednio do HTML panelu zatwierdzeń. Argument narzędzia kontrolowany przez atakującego może wstrzyknąć JavaScript do tej strony. Gdy człowiek otworzy URL zatwierdzenia, skrypt wykona się w origin panelu i może wysłać żądanie POST do endpointu /approve/{request_id}/decide, powodując zwrócenie approved=True.
- CVE-2026-56838Wysokie
W PraisonAI ścieżka recipe.run() egzekwuje politykę blokowania domyślnie zabronionych niebezpiecznych narzędzi przez _check_tool_policy(), ale ścieżka strumieniowa recipe.run_stream() ładuje tę samą receptę i wywołuje _execute_recipe() bez tej kontroli. W rezultacie recepta deklarująca execute_command w requires.tools jest odrzucana przez recipe.run(), ale osiąga silnik wykonania przez recipe.run_stream() mimo allow_dangerous_tools=False.
- CVE-2026-56837Wysokie
W PraisonAI komponent LinearBot uruchamia publiczny nasłuch webhooków na 0.0.0.0 i traktuje LINEAR_WEBHOOK_SECRET jako opcjonalny. Gdy sekret jest nieobecny, _handle_webhook() całkowicie pomija weryfikację Linear-Signature. Nieuwierzytelniony atakujący sieciowy może wysłać sfałszowane żądanie Linear-Event: AgentSession, które zostanie przetworzone i przekazane do BotSessionManager.chat().
- CVE-2026-56836Wysokie
W PraisonAI polecenie praisonai recipe serve kieruje do przestarzałego polecenia Typer, które może uruchomić serwer HTTP Recipe na interfejsie innym niż localhost bez uwierzytelniania. Ponieważ config.auth jest nieobecny, create_app() nie dołącza middleware klucza API ani JWT. Nieuwierzytelnione żądania mogą dotrzeć do API recipe oraz, gdy włączone, do /admin/reload.
- CVE-2026-56835Wysokie
W PraisonAI bot Slack stosuje skonfigurowane allowed_users, allowed_channels i politykę unknown-user pairing w normalnym handlerze zdarzeń wiadomości, ale nie w sąsiednim handlerze zdarzeń app_mention. Użytkownik workspace Slack, który może wspomnieć bota w kanale, może wywołać agenta PraisonAI nawet gdy nadawca nie jest na liście dozwolonych, kanał nie jest dozwolony, a unknown_user_policy="deny".
Oryginalny opis (angielski, źródło NVD)
PraisonAI is a multi-agent teams system. From version 4.5.126 to before version 4.6.59, PraisonAI's Async Jobs API validates webhook_url when a job request is parsed and again when the internal Job object is constructed. That validation blocks direct loopback/private targets, but it is not bound to the later network request. When a job completes, _send_webhook() passes the original hostname to httpx.AsyncClient.post() with no send-time validation, IP pinning, or guarded transport. An attacker-controlled hostname can therefore resolve to a public IP during Pydantic validation and later resolve to loopback/private/cloud-metadata infrastructure during webhook delivery. This bypasses the intended SSRF guard in current supported releases. This appears to be an incomplete fix / patch bypass for GHSA-8frj-8q3m-xhgm. This issue has been patched in version 4.6.59.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

