Comment protéger votre boutique Magento 2 contre la vulnérabilité APSB25-88

Comment protéger votre boutique Magento 2 contre la vulnérabilité APSB25-88

Propriétaires de boutiques Magento 2, il est temps d’agir rapidement. Adobe a récemment publié une mise à jour de sécurité importante qui corrige une faille critique pouvant permettre l’exécution de code non autorisé. Si votre boutique n’a pas encore été corrigée, agissez immédiatement. Après avoir appliqué le correctif, franchissez une étape supplémentaire importante : désactivez les points de téléversement de fichiers inutilisés et risqués, comme les téléversements de fichiers dans les adresses client et les téléversements de fichiers via les options personnalisées.

Bonne nouvelle : le correctif officiel d’Adobe est disponible

Bonne nouvelle : Adobe a réussi à résoudre le problème à temps et a déployé un correctif d’urgence qui élimine complètement la vulnérabilité.

C’est maintenant à vous : appliquez le correctif et protégez votre boutique. Ne tardez pas, agissez dès maintenant.

Suivez les instructions officielles d’Adobe ici : Instructions du correctif Adobe.

Comment appliquer le correctif

Téléchargez le correctif VULN-32437-2-4-X et exécutez les commandes suivantes depuis le répertoire racine de votre Magento 2 :

curl -LO https://repo.magento.com/patch/VULN-32437-2-4-X-patch.zip
unzip VULN-32437-2-4-X-patch.zip
patch -p1 < VULN-32437_2.4.X.patch && \
php -d memory_limit=-1 bin/magento cache:clean

Après avoir exécuté ces commandes, vous devriez voir une modification dans vendor/magento/framework/Webapi/ServiceInputProcessor.php semblable à celle-ci :

diff --git a/vendor/magento/framework/Webapi/ServiceInputProcessor.php b/vendor/magento/framework/Webapi/ServiceInputProcessor.php
index ba58dc2bc7acf..06919af36d2eb 100644
--- a/vendor/magento/framework/Webapi/ServiceInputProcessor.php
+++ b/vendor/magento/framework/Webapi/ServiceInputProcessor.php
@@ -246,6 +246,13 @@ private function getConstructorData(string $className, array $data): array
             if (isset($data[$parameter->getName()])) {
                 $parameterType = $this->typeProcessor->getParamType($parameter);

+                // Allow only simple types or Api Data Objects
+                if (!($this->typeProcessor->isTypeSimple($parameterType)
+                    || preg_match('~\\\\?\w+\\\\\w+\\\\Api\\\\Data\\\\~', $parameterType) === 1
+                )) {
+                    continue;
+                }
+
                 try {
                     $res[$parameter->getName()] = $this->convertValue($data[$parameter->getName()], $parameterType);
                 } catch (\ReflectionException $e) {

Intégration du correctif dans les versions ultérieures

Depuis le 14 octobre, Adobe a officiellement intégré le correctif dans la version APSB25-94. Vous pouvez le vérifier dans le bulletin de sécurité Adobe.

Les boutiques utilisant les versions suivantes sont déjà protégées :

  • Magento 2.4.6-p13
  • Magento 2.4.7-p8
  • Magento 2.4.8-p3

Si vous utilisez l’une de ces versions, tout est en ordre — mais vérifiez tout de même l’état de vos mises à jour pour vous assurer d’être protégé contre APSB25-94 et les vulnérabilités associées.

Renforcez encore la sécurité de votre boutique

Après l’application du correctif, passez à l’étape proactive suivante : verrouillez les deux points de téléversement les plus souvent exploités dans Magento 2. Il s’agit de deux points d’entrée distincts, chacun nécessitant sa propre correction — l’un concerne les téléversements de fichiers via les options personnalisées (utilisés lorsqu’un produit permet au client d’envoyer un fichier, par ex. un logo à graver), l’autre concerne l’attribut de téléversement de fichier dans l’adresse client. Les deux sont importants et ciblent des points d’accès différents — nous recommandons d’installer les deux.

Protéger les téléversements via les options personnalisées : module PolyShell Protection

Module : aregowe/magento2-module-polyshell-protection
Objectif : Défense en profondeur contre la vulnérabilité de téléversement de fichiers non restreint PolyShell (APSB25-94) touchant Magento Open Source et Adobe Commerce jusqu’à la version 2.4.9-alpha2 — le plus souvent exploitée via les téléversements de fichiers des options personnalisées sur les pages produit. Il superpose huit protections distinctes — blocage des chemins de requête, prévention des téléversements au niveau des contrôleurs, détection des fichiers polyglottes et durcissement du traitement des images au niveau du framework — réparties sur neuf plugins couvrant les points de téléversement de l’API REST, la diffusion des médias et le traitement des images.

Installation via Composer (recommandée si votre hébergeur le permet) :

composer require aregowe/magento2-module-polyshell-protection
bin/magento module:enable Aregowe_PolyShellProtection
bin/magento setup:upgrade
bin/magento cache:flush

Installation manuelle dans app/code (sans accès à Composer) : téléchargez le dépôt au format ZIP depuis GitHub, puis :

mkdir -p app/code/Aregowe/PolyShellProtection
# extract the downloaded ZIP contents into that folder, so that
# app/code/Aregowe/PolyShellProtection/registration.php exists
bin/magento module:enable Aregowe_PolyShellProtection
bin/magento setup:upgrade
bin/magento cache:flush

Une fois le module activé, rendez-vous dans Stores > Configuration > PolyShell Protection pour vérifier les extensions de fichiers autorisées/bloquées — aucune modification de code n’est nécessaire pour l’ajuster.

Protéger les téléversements dans les adresses client : désactiver le point de téléversement

Module : basecom/magento2-disable-customer-address-file-upload
Objectif : Désactive spécifiquement le point d’accès de téléversement de fichiers dans les adresses client — un chemin de téléversement différent de celui des options personnalisées, que la plupart des boutiques n’utilisent jamais : le désactiver supprime donc entièrement le risque au lieu de simplement le filtrer.

Installation via Composer :

composer require basecom/magento2-disable-customer-address-file-upload
bin/magento module:enable Basecom_DisableCustomerAddressFileUpload
bin/magento setup:upgrade
bin/magento cache:clean

Installation manuelle dans app/code (sans accès à Composer) : téléchargez le dépôt au format ZIP depuis GitHub, puis :

mkdir -p app/code/Basecom/DisableCustomerAddressFileUpload
# extract the downloaded ZIP contents into that folder, so that
# app/code/Basecom/DisableCustomerAddressFileUpload/registration.php exists
bin/magento module:enable Basecom_DisableCustomerAddressFileUpload
bin/magento setup:upgrade
bin/magento cache:clean

Une fois le module activé, toute tentative de téléversement de fichier via le formulaire d’adresse client ou l’API sera bloquée, ce qui ferme une surface d’attaque potentielle que de nombreuses boutiques négligent. Aucune configuration supplémentaire n’est requise.

Conclusion

La sécurité est un processus continu. Appliquer le dernier correctif d’Adobe protège le cœur de votre Magento 2. Les deux modules ci-dessus ont des rôles différents : l’un empêche les téléversements malveillants via les options personnalisées, l’autre ferme le point de téléversement distinct des adresses client. Aucun ne remplace l’autre — installez les deux, en plus du correctif du cœur, pour bénéficier d’une protection multicouche et avoir l’esprit tranquille.