CakePHP est un framework libre écrit en PHP reprenant les concepts du projet Ruby on Rails pour produire des applications web. Un advisory a été publié le 14 novembre 2010 par Felix Wilhelm [1] après avoir reporté la vulnérabilité aux développeurs. Celle-ci permet à un attaquant de contrôler les fichiers de cache de l'application, entraînant une exécution de code PHP.
1. Détail de la vulnérabilité
Le module CSRF Security Token présent dans le Security Component a été introduit pour empêcher les attaques de type Cross-site request forgery. Un jeton d'une durée de vie limitée associé à la session du client est ajouté à chaque formulaire généré par CakePHP. Lorsqu'un formulaire est envoyé par un client, le serveur vérifie que le jeton correspond à celui attendu.
La fonction vulnérable validatePost() (cake/libs/controller/components/security.php) est appelée lors de l'envoi d'un formulaire par un utilisateur pour vérifier l'absence de CSRF dans la requête :
function _validatePost(&$controller) {
...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première