PT-2026-31457 · Pypi+1 · Js-Yaml+1
CVE-2026-39890
·
Publicado
2026-04-08
·
Atualizado
2026-06-29
CVSS v3.1
9.8
Crítica
| Vetor | AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
Nome do Software Vulnerável e Versões Afetadas
PraisonAI versões anteriores a 4.5.115
Descrição
O método
AgentService.loadAgentFromFile do PraisonAI usa a biblioteca js-yaml para analisar arquivos YAML sem desabilitar tags perigosas como !!js/function e !!js/undefined. Isso permite que um invasor crie um arquivo YAML malicioso que, quando analisado, executa código JavaScript arbitrário. Um invasor pode explorar essa vulnerabilidade carregando um arquivo de definição de agente malicioso através do endpoint da API, levando à execução remota de código (RCE) no servidor. O código vulnerável está localizado em src/agents/agent.service.ts na linha 55. Uma prova de conceito (PoC) envolve a criação de um arquivo YAML com uma tag !!js/function para executar comandos arbitrários, como touch /tmp/pwned, quando o agente é carregado. Isso pode levar à completa comprometimento do servidor, roubo de dados ou penetração adicional na rede.Recomendações
Substitua o método
load inseguro por uma alternativa segura, usando o método load com um esquema seguro, como JSON SCHEMA ou DEFAULT SAFE SCHEMA. Por exemplo:typescript
import yaml from 'js-yaml';
import { JSON SCHEMA } from 'js-yaml';
// No método loadAgentFromFile
const agent = yaml.load(fileContent, { schema: JSON SCHEMA });Exploit
Correção
RCE
Deserialization of Untrusted Data
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Enumeração de Fraquezas
Identificadores relacionados
Produtos afetados
Praisonai
Js-Yaml