Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
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-10795-Lab — Laboratorio Docker che riproduce CVE-2026-10795: bypass dell'autenticazione di UpdraftPlus UpdraftCentral collegato all'installazione di plugin per RCE. Include target vulnerabili/corretti, exploit PoC e analisi a livello di sorgente. | Kitploit
Strumenti/GitHubGitHub/rootdirective-sec/cve-2026-10795-lab
Autenticazione e AutorizzazioneAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingApprendimento e Formazione
GitHubrootdirective-sec/cve-2026-10795-lab

CVE-2026-10795-Lab

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

Laboratorio Docker che riproduce CVE-2026-10795: bypass dell'autenticazione di UpdraftPlus UpdraftCentral collegato all'installazione di plugin per RCE. Include target vulnerabili/corretti, exploit PoC e analisi a livello di sorgente.

Vedi Repository
123 mesi faNon ancora revisionato

CVE Lab: CVE-2026-10795 - UpdraftPlus UpdraftCentral RPC Authentication Bypass Chained to Plugin Installation

Sommario Esecutivo

Questo repository contiene un laboratorio Docker locale per riprodurre e validare CVE-2026-10795, una vulnerabilità di bypass dell'autenticazione non autenticata che interessa il plugin WordPress UpdraftPlus attraverso il suo livello di comunicazione remota UpdraftCentral.

Il comportamento vulnerabile esiste nel flusso di gestione dei messaggi RPC di UpdraftCentral. Nelle versioni vulnerabili, un messaggio RPC contraffatto con format=1 può eludere la verifica della firma, attivare un percorso di decrittazione RSA fallito, e raggiungere comunque la decrittazione simmetrica con un comportamento prevedibile di chiave nulla/IV nullo. Ciò consente a un messaggio RPC crittografato manipolato di essere accettato e inviato come comando UpdraftCentral.

Questo laboratorio confronta due versioni di UpdraftPlus:

ServizioVersione UpdraftPlusScopoURL
vuln1.26.4Target di confronto vulnerabilehttp://127.0.0.1:8081
patched1.26.5Target di confronto correttohttp://127.0.0.1:8082

La catena dimostrata è:```text Unauthenticated attacker → forged UpdraftCentral RPC request → format=1 signature verification bypass → failed RSA decrypt not rejected in vulnerable version → predictable zero-key/zero-IV decrypt path → forged JSON RPC command accepted → privileged UpdraftCentral command dispatch → plugin.upload_plugin → install and activate marker plugin → hard-coded /usr/bin/id proof endpoint

La vulnerabilità principale è il bypass dell'autenticazione. Il laboratorio dimostra che il bypass può essere concatenato a un impatto di tipo RCE quando è presente uno stato di chiave UpdraftCentral privilegiato, perché UpdraftCentral espone comandi legittimi di gestione dei plugin che possono installare e attivare plugin WordPress.

Non si tratta di una vulnerabilità di injection diretta di comandi. La prova dell'esecuzione di codice deriva dall'abuso della funzionalità di installazione autenticata dei plugin dopo aver bypassato il confine di autenticazione RPC.

Questo laboratorio è progettato esclusivamente per ricerca locale controllata, comprensione a livello di codice sorgente e dimostrazione per portfolio.

## Verified Facts

| Claim                                                                  | Evidence                                                                                              | How to verify in this lab                                          |
| ---------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------ |
| UpdraftPlus 1.26.4 è vulnerabile in questo laboratorio.                          | Il servizio vulnerabile accetta un messaggio RPC `format=1` falsificato e invia `plugin.upload_plugin`. | Esegui `python3 poc/poc.py --url http://127.0.0.1:8081`.              |
| UpdraftPlus 1.26.5 blocca il messaggio falsificato in questo laboratorio.              | Il servizio corretto non restituisce alcun corpo di risposta RPC e non invia il comando falsificato.            | Esegui `python3 poc/poc.py --url http://127.0.0.1:8082`.              |
| Il problema è un bypass dell'autenticazione nel layer RPC di UpdraftCentral. | Una richiesta RPC non autenticata falsificata può raggiungere l'invio del comando nella versione vulnerabile.            | Confronta il comportamento di `--ping` tra le porte `8081` e `8082`.         |
| Il laboratorio non pre-installa il plugin marker.                        | La configurazione installa solo WordPress, UpdraftPlus e uno stato di chiave UpdraftCentral locale.                 | Controlla `/wp-json/cve-lab/v1/id` prima di eseguire il PoC.             |
| Il PoC installa il plugin marker tramite RPC falsificato.                 | Il PoC invia `plugin.upload_plugin` con un payload ZIP del plugin nel campo dati RPC.                 | Esegui il PoC e poi richiedi `/wp-json/cve-lab/v1/id`.             |
| Il target vulnerabile raggiunge un impatto di tipo RCE.                        | Il plugin marker espone un endpoint hard-coded che restituisce l'output di `/usr/bin/id`.                    | Il target vulnerabile restituisce `uid=33(www-data) gid=33(www-data)`. |
| Il target corretto non installa il plugin marker.                 | L'endpoint marker restituisce `404 rest_no_route` sul servizio corretto.                               | Esegui il PoC contro `http://127.0.0.1:8082`.                       |
| Il laboratorio richiede uno stato di chiave UpdraftCentral.                          | L'invio di UpdraftCentral dipende da una voce di chiave locale e dai metadati associati.                         | Rivedi `scripts/setup-wordpress.sh`.                               |

