PT-2026-31997 · Unknown · Praisonaiagents

Publicado

2026-04-10

·

Atualizado

2026-04-10

·

CVE-2026-40160

CVSS v4.0

7.1

Alta

VetorAV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:N/VA:N/SC:H/SI:L/SA:N
Nome do Software Vulnerável e Versões Afetadas PraisonAIAgents versões anteriores a 1.5.128
Descrição PraisonAIAgents, um sistema de equipes multi-agente, apresentava uma vulnerabilidade de Solicitação de Servidor Falsificada (SSRF) na rota de fallback httpx da ferramenta web crawl. Este caminho passava diretamente URLs fornecidos pelo usuário para httpx.AsyncClient.get() com follow redirects=True e sem validação de host. Um agente LLM induzido a rastrear uma URL interna poderia acessar endpoints de metadados de nuvem (169.254.169.254), serviços internos e localhost. O conteúdo da resposta era retornado ao agente e poderia ser visível a um invasor. Este fallback era o caminho de rastreamento padrão em uma instalação nova do PraisonAI sem uma chave Tavily ou Crawl4AI instalado. O código vulnerável está localizado em src/praisonai-agents/praisonaiagents/tools/web crawl tools.py:133-180. O problema decorria da falta de restrição de esquema, resolução de nome de host ou verificação de IP privado/link-local, combinado com follow redirects=True, permitindo que invasores usassem redirecionamentos abertos para acessar redes internas. A exploração poderia ocorrer por meio de interação direta com o agente ou injeção indireta de prompt por meio de instruções ocultas em páginas rastreadas. A exploração bem-sucedida poderia expor credenciais IAM em infraestrutura de nuvem com IMDSv1 ou revelar outros serviços internos acessíveis ao host.
Recomendações Atualize o PraisonAIAgents para a versão 1.5.128 ou posterior. Como mitigação, adicione validação de URL antes da solicitação httpx, incorporando a verificação de IP privado de file tools.py em uma utilidade compartilhada. Especificamente, adicione o seguinte código antes da solicitação httpx em tools/web crawl tools.py: import urllib.parse, socket, ipaddress; parsed = urllib.parse.urlsplit(url); if parsed.scheme not in ("http", "https"): return f"Error: Unsupported scheme: {parsed.scheme}"; try: hostname = parsed.hostname; addr = ipaddress.ip address(socket.gethostbyname(hostname)); if addr.is private or addr.is loopback or addr.is link local: return "Error: Access to internal network addresses is not allowed"; except (socket.gaierror, ValueError): pass

Exploit

Correção

SSRF

Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾

Enumeração de Fraquezas

Identificadores relacionados

CVE-2026-40160
GHSA-QQ9R-63F6-V542

Produtos afetados

Praisonaiagents