
PoC, der CVE-2025-2304 Mass Assignment Privilege Escalation in Camaleon CMS demonstriert, indem ein Rollenattribut während Benutzerprofilaktualisierungen in den Passwortparameter injiziert wird.
Dieses Repository enthält einen funktionalen Proof of Concept (PoC) für eine Mass Assignment-Sicherheitslücke in Camaleon CMS (Versionen vor 2.8.1). Die Schwachstelle befindet sich im updated_ajax-Endpunkt des Benutzerverwaltungsmoduls, bei dem die Anwendung versäumt, sensible Attribute im password-Parameter-Hash strikt zu filtern.
Durch das Injizieren eines role-Attributs in den password-Bereich während einer Profilaktualisierung kann ein Benutzer mit geringen Rechten seine eigenen Berechtigungen überschreiben und einen admin-Status erlangen.
Die Schwachstelle beruht auf einer Fehlkonfiguration der Strong Parameters im Ruby on Rails-Controller. Wenn die Anwendung die AJAX-Aktualisierungsanfrage verarbeitet, erlaubt sie fälschlicherweise, dass der role-Schlüssel in die Attribute des Benutzerobjekts eingefügt wird:
/admin/users/:id/updated_ajaxpassword[...]password[role]=adminrequests.Session, um den Zustand über die Authentifizierungs- und Ausnutzungsphasen hinweg zu erhalten.authenticity_token aus dem DOM und synchronisiert es mit dem X-CSRF-Token-Header, um die AJAX-Sicherheitsanforderungen von Rails zu erfüllen./admin/profile/edit, um dynamisch die user[id] aufzulösen, die für den RESTful-Endpunkt erforderlich ist._method=patch-Override, um die Routing-Anforderungen der Anwendung für Ressourcenaktualisierungen über POST zu erfüllen.requestsbeautifulsoup4Abhängigkeiten installieren:
pip install -r requirements.txt
python3 main.py -u <target_url> --user <username> --password <password>
/admin/login): Stellt eine authentifizierte Sitzung unter Verwendung von user[username] her./admin/profile/edit): Extrahiert die eindeutige user[id] und ein neues authenticity_token./admin/users/:id/updated_ajax): Sendet die Injektionsnutzlast.Der Exploit verwendet eine application/x-www-form-urlencoded-Nutzlast, die wie folgt strukturiert ist:
Dieses Tool dient ausschließlich zu Bildungszwecken und autorisierten Penetrationstests. Unautorisierter Zugriff auf Produktionssysteme ist illegal.
| Parameter | Value | Description |
|---|
_method | patch | Rails REST-Methoden-Override |
authenticity_token | [Captured] | Synchronisierter CSRF-Schutz |
password[password] | [NewPassword] | Erforderlich für die Validierung des Passwortbereichs |
password[role] | admin | Bösartige Injektion |