
Correctif Magento 2 pour CVE-2022-24086, CVE-2022-24087. Corrige la vulnérabilité RCE et les bogues associés en effectuant un échappement profond des variables de template. Si vous ne pouvez pas mettre à niveau Magento ou appliquer les correctifs officiels, essayez celui-ci.
Correctif Magento 2 pour CVE-2022-24086, CVE-2022-24087. Corrige la vulnérabilité RCE et les bogues associés en effectuant un échappement approfondi des variables de modèle. Si vous ne pouvez pas mettre à niveau Magento ou appliquer les correctifs officiels, essayez celui-ci.
CVE-2022-24086(avec CVE-2022-24087) a été découvert au début de l'année 2022.
Les boutiques concernées présentent cette vulnérabilité d'exécution de code à distance (RCE) sans solution de contournement. 2 correctifs isolés officiels ont été publiés en février 2022.
Cependant, même fin 2024, nous recevons encore des consultations à ce sujet, et les boutiques piratées correspondantes ont été identifiées comme ayant été exploitées par cette vulnérabilité. Les attaques observées ont été réalisées en injectant une chaîne contenant template directive. Généralement en utilisant le processus de paiement, des actions pouvant déclencher l'envoi d'un e-mail avec des champs contrôlables par l'utilisateur, etc.
Nous avons créé ce correctif en raison de cette attaque généralisée et du fait que certaines boutiques ont encore des difficultés à mettre à niveau vers des versions non affectées ou à appliquer les 2 correctifs officiels.
En développant ce correctif sous forme d'extension, nous avons gardé la compatibilité à l'esprit. Il est principalement testé sur la série Magento 2.4.
Bien que la documentation officielle indique que « les méthodes ne peuvent plus être appelées depuis les variables, que ce soit via la directive var ou lorsqu'elles sont utilisées comme paramètres », comme nous l'avons confirmé, même dans la dernière version (2.4.7-p3), l'appel de la méthode « Getter » sur un Data Object et l'appel de la méthode getUrl sur l'objet Email Template (\Magento\Email\Model\AbstractTemplate) sont toujours autorisés.
Ce correctif (extension) conserve également les fonctionnalités ci-dessus. Ainsi, {{var data_object.something}} et {{var data_object.getSomething()}} sont tous deux valides et équivalents.
Exemple avec getUrl :
{{var this.getUrl($store,'route_id/controller/action',[_query:[param1:$obj.param1,param2:$obj.param2],_nosid:1])}}
En résumé, après l'installation de cette extension :
\Magento\Framework\DataObject ou de ses classes enfants ne sont pas accessibles\Magento\Framework\DataObject et ses instances enfantsgetUrl ne fonctionne que sur thisSuppression de LegacyResolver pour stopper la RCE.
Introduction de la « directive différée avec signature » pour le modèle enfant. Nous ne savons pas si elle apporte une amélioration de la sécurité.
Contient toujours un bogue non corrigé (#39353).
Utilisation de l'« échappement approfondi des variables de modèle » avant le processus de filtrage des modèles. LegacyResolver ne recevra que des données utilisateur échappées et peut donc être conservé.
Magento 2.3 ou 2.4
composer require wubinworks/module-template-filter-patch
Si vous aimez cette extension ou si elle vous a aidé, merci de mettre ★star☆ sur ce dépôt.
Vous pourriez aussi aimer :
Magento 2 patch for CVE-2024-34102(aka Cosmic Sting)
Magento 2 Enhanced XML Security
Magento 2 Encryption Key Manager CLI
Magento 2 JWT Authentication Patch
Magento 2 Disable Customer Change Email Extension
Magento 2 Disable Customer Extension