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.
Wer am Mac sitzt kann einfach die Konsole nutzen:
ssh user@domain.de -p 222 (-p Port)
Dann einfach Passwort für „user“ eingeben und wie oben schon beschrieben ins Magento-Directory gehen und den Patch starten. Cache leeren, fertig!
Hallo Nolom,
vielen Dank für den Hinweis für Mac-User.
Beste Grüße
Sebastian
Vielen Dank Sebastian für diesen hilfreichen Artikel !
Allgemein gefällt mir der Blog sehr gut… Ich werde in Zukunft wohl öfter mal „vorbeischauen“ ;-)
Beste Grüße
Mario
Cache leeren und alles wird funktionieren.
Danke für die hilfreichen Tutorials! Ohne euch wäre ich wirklich ein wenig verloren manchmal. Ich schaue oft vorbei und werde das auch in Zukunft tun. Weiter so!
In letzter Zeit stand Magento leider häufiger unter Beschuss. :( Schön das ihr auch darüber berichtet und auch eine Fehlerbehebung dokumentiert habt. Wir aktualisieren auch ständig unseren Blogpost (http://www.studio1.de/blog/sicherheitsluecken-in-websystemen.html), um über aktuelle Sicherheitslücken in CMS zu berichten. Viele befassen sich wahrscheinlich auch gar nicht oft mit den Themen. Wenn dann die eigenen Website oder der Onlineshop kompromittiert wurde, ist das Geschrei dann groß.
Danke Sebastian für den wirklich informativen Artikel. Mag-Tuorials ist immer einen Besuch wert!
Weiter so
Hey Sebastian,
danke für die wirklich sehr nützlichen Infos!
Viele Grüße
Peter
Wirklich toll die Tutorials, die du immer machst. Sie haben mir schon in so mancher Situation extrem weiter geholfen. Danke dafür!