## Assumptions and Unknowns

Questo laboratorio inserisce intenzionalmente uno stato di chiave UpdraftCentral locale per riprodurre una condizione del sito in cui è stato configurato il controllo remoto.

Lo stato di chiave inserito è un prerequisito del laboratorio, non la vulnerabilità stessa. Consente al laboratorio di esercitare in modo consistente il percorso di parsing e decrittazione RPC vulnerabile.

Il laboratorio non sostiene che ogni installazione di UpdraftPlus sia immediatamente sfruttabile. La catena dimostrata dipende dalla presenza di una voce di chiave locale UpdraftCentral associata a un utente WordPress privilegiato.

Il laboratorio dimostra un impatto controllato di tipo RCE installando un plugin marker che espone un endpoint di proof hard-coded `/usr/bin/id`. Non fornisce una web shell generica, parametro di esecuzione arbitraria di comandi, reverse shell, meccanismo di persistenza, furto di credenziali o callback esterno.

Il PoC è limitato a target locali e rifiuta hostname non locali per impostazione predefinita.

## Root Cause Summary

La causa principale è una validazione impropria dei messaggi RPC di UpdraftCentral nelle versioni vulnerabili di UpdraftPlus.

Il flusso RPC vulnerabile accetta un messaggio `format=1`. Il percorso `format=1` non richiede la stessa verifica della firma dei formati di messaggio più recenti.

Il problema di alto livello è:```text
format=1 message
→ signature verification is bypassed
→ RSA decrypt of the symmetric key can fail
→ failed decrypt result is not rejected
→ false is passed into the symmetric cipher as a key
→ phpseclib normalizes this into a predictable null key path
→ attacker-controlled encrypted JSON can decrypt successfully
→ command is dispatched

In un comportamento vulnerabile, la decrittazione RSA può restituire:```text false

Invece di rifiutare quel risultato di decifratura fallita, il flusso vulnerabile continua e passa il valore al livello di decifratura simmetrica.

Il pattern vulnerabile effettivo è:```php
$sym_key = $rsa->decrypt($sym_key);
$rij->setKey($sym_key);
$decrypted = $rij->decrypt($ciphertext);

Il problema è che $sym_key non viene convalidato prima di essere utilizzato.

Quando $sym_key è false, la configurazione del cifrario segue un comportamento prevedibile di chiave nulla/IV nullo. Ciò rende possibile creare un payload RPC crittografato utilizzando una chiave zero e un IV zero noti.

La versione patchata aggiunge un controllo prima che la chiave simmetrica venga utilizzata:```php if (false === $sym_key || !is_string($sym_key) || strlen($sym_key) < 16) { return false; }

Questo cambia il confine di fiducia.
Scarica lo strumento