UNKNOWNCVE-2026-33718

O OpenHands é Vulnerável a Injeção de Comandos através do seu Git Diff Handler

Plataforma

python

Componente

openhands

Corrigido em

1.5.0

## Resumo Existe uma vulnerabilidade de Injeção de Comandos (Command Injection) no método `get_git_diff()` em `openhands/runtime/utils/git_handler.py:134`. O parâmetro `path` do endpoint da API `/api/conversations/{conversation_id}/git/diff` é passado sem tratamento para um comando shell, permitindo que atacantes autenticados executem comandos arbitrários no sandbox do agente. O utilizador já tem permissão para instruir o agente a executar comandos, mas isto ignora os canais normais. --- ## Detalhes ### Caminho do Código Vulnerável A vulnerabilidade flui através destes ficheiros: 1. **Endpoint da API** (`openhands/server/routes/files.py:267-277`) ```python @app.get('/git/diff') async def git_diff( path: str, # <-- Entrada do utilizador do pedido HTTP ... ): ... diff = await call_sync_from_async(runtime.get_git_diff, path, cwd) # Sem tratamento ``` 2. **Runtime** (`openhands/runtime/base.py:1231-1233`) ```python def get_git_diff(self, file_path: str, cwd: str) -> dict[str, str]: self.git_handler.set_cwd(cwd) return self.git_handler.get_git_diff(file_path) # Passado diretamente ``` 3. **Método Vulnerável** (`openhands/runtime/utils/git_handler.py:10-12, 134`) ```python # Modelo de comando com placeholder

Como corrigir

Nenhum patch oficial disponível. Procure alternativas ou monitore atualizações.

Monitore suas dependências automaticamente

Receba alertas quando novas vulnerabilidades afetarem seus projetos.

Começar grátis