CVE-2026-44334
WysokieStreszczenie
W systemie multi-agentowym PraisonAI, w wersjach od 4.5.139 do przed 4.6.32, występuje luka związana z nieautoryzowanym importem plików. W pliku tool_override.py brak jest zabezpieczeń, co pozwala na zdalne wywołanie kodu przez atakującego.
Ocena ryzyka
Luka ta umożliwia atakującym wykonanie dowolnego kodu na serwerze, co może prowadzić do poważnych naruszeń bezpieczeństwa i utraty danych. Brak autoryzacji oraz wymogu opt-in dla środowiska zwiększa ryzyko ataku.
Rekomendacja
Zaleca się aktualizację do wersji 4.6.32, w której problem został naprawiony. Dodatkowo, warto rozważyć wprowadzenie dodatkowych zabezpieczeń dla importów lokalnych.
Inne podatności w PraisonAI
Zobacz wszystkie- 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.
- CVE-2026-60091Wysokie
PraisonAI przed wersją 4.6.78 zawiera nieuwierzytelnioną podatność na fałszowanie żądań po stronie serwera (SSRF) w endpointcie Jobs API /api/v1/runs. Parametr webhook_url jest walidowany w momencie żądania, ale ponownie rozwiązywany w momencie połączenia, co pozwala atakującym na wykorzystanie ponownego wiązania DNS do dotarcia do wewnętrznych usług w ramach ślepego ataku SSRF.
- CVE-2026-60089Średnie
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.
- CVE-2026-44340Wysokie
W systemie multi-agentowym PraisonAI przed wersją 4.6.37 występuje luka, która pozwala na wykorzystanie symlinków do zapisu dowolnych danych w wybranej lokalizacji na systemie ofiary. Problem dotyczy braku walidacji dla member.linkname oraz nieodrzucania członków symlink/hardlink.
- CVE-2026-57118Krytyczne
W systemie PraisonAI przed wersją praisonaiagents 1.6.59 funkcje AgentTeam.launch oraz alias Agents rejestrują endpointy GET /{path}/list, POST /{path} i POST /{path}/{agent_id} bez kontroli dostępu. Zdalnie wystawiony serwer pozwala nieuwierzytelnionym klientom wyliczać agentów, zużywać zasoby modeli, uzyskiwać dostęp do prywatnego kontekstu oraz wywoływać narzędzia agentów lub efekty uboczne workflow.
- CVE-2026-62176Krytyczne
PraisonAI przed wersją 4.6.78 ma podatność w module `deploy/api.py`, który generuje kod serwera Python przez bezpośrednie interpolowanie parametru `agents_file` do f-stringa, który jest następnie zapisywany do pliku i wykonywany przez `subprocess.Popen()`. Atakujący kontrolujący wartość `agents_file` może wstrzyknąć dowolny kod Python.
- CVE-2026-57148Krytyczne
W PraisonAI przed wersją 0.1.6, gdy PLATFORM_JWT_SECRET nie jest ustawione, używany jest publiczny klucz deweloperski dev-secret-change-me do podpisywania HS256, a zabezpieczenia startowe i wydawania tokenów są wyłączone, ponieważ PLATFORM_ENV domyślnie przyjmuje wartość dev. Nieuwierzytelniony atakujący może podpisać JWT z dowolną wartością sub, który zostanie zaakceptowany jako tożsamość, umożliwiając podszycie się pod użytkownika lub właściciela obszaru roboczego.
- CVE-2026-57147Krytyczne
W PraisonAI przed wersją 0.1.6, gdy PLATFORM_JWT_SECRET nie jest ustawione, JWT_SECRET przyjmuje publiczną wartość dev-secret-change-me, a zabezpieczenie produkcyjne nie działa, gdy PLATFORM_ENV również nie jest ustawione (domyślnie dev). Zdalny nieuwierzytelniony atakujący może wygenerować token HS256 z dowolnym sub i email, który zostanie zaakceptowany przez AuthService._verify_token() i get_current_user dla chronionych tras API.
Oryginalny opis (angielski, źródło NVD)
PraisonAI is a multi-agent teams system. From version 4.5.139 to before version 4.6.32, CVE-2026-40287's fix gated tools.py auto-import behind PRAISONAI_ALLOW_LOCAL_TOOLS=true in two files (tool_resolver.py, api/call.py). A third import sink in praisonai/templates/tool_override.py was missed and remains unguarded. It is reached by the recipe runner on every recipe execution and is remotely triggerable through POST /v1/recipes/run with a recipe value pointing at any local absolute path or any GitHub repo (because SecurityConfig.allow_any_github defaults to True). The attacker drops a tools.py next to TEMPLATE.yaml; the server exec_module()s it. No auth required by default, no environment opt-in required. This issue has been patched in version 4.6.32.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

