Magento hat vor kurzem einen Patch bereit gestellt (SUPEE–6788) der mehrere Sicherheitslücken schließt, einschließlich einer Lücke im Zend Framework. Über diese Lücke ist es einem Angreifer möglich auf Systemdateien zuzugreifen.
Sicherheitslücke nun öffentlich – automatisierte Angriffe drohen
Da das Problem mittlerweile öffentlich wurde wird es nicht lange dauern bis automatisierte Angriffe auf Magento-Installationen mit diesem oder ähnlichen Code bekannt werden. Daher ist es wichtig und unumgänglich das dieser Patch so schnell wie möglich eingespielt wird. Der Patch ist bereits in der Magento Enterprise Edition 1.14.2.2 und Community Edition 1.9.2.2 enthalten, so dass anstelle den Patch einzuspielen auch auf die aktuelle Magento Version aktualisiert werden kann.
Patch per SSH oder FTP einspielen
Der Patch kann entweder über SSH-Zugriff oder per FTP eingespielt werden. Wie man einen Patch einspielt haben wir bereits in einem frühreren Beitrag „Alle Magento Versionen von einer kritischen Sicherheitslücke betroffen“ erläutert. Eine Anleitung für den aktuellen Patch findet sich bei Magentary oder MageComp. Welche Fallstricke es gibt und was zu Beachten ist, hat Simon Sprankel auf Magento Stackexchange beantwortet.
Folgende Dateien sind von dem Patch betroffen:
- .htaccess
- .htaccess.sample
- app/code/core/Mage/Admin/Model/Block.php
- app/code/core/Mage/Admin/Model/Resource/Block.php
- app/code/core/Mage/Admin/Model/Resource/Block/Collection.php
- app/code/core/Mage/Admin/Model/Resource/Variable.php
- app/code/core/Mage/Admin/Model/Resource/Variable/Collection.php
- app/code/core/Mage/Admin/Model/Variable.php
- app/code/core/Mage/Admin/etc/config.xml
- app/code/core/Mage/Admin/sql/admin_setup/upgrade-1.6.1.1-1.6.1.2.php
- app/code/core/Mage/Adminhtml/Block/Permissions/Block.php
- app/code/core/Mage/Adminhtml/Block/Permissions/Block/Edit.php
- app/code/core/Mage/Adminhtml/Block/Permissions/Block/Edit/Form.php
- app/code/core/Mage/Adminhtml/Block/Permissions/Block/Grid.php
- app/code/core/Mage/Adminhtml/Block/Permissions/Variable.php
- app/code/core/Mage/Adminhtml/Block/Permissions/Variable/Edit.php
- app/code/core/Mage/Adminhtml/Block/Permissions/Variable/Edit/Form.php
- app/code/core/Mage/Adminhtml/Block/Permissions/Variable/Grid.php
- app/code/core/Mage/Adminhtml/controllers/Permissions/BlockController.php
- app/code/core/Mage/Adminhtml/controllers/Permissions/VariableController.php
- app/code/core/Mage/Adminhtml/etc/adminhtml.xml
- app/code/core/Mage/Catalog/Model/Product/Option/Type/File.php
- app/code/core/Mage/Core/Controller/Front/Action.php
- app/code/core/Mage/Core/Controller/Varien/Router/Admin.php
- app/code/core/Mage/Core/Helper/UnserializeArray.php
- app/code/core/Mage/Core/Model/Email/Template/Filter.php
- app/code/core/Mage/Core/Model/Resource/Setup.php
- app/code/core/Mage/Core/etc/config.xml
- app/code/core/Mage/Core/etc/system.xml
- app/code/core/Mage/Customer/Block/Account/Changeforgotten.php
- app/code/core/Mage/Customer/Block/Account/Resetpassword.php
- app/code/core/Mage/Customer/controllers/AccountController.php
- app/code/core/Mage/Downloadable/Model/Product/Type.php
- app/code/core/Mage/Eav/Model/Resource/Attribute/Collection.php
- app/code/core/Mage/Sales/Model/Resource/Order/Item/Collection.php
- app/code/core/Mage/Sales/controllers/DownloadController.php
- app/code/core/Mage/SalesRule/Model/Resource/Coupon/Collection.php
- app/design/adminhtml/default/default/layout/admin.xml
- app/design/frontend/base/default/layout/customer.xml
- app/design/frontend/base/default/template/customer/form/register.phtml
- app/design/frontend/base/default/template/customer/form/resetforgottenpassword.phtml
- app/design/frontend/base/default/template/persistent/customer/form/register.phtml
- app/design/frontend/default/iphone/layout/customer.xml
- app/design/frontend/default/modern/layout/customer.xml
- app/design/frontend/rwd/default/layout/customer.xml
- app/design/frontend/rwd/default/template/customer/form/resetforgottenpassword.phtml
- app/design/frontend/rwd/default/template/persistent/customer/form/register.phtml
- cron.php
- dev/tests/functional/.htaccess
- errors/processor.php
- lib/Unserialize/Parser.php
- lib/Unserialize/Reader/Arr.php
- lib/Unserialize/Reader/ArrKey.php
- lib/Unserialize/Reader/ArrValue.php
- lib/Unserialize/Reader/Bool.php
- lib/Unserialize/Reader/Dbl.php
- lib/Unserialize/Reader/Int.php
- lib/Unserialize/Reader/Str.php
- lib/Varien/Data/Collection/Db.php
- lib/Zend/Xml/Security.php
Patch verursacht Fehler in Plugins
Momentan sind noch viele Plugins nicht kompatibel mit dem Patch. Eine Übersicht findet sich hier.
Ist mein Shop betroffen?
Um das zu beantworten kann man den Online-Dienst MageReport nutzen. Im Blog von Sucuri kann man nachlesen welcher Schadcode auf Seiten eingeschleust wird.