
PoC démontrant l'escalade de privilèges par affectation massive CVE-2025-2304 dans Camaleon CMS en injectant un attribut de rôle dans le paramètre de mot de passe lors des mises à jour de profil utilisateur.
Ce dépôt contient une preuve de concept fonctionnelle (PoC) pour une vulnérabilité d'assignation en masse dans Camaleon CMS (versions antérieures à 2.8.1). La vulnérabilité se situe dans le point d'accès updated_ajax du module de gestion des utilisateurs, où l'application ne filtre pas strictement les attributs sensibles dans le hachage du paramètre password.
En injectant un attribut role dans le champ password lors d'une mise à jour de profil, un utilisateur à faibles privilèges peut écraser ses propres permissions pour obtenir le statut admin.
La vulnérabilité provient d'une mauvaise configuration des paramètres forts dans le contrôleur Ruby on Rails. Lorsque l'application traite la requête de mise à jour AJAX, elle autorise incorrectement la clé role à être fusionnée dans les attributs de l'objet utilisateur :
/admin/users/:id/updated_ajaxpassword[...]password[role]=adminrequests.Session pour maintenir l'état entre les phases d'authentification et d'exploitation.authenticity_token du DOM et le synchronise avec l'en-tête X-CSRF-Token, satisfaisant aux exigences de sécurité AJAX de Rails./admin/profile/edit pour résoudre dynamiquement le user[id] nécessaire au point d'accès RESTful._method=patch pour satisfaire les exigences de routage de l'application pour les mises à jour de ressources via POST.requestsbeautifulsoup4Installer les dépendances :
pip install -r requirements.txt
python3 main.py -u <target_url> --user <username> --password <password>
/admin/login) : Établit une session authentifiée en utilisant user[username]./admin/profile/edit) : Extrait le user[id] unique et un nouveau authenticity_token./admin/users/:id/updated_ajax) : Envoie la charge utile d'injection.L'exploit utilise une charge utile de type application/x-www-form-urlencoded structurée comme suit :
Cet outil est destiné uniquement à des fins éducatives et à des tests de pénétration autorisés. L'accès non autorisé aux systèmes de production est illégal.
| Paramètre | Valeur | Description |
|---|
_method | patch | Substitution de méthode REST Rails |
authenticity_token | [Capturé] | Protection CSRF synchronisée |
password[password] | [NouveauMotDePasse] | Requis pour la validation du champ mot de passe |
password[role] | admin | Injection malveillante |