Skip to content
KitploitKITPLOIT
StrumentiBlog
Log in
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-27626-POC — Script di exploit proof-of-concept per l'iniezione di comandi (CVE-2026-27626) nella gestione degli argomenti della password di OliveTin, che consente RCE tramite richieste API appositamente create. | Kitploit
Strumenti/GitHubGitHub/cobrastrike62/cve-2026-27626-poc
Generazione di PayloadAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration Testing
GitHubcobrastrike62/cve-2026-27626-poc

CVE-2026-27626-POC

Script di exploit proof-of-concept per l'iniezione di comandi (CVE-2026-27626) nella gestione degli argomenti della password di OliveTin, che consente RCE tramite richieste API appositamente create.

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 →
Vedi Repository
2112 mesi faNon ancora revisionato
Condividi

CVE-2026-27626: Iniezione di comandi nell'argomento password di OliveTin

OliveTin permette a un amministratore di definire "azioni": comandi shell con argomenti parametrizzati che gli utenti possono attivare da una web UI o da un'API. Prima di inserire un valore fornito dall'utente nel comando shell, OliveTin dovrebbe farlo passare da checkShellArgumentSafety(). Questa funzione controlla quattro tipi di argomento: string, int, bool, choice. Salta completamente password e restituisce true, ovvero "sicuro", senza guardare affatto il valore.

Quindi se un'azione ha un argomento di tipo password, e quell'argomento viene sostituito in una stringa di comando shell, puoi metterci qualsiasi cosa. Punti e virgola, backtick, $(), qualunque cosa. Se l'argomento è racchiuso tra virgolette nel comando sottostante (un pattern comune per cose come le password dei database), basta uscire dalle virgolette.

func checkShellArgumentSafety(argType string, value string) bool {
    dangerousTypes := []string{"string", "int", "bool", "choice"}
    for _, dt := range dangerousTypes {
        if argType == dt {
            return sanitizeInput(value)
        }
    }
    // password type falls through here, unchecked
    return true
}

Interessa OliveTin fino alla 3000.10.0. Corretto nella linea 3000.11.1 (commit 0.0.0-20260222101908-4bbd2eab1532), che aggiunge password ai tipi controllati. Advisory: GHSA-49gm-hh7w-wfvf. CVSS 9.9.

Che aspetto ha un'azione vulnerabile

Qualunque cosa in cui un argomento di tipo password finisce dentro una stringa di shell, di solito tra virgolette:

  - title: Backup database
    id: backup_db
    shell: "mysqldump -u {{ db_user }} -p'{{ db_pass }}' {{ db_name }} > /tmp/backup.sql"
    arguments:
      - name: db_user
        type: ascii_identifier
      - name: db_pass
        type: password
      - name: db_name
        type: ascii_identifier

db_pass si trova tra virgolette singole senza alcun controllo. Invia '; id ;' come valore e OliveTin esegue id prima che la chiamata mysqldump malformata fallisca. Il fallimento non conta; il comando iniettato è già stato eseguito, con l'utente con cui gira OliveTin. In molte configurazioni si tratta di root, perché la gente lo esegue sotto systemd senza una direttiva User= e non ci pensa più.

Non servono credenziali per nulla di tutto questo se l'istanza ha authRequireGuestsToLogin: false, cosa comune nelle distribuzioni più piccole o hobbistiche.

Esecuzione del PoC

pip install requests
python3 exploit.py -u <target> --action backup_db --arg db_pass -x "id"
flaga cosa servepredefinito
-u, --urlhost o IP di destinazioneobbligatorio
-p, --portporta di OliveTin1337
--actionla bindingId dell'azione vulnerabileobbligatorio
--argnome dell'argomento di tipo passwordobbligatorio
-x, --cmdcomando da iniettareid
--extra-argaltri argomenti necessari all'azione, name=value, ripetibilenessuno

Se l'azione ha bisogno di altri argomenti per girare senza errori prima che il comando iniettato venga eseguito, passali con --extra-arg:

python3 exploit.py -u 10.0.0.5 --action backup_db --arg db_pass \
  --extra-arg db_user=admin --extra-arg db_name=prod -x "whoami"

Lo script fa una POST a StartAction, aspetta due secondi, poi interroga ExecutionStatus e stampa tutto quello che riceve. Di solito vedrai l'output del comando iniettato sopra un errore del comando legittimo che è stato eseguito subito dopo ed è fallito. È normale. L'errore è solo estetico; il tuo comando è già stato eseguito.

Come risolverlo

Aggiorna OliveTin oltre la 3000.10.0. Se non puoi ancora: rimuovi gli argomenti di tipo password dalle azioni raggiungibili da utenti non fidati, disattiva l'esecuzione ospite e smetti del tutto di far interpolare i valori degli argomenti nelle stringhe di shell, se puoi evitarlo. Passa invece i segreti tramite variabili d'ambiente o un file che OliveTin legge da un percorso fisso. E non eseguire il servizio come root. Non c'è alcun motivo per cui un task runner debba averlo.

File presenti

  • exploit.py: lo script del PoC
  • README.md: questo file

Uso responsabile

Questo materiale è qui per chi applica le patch alle proprie istanze OliveTin, scrive regole di rilevamento o testa sistemi che è autorizzato a testare. Non puntarlo contro nulla che non possiedi o su cui non hai il permesso di intervenire. La responsabilità è tua, non di chi ha scritto questo.

Scarica lo strumento