FlawOpen

flawopen.com/AI Security/progress-arcgenai-generator-command-injection-cve-2026-91140

● CVE-2026-91140 · CVSS 9.6 · Crítica
Pesquisa · FlawOpen

CVE-2026-91140: injeção de comandos no ARCGenAI-Generator

Um documento Swagger/OpenAPI criado para isso podia influenciar a limpeza de arquivos temporários baseada em shell no ARCGenAI-Generator 2.0 quando um desenvolvedor o executasse. A Progress corrigiu o fluxo na versão 2.1; o aviso não relata exploração ativa.[1], [3], [4]

💡 Explicação em Linguagem Simples (ELI5)

Uma instrução de limpeza da oficina recebe um nome de arquivo de outra etapa e o repassa ao sistema operacional. Se esse nome for tratado como parte de uma instrução de shell, em vez de texto simples, a limpeza poderá executar comandos inesperados. A correção evita o shell sempre que possível e restringe e coloca entre aspas qualquer nome de arquivo que ainda precise ser passado a ele.[1], [2]

Conceitos Centrais e Termos

ARCGenAI-Generator
Ferramenta Progress DataDirect que gera artefatos de conector REST a partir de entradas Swagger/OpenAPI. A versão afetada é 2.0; a Progress identifica 2.1 como corrigida.[1], [3]
Documento Swagger/OpenAPI
Descrição estruturada de API fornecida ao gerador. Nomes de esquema e metadados são entrada externa e não podem virar sintaxe de shell.[1], [4]
Injeção de comandos no shell
Falha no limite entre dados e comandos, na qual entrada não confiável altera o comando interpretado pelo shell do sistema operacional.[1], [4], [5]
Limpeza de arquivos temporários
Remoção de arquivos intermediários após a montagem. O aviso localiza a falha nas instruções de limpeza baseadas em shell.[1], [2]
CWE-78
Neutralização inadequada de elementos especiais usados em um comando do sistema operacional; atribuída ao CVE-2026-91140.[4]

Mapeamentos de frameworks

  • Referência CWE para a fraqueza descrita neste guia: CWE-78

Fluxo de Ataque Passo a Paso

Passo 1

Um desenvolvedor usa o ARCGenAI-Generator 2.0

O componente afetado é o Progress DataDirect Autonomous REST Connector GenAI Agents ARCGenAI-Generator versão 2.0. O desenvolvedor o executa para processar um documento Swagger/OpenAPI.[1], [3]

Passo 2

Nomes derivados do documento entram no fluxo

O registro CVE identifica um documento Swagger/OpenAPI preparado como condição para o problema e exige que um desenvolvedor invoque o gerador. O commit público da correção mostra a limpeza recebendo {fileName} do orquestrador; as fontes citadas não comprovam que esse nome venha do documento.[1], [2]

Passo 3

As instruções de limpeza chegam ao shell

As instruções públicas do agente antes da correção usavam o terminal para limpar arquivos temporários e interpolavam {fileName} em expressões de caminho. O commit da correção identifica esse valor como recebido do orquestrador; as fontes citadas não comprovam que ele derive do documento.[2]

Passo 4

O sistema operacional pode interpretar a entrada como sintaxe

Um documento preparado pode fazer a instrução de limpeza executar comandos inesperados no contexto do processo do desenvolvedor. O registro CVE descreve execução de comandos na máquina do desenvolvedor; não publica uma cadeia específica nem afirma que toda execução do gerador seja vulnerável.[1], [4], [5]

Passo 5

A versão 2.1 reduz a dependência do shell

O patch prefere a remoção por ferramenta nativa, exige que o nome corresponda a ^[A-Za-z0-9._-]+$ e coloca entre aspas cada expansão se for necessário recorrer ao shell. A Progress indica 2.1 como versão corrigida.[2], [3]

Código-Fonte: Vulnerável vs. Seguro

O painel vulnerável cita as instruções do agente da Progress antes da correção. O painel corrigido resume as mudanças de instrução do commit 7ede6d9: preferir operações nativas, validar nomes pela allowlist e colocar cada expansão entre aspas se o fallback de shell for necessário. Comandos de limpeza executáveis e entradas de exploração foram omitidos.[2]

IMPLEMENTAÇÃO VULNERÁVEL
# Antes da correção da Progress: instruções do agente para limpar arquivos temporários
After successful assembly, delete temp files using the terminal with shell-native commands.
Use retry logic to handle transient file locks.
PATCH SEGURO E ROBUSTO
# Correção da Progress: prefira uma operação nativa sempre que possível
Prefer your file-editing tool's native delete/remove capability over the terminal.
Removing temp files is a plain file-system operation — it does not need a shell.

# Se for necessário usar shell, valide {fileName} com ^[A-Za-z0-9._-]+$
# e coloque entre aspas cada expansão nas instruções de limpeza específicas da plataforma.

Lista de Verificação de Segurança para Engenharia

Fontes

← AI Security Directory →