Stručne: Aktuálna zraniteľnosť Magento sa volá PHP2Shell a nie je v Magento, ale v PHP. Záplata Magento ju neuzatvorí. Po aktualizácii PHP s reštartom by ste mali skontrolovať app/etc/env.php, databázu na skimmery a zoznam účtov administrátorov.
Čo PHP2Shell znamená pre obchody na Magento
Magento Open Source a Adobe Commerce sú veľké aplikácie v PHP, ktoré väčšinou bežia s PHP-FPM. Zraniteľnosti CVE-2026-109618 a CVE-2026-109619 podľa tímu PHP umožňujú spustenie škodlivého kódu bez prihlásenia. Či je samotný obchod aktuálny, na tom nezáleží.
Obchody na Magento sú už roky obľúbeným cieľom skimmingu kreditných kariet, pri ktorom sa odpočúvajú zadané údaje v pokladni. PHP2Shell k tomu otvára ďalšiu cestu. Palo Alto Networks napočítalo viac než 22,6 milióna exponovaných, potenciálne zraniteľných inštancií PHP; ktoré obchody medzi nimi sú, nie je známe.
Zraniteľnosť Magento: správne zistiť stav PHP
Magento verziu PHP v administrácii nezobrazuje výrazne. Stav preto skontrolujte v hostingovom paneli pre doménu alebo si ho nechajte potvrdiť poskytovateľom hostingu. php -v v príkazovom riadku ukazuje len PHP CLI, s ktorým bežia bin/magento a cron úlohy. Webové PHP cez FPM môže byť iná verzia a záplatované musia byť obe.
Opravené upstream verzie sú 8.5.12, 8.4.27, 8.3.36 a 8.2.35; backporty distribúcií môžu niesť staršie čísla. Ktoré verzie PHP vaša verzia Magento podporuje, skontrolujte podľa systémových požiadaviek v dokumentácii Adobe (experienceleague.adobe.com). Pri Adobe Commerce na infraštruktúre Adobe sa na stav spýtajte Adobe alebo svojho prevádzkovateľa. Návod krok za krokom ponúka stránka Správne skontrolovať verziu PHP a stav záplat.
Kde sa škodlivý kód v Magento nachádza
| Miesto | Obsah | Bod kontroly |
|---|---|---|
app/etc/env.php |
Databáza, šifrovací kľúč, cesta do admina | Dátum zmeny, hodnoty pri podozrení obnoviť |
pub/ |
Koreň dokumentov, pub/media, pub/static |
Súbory PHP v priečinkoch media a static |
app/code/ |
Vlastné moduly | Neznáme moduly, zmenené súbory |
vendor/ |
Balíky Composeru, aj rozšírenia | Odchýlky od lockfile |
generated/, var/ |
Vygenerovaný kód, cache, logy | Zálohovať logy, kód vygenerovať znovu |
| Databáza | Konfigurácia, bloky CMS, administrátorskí používatelia | Cudzie skripty, noví admini |
Skimmery sa v Magento často nachádzajú v databáze, napríklad v nastaveniach pre dodatočné skripty v hlavičke alebo päte stránky a v blokoch CMS. Samotné skenovanie súborov ich prehliadne. Neškodné čítacie prístupy pomôžu pri prvom pohľade (predpona tabuliek podľa inštalácie):
bin/magento info:adminuri
bin/magento module:status
SELECT username, email, created FROM admin_user;
SELECT path, value FROM core_config_data WHERE path LIKE 'design/%' AND value LIKE '%<script%';
Vyčistená pokladňa neznamená, že nič neuniklo. Zálohujte logy od 20. 10. 2026 a výpisy databázy skôr, než odstránite skripty. Iba tak sa neskôr dá zistiť, odkedy a ktorých objednávok sa to týkalo.
Administračná oblasť a rozšírenia
Cesta do administrácie je v Magento voliteľná a nachádza sa v env.php. Ťažko uhádnuteľná cesta je užitočná, no nenahrádza dvojfaktorové prihlásenie ani obmedzenie na známe siete. Pravidelne kontrolujte administrátorských používateľov a ich roly, rovnako integrácie a tokeny API.
Rozšírení od tretích strán je pri Magento veľa: platobné metódy, napojenia na ERP, moduly pre vyhľadávanie a marketing. Každé prináša kód, ktorý sa musí pri aktualizáciách PHP skontrolovať. Pravidelne používajte composer audit a vypnuté moduly odstráňte úplne.
Myslite aj na procesy na pozadí. Magento pracuje s cron úlohami a často s consumermi front, ktoré bežia ako samostatné procesy PHP cez príkazový riadok. Po aktualizácii PHP sa musia reštartovať rovnako ako PHP-FPM. Po zmene hlavnej verzie PHP by ste navyše mali nechať znovu zostaviť vygenerovaný kód v generated/ a statické súbory a obchod prejsť v testovacom prostredí, skôr než sa obnoví ostrá prevádzka. Ako sa reštart podarí čisto, popisuje stránka Reštartovať PHP-FPM a všetkých workerov.
Čo aktualizácia Magento dokáže a čo nie
Vydanie Magento alebo bezpečnostná záplata od Adobe uzatvára chyby v kóde obchodu. PHP nezáplatuje, nereštartuje procesy FPM, neodstráni skripty z databázy a nezmaže cudzie účty administrátorov. Ak sa kód už vykonal, je potrebné vyšetrenie. Ako rozpoznať zadné vrátka, vysvetľuje stránka Rozpoznať a odstrániť webshelly.
Pre obchodníkov s platbou kartou platí navyše: skontrolujte pravidlá svojho poskytovateľa platieb pre bezpečnostné incidenty a pred obnovením kľúčov sa s ním dohodnite. Či je potrebné oznámenie dozornému orgánu na ochranu údajov, vyjasnite so svojou zodpovednou osobou za ochranu údajov alebo s právnikom.
Ako konkrétne pomáha PHP SOS?
- Objasníme webové a CLI PHP vášho servera Magento a necháme si potvrdiť záplatu a reštart.
- Logy, súbory a databázu zálohujeme preukázateľne, v prípade potreby cez našu IT forenznú analýzu.
- Kontrolujeme
env.php,pub/, moduly, konfiguračné tabuľky, bloky CMS a účty administrátorov. - Vyčistíme, obnovíme kľúče a prístupy a zdokumentujeme obdobie možného zasiahnutia pre ochranu údajov a poskytovateľa platieb.
Časté otázky
Uzatvára bezpečnostná záplata Magento aj PHP2Shell?
Nie. Záplaty Magento odstraňujú chyby v kóde obchodu. PHP2Shell je v interpreteri PHP na serveri a uzatvára sa len aktualizáciou PHP alebo potvrdeným backportom s reštartom všetkých procesov.
Kde útočníci v Magento ukrývajú skimmery kreditných kariet?
Často nie v súboroch, ale v databáze, napríklad v nastaveniach pre dodatočné skripty v hlavičke stránky alebo v blokoch CMS. Preto po podozrení vždy patrí k veci aj kontrola databázy.
Kto záplatuje PHP pri Adobe Commerce v cloude?
Závisí to od vašej zmluvy a vášho prostredia. Spýtajte sa Adobe alebo svojho prevádzkovateľa písomne na stav PHP a reštart. Vlastné rozšírenia a obsah databázy zostávajú vo vašej zodpovednosti.
Prečo je app/etc/env.php taký dôležitý?
Súbor obsahuje prístup k databáze, šifrovací kľúč a cestu do administračnej oblasti. Kto ho mohol čítať, môže dešifrovať zašifrované hodnoty a nájsť admin. Pri podozrení by sa tieto hodnoty mali obnoviť.