
PoC che dimostra l'escalation dei privilegi tramite mass assignment di CVE-2025-2304 in Camaleon CMS, iniettando un attributo di ruolo nel parametro password durante gli aggiornamenti del profilo utente.
Questo repository contiene un Proof of Concept (PoC) funzionale per una vulnerabilità di Mass Assignment in Camaleon CMS (versioni precedenti alla 2.8.1). La vulnerabilità risiede nell'endpoint updated_ajax del modulo di Gestione Utenti, dove l'applicazione non filtra rigorosamente gli attributi sensibili all'interno dell'hash del parametro password.
Iniettando un attributo role nell'ambito di password durante un aggiornamento del profilo, un utente con privilegi bassi può sovrascrivere i propri permessi per ottenere lo stato admin.
La vulnerabilità è radicata in una configurazione errata dei Strong Parameters nel controller Ruby on Rails. Quando l'applicazione elabora la richiesta di aggiornamento AJAX, permette impropriamente che la chiave role venga unita agli attributi dell'oggetto utente:
/admin/users/:id/updated_ajaxpassword[...]password[role]=adminrequests.Session per mantenere lo stato tra le fasi di autenticazione e sfruttamento.authenticity_token dal DOM e lo sincronizza con l'intestazione X-CSRF-Token, soddisfacendo i requisiti di sicurezza AJAX di Rails./admin/profile/edit per risolvere dinamicamente user[id] richiesto per l'endpoint RESTful._method=patch per soddisfare i requisiti di routing dell'applicazione per gli aggiornamenti delle risorse tramite POST.requestsbeautifulsoup4Installa le dipendenze:
pip install -r requirements.txt
python3 main.py -u <target_url> --user <username> --password <password>
/admin/login): Stabilisce una sessione autenticata utilizzando user[username]./admin/profile/edit): Estrae l'unico user[id] e un nuovo authenticity_token./admin/users/:id/updated_ajax): Invia il payload di iniezione.L'exploit utilizza un payload application/x-www-form-urlencoded strutturato come segue:
Questo strumento è destinato solo a scopi educativi e a test di penetrazione autorizzati. L'accesso non autorizzato a sistemi di produzione è illegale.
| Parametro | Valore | Descrizione |
|---|
_method | patch | Override del metodo REST di Rails |
authenticity_token | [Catturato] | Protezione CSRF sincronizzata |
password[password] | [NuovaPassword] | Richiesto per la validazione dell'ambito password |
password[role] | admin | Iniezione Malevola |