CVE-2026-56837
WysokieCVSS 8.6Streszczenie
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().
Ocena ryzyka
Nieuwierzytelniony atakujący może wywołać agenta i spowodować publikowanie odpowiedzi w Linear pod skonfigurowanym tokenem bota, co może prowadzić do działań w imieniu organizacji. Problem dotyczy wersji od 4.6.56 do przed 4.6.59.
Rekomendacja
Zaktualizuj PraisonAI do wersji 4.6.59 lub nowszej oraz skonfiguruj LINEAR_WEBHOOK_SECRET. Do czasu aktualizacji ogranicz dostęp sieciowy do endpointu webhooka.
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-57114Wysokie
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.
- 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-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.6.56 to before version 4.6.59, PraisonAI's LinearBot starts a public webhook listener on 0.0.0.0 and treats LINEAR_WEBHOOK_SECRET as optional. When the secret is absent, startup only logs a warning and _handle_webhook() skips Linear-Signature verification entirely. An unauthenticated network caller who can reach the webhook endpoint can submit a forged Linear-Event: AgentSession request. The forged request is parsed, scheduled for background processing, dispatched to _handle_agent_session(), and passed into BotSessionManager.chat(). The bot then attempts to post the agent response back to Linear under the configured bot token. The PoV is offline and deterministic. It does not contact Linear. It calls the webhook handler directly, monkey-patches the outbound Linear comment path, and proves both sides of the boundary. This issue has been patched in version 4.6.59.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

