Eigenaren van een Magento 2-winkel: het is tijd om snel in actie te komen. Adobe heeft onlangs een belangrijke beveiligingsupdate uitgebracht die een kritiek probleem verhelpt waarmee ongeautoriseerde code kon worden uitgevoerd. Als uw winkel nog niet is gepatcht, moet u direct handelen. Zet na het toepassen van de patch nog een belangrijke stap: schakel ongebruikte en risicovolle endpoints voor bestandsuploads uit, zoals bestandsuploads bij klantadressen en bestandsuploads via aangepaste opties.
Goed nieuws - de officiële patch van Adobe is uit
Goed nieuws: Adobe heeft het probleem op tijd opgelost en een noodpatch uitgebracht die de kwetsbaarheid volledig verhelpt.
Nu is het uw beurt - pas de patch toe en bescherm uw winkel. Wacht niet, handel nu.
Volg hier de officiële instructies van Adobe: Patchinstructies van Adobe.
Zo past u de patch toe
Download de patch VULN-32437-2-4-X en voer de volgende commando’s uit vanuit de hoofdmap van uw Magento 2-installatie:
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
Nadat u deze commando’s heeft uitgevoerd, ziet u een wijziging in vendor/magento/framework/Webapi/ServiceInputProcessor.php die er ongeveer zo uitziet:
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) {
Integratie van de patch in latere versies
Sinds 14 oktober heeft Adobe de fix officieel opgenomen in de release APSB25-94. U kunt dit controleren in het Adobe Security Bulletin.
Winkels die de volgende versies draaien, zijn al beschermd:
- Magento 2.4.6-p13
- Magento 2.4.7-p8
- Magento 2.4.8-p3
Draait u een van deze releases, dan zit u goed - maar controleer voor de zekerheid uw updatestatus, zodat u beschermd bent tegen APSB25-94 en gerelateerde kwetsbaarheden.
Beveilig uw winkel nu nog beter
Zet na het patchen de volgende proactieve stap: sluit de twee upload-endpoints in Magento 2 af die het vaakst worden misbruikt. Dit zijn twee afzonderlijke toegangspunten die elk een eigen oplossing vereisen - de ene betreft bestandsuploads via aangepaste opties (gebruikt wanneer klanten bij een product een bestand kunnen uploaden, bijv. een logo om te graveren), de andere het attribuut voor bestandsuploads bij klantadressen. Beide zijn belangrijk en betreffen verschillende endpoints - we raden aan ze allebei te installeren.
Bescherm uploads via aangepaste opties: de module PolyShell Protection
aregowe/magento2-module-polyshell-protectionDoel: Gelaagde verdediging tegen de PolyShell-kwetsbaarheid voor onbeperkte bestandsuploads (APSB25-94) in Magento Open Source en Adobe Commerce tot en met 2.4.9-alpha2 - die het vaakst wordt misbruikt via bestandsuploads via aangepaste opties op productpagina’s. De module combineert acht afzonderlijke beschermingen - blokkering van request-paden, uploadpreventie op controllerniveau, detectie van polyglot-bestanden en verharding van afbeeldingen op frameworkniveau - verdeeld over negen plugins voor REST API-upload-endpoints, het serveren van media en beeldverwerking.
Installeren via Composer (aanbevolen als uw host dit ondersteunt):
composer require aregowe/magento2-module-polyshell-protection
bin/magento module:enable Aregowe_PolyShellProtection
bin/magento setup:upgrade
bin/magento cache:flush
Handmatig installeren in app/code (geen Composer-toegang nodig): download de repository als ZIP van GitHub en voer daarna uit:
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
Ga na het inschakelen naar Stores > Configuration > PolyShell Protection om de toegestane/geblokkeerde bestandsextensies te bekijken - voor verdere afstemming zijn geen codewijzigingen nodig.
Bescherm uploads bij klantadressen: schakel het upload-endpoint uit
basecom/magento2-disable-customer-address-file-uploadDoel: Schakelt specifiek het endpoint voor bestandsuploads bij klantadressen uit - een ander uploadpad dan dat van aangepaste opties, en een dat de meeste winkels nooit gebruiken. Door het uit te schakelen verdwijnt het risico volledig in plaats van dat het alleen wordt gefilterd.
Installeren 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
Handmatig installeren in app/code (geen Composer-toegang nodig): download de repository als ZIP van GitHub en voer daarna uit:
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
Na het inschakelen worden alle pogingen tot bestandsupload via het klantadresformulier of de API geblokkeerd, waarmee een potentieel aanvalsoppervlak wordt gesloten dat veel winkels over het hoofd zien. Verdere configuratie is niet nodig.
Slotgedachten
Beveiliging is een doorlopend proces. Met de nieuwste patch van Adobe blijft de core van uw Magento 2-installatie veilig. De twee modules hierboven doen verschillende dingen: de ene voorkomt kwaadaardige uploads via aangepaste opties, de andere sluit het afzonderlijke upload-endpoint voor klantadressen. Geen van beide vervangt de andere - installeer ze allebei, naast de core-patch, voor gelaagde bescherming en gemoedsrust.

