Craft CMS vulnérable à l'injection de comportement RCE via EntryTypesController
Plateforme
php
Composant
craftcms/cms
Corrigé dans
5.9.11
Le correctif pour GHSA-7jx7-3846-m7w7 (commit 395c64f0b80b507be1c862a2ec942eaacb353748) n'a corrigé que `src/services/Fields.php`, mais le même modèle vulnérable existe dans `EntryTypesController::actionApplyOverrideSettings()`. Dans `src/controllers/EntryTypesController.php` lignes 381-387 : ```php $settingsStr = $this->request->getBodyParam('settings'); parse_str($settingsStr, $postedSettings); $settingsNamespace = $this->request->getRequiredBodyParam('settingsNamespace'); $settings = array_filter(ArrayHelper::getValue($postedSettings, $settingsNamespace, [])); if (!empty($settings)) { Craft::configure($entryType, $settings); ``` Le tableau `$settings` de `parse_str` est transmis directement à `Craft::configure()` sans `Component::cleanseConfig()`. Cela permet d'injecter des gestionnaires de comportement/d'événements Yii2 via des clés préfixées `as ` ou `on `, le même vecteur d'attaque que l'avis d'origine. Vous avez besoin des permissions d'administrateur du panneau de contrôle Craft, et `allowAdminChanges` doit être activé pour que cela fonctionne. Un attaquant peut utiliser la même chaîne de gadgets que l'avis d'origine pour réaliser RCE (Remote Code Execution). Les utilisateurs doivent mettre à jour vers Craft 5.9.11 pour atténuer le problème.
Comment corriger
Aucun correctif officiel disponible. Recherchez des alternatives ou surveillez les mises à jour.
Surveillez vos dépendances automatiquement
Recevez des alertes quand de nouvelles vulnérabilités affectent vos projets.
Commencer gratuitement