CVE-2026-47391
KrytyczneCVSS 9.8Prawdopodobieństwo exploitacji (EPSS)
Podwyższone ryzykoPercentyl 52 - wyżej niż 52% wszystkich znanych CVE
Streszczenie
PraisonAI przed wersją 4.6.40 zawiera przykładowy serwer A2A, który udostępnia nieuwierzytelniony endpoint A2A JSON-RPC i rejestruje narzędzie calculate(expression) zaimplementowane za pomocą eval() w Pythonie. Serwer wiąże się z 0.0.0.0. Zdalny, nieuwierzytelniony atakujący może wysłać wiadomość message/send do /a2a, co powoduje, że LLM może wywołać narzędzie calculate, prowadząc do wykonania dowolnego kodu Python na serwerze. Podatność dotyczy wdrożeń korzystających z oficjalnego przykładu A2A lub podobnych nieuwierzytelnionych wdrożeń A2A z niebezpiecznymi narzędziami.
Ocena ryzyka
Atakujący może zdalnie wykonać dowolny kod Python na serwerze, co prowadzi do pełnej kompromitacji systemu, kradzieży danych i przejęcia kontroli nad aplikacją.
Rekomendacja
Zaktualizuj PraisonAI do wersji 4.6.40 lub nowszej, która usuwa tę podatność.
Oryginalny opis (angielski, źródło NVD)
PraisonAI is a multi-agent teams system. Prior to version 4.6.40, PraisonAI's first-party A2A server example exposes an unauthenticated A2A JSON-RPC endpoint and registers a `calculate(expression)` tool implemented with Python `eval()`. The example also binds to `0.0.0.0`. A remote unauthenticated attacker can send `message/send` to `/a2a`; the request reaches `agent.chat()`, and a real LLM can invoke the registered `calculate` tool. In testing with `gemini/gemini-2.5-flash-lite`, this resulted in arbitrary Python execution in the server process, confirmed by creation of a marker file from an unauthenticated HTTP request. The issue affects deployments following the official A2A example or similar unauthenticated public A2A deployments with unsafe tools. The default unauthenticated A2A surface also exposes task history and task cancellation APIs, increasing confidentiality and integrity impact. Version 4.6.40 patches the issue.

