Lyhyesti: Shopware 6 -haavoittuvuus, jota monet kauppiaat nyt etsivät, on oikeasti PHP:n haavoittuvuus. Shopware-päivitykset eivät sulje sitä. Tarvitsette korjatun PHP:n ja kaikkien prosessien uudelleenkäynnistyksen, ja sen jälkeen kannattaa tarkistaa .env, custom/plugins, public-hakemisto ja API-integraatiot.
Mitä PHP2Shell tarkoittaa Shopware 6:lle
Shopware 6 perustuu PHP-kehykseen Symfony ja toimii yleensä PHP-FPM:llä Nginxin tai Apachen takana. Haavoittuvuudet CVE-2026-109618 ja CVE-2026-109619 koskevat juuri tätä ajotapaa. PHP-tiimin mukaan ne sallivat haittakoodin suorittamisen etänä ilman kirjautumista kauppaan.
Palvelimella koodia suorittava hyökkääjä yltää kaikkeen, mihin kauppa itsekin pääsee: asiakastietoihin, tilauksiin, laskuasiakirjoihin sekä tavarahallinnan ja maksupalveluiden tunnuksiin. Tekniset taustat selitämme sivulla Mikä PHP2Shell on?.
Shopware 6 -haavoittuvuuden tarkistus: mikä PHP todella toimii?
Shopware 6:ta ylläpidetään paljon komentoriviltä, esimerkiksi komennolla bin/console. Siinä on helppo erehtyä: php -v näyttää komentorivin PHP:n version, ei välttämättä sen PHP-FPM:n, joka käsittelee kaupan pyynnöt. Monella palvelimella on useita PHP-versioita rinnakkain.
Luotettavia ovat hosting-paneelin tieto kyseiselle verkkotunnukselle ja palveluntarjoajan vahvistus pakettien tilasta. Korjatut upstream-versiot ovat 8.5.12, 8.4.27, 8.3.36 ja 8.2.35; backportit voivat kantaa vanhempia numeroita. Mitä PHP-versioita teidän Shopware-versionne tukee, tarkistatte järjestelmävaatimuksista shopware.comin dokumentaatiosta. Oman tarkistuksen ohje on sivulla PHP-version ja korjaustilan tarkistaminen oikein.
Yksi seikka jää Shopware 6:ssa usein huomaamatta: monet kaupat käsittelevät viestijonon ja ajastetut tehtävät jatkuvasti käynnissä olevilla taustaprosesseilla, esimerkiksi bin/console messenger:consume prosessinhallinnan alla. Nämä prosessit lataavat PHP:n kerran käynnistyessään. Päivityksen jälkeen on siksi käynnistettävä uudelleen paitsi PHP-FPM myös nämä workerit. Muuten osa kaupasta toimii yhä vanhalla, haavoittuvalla PHP:llä muistissa.
Hakemistot ja tiedostot, jotka kannattaa tuntea
| Paikka | Sisältö | Miksi tärkeä |
|---|---|---|
.env, .env.local |
Tietokantatunnukset, APP_SECRET, muut avaimet |
Uusittava epäilyn jälkeen |
public/ |
Dokumenttijuuri: index.php, media, teematiedostot |
Ylimääräiset PHP-tiedostot ovat epäilyttäviä |
public/theme/ |
Storefrontin käännetyt JavaScript- ja CSS-tiedostot | Paikka sisään ujutetuille skimmereille |
custom/plugins/, custom/apps/ |
Laajennukset | Muutettu liitännäiskoodi |
files/ |
yksityiset tiedostot, kuten laskut ja lähetyslistat | Henkilötietoja |
var/log/ |
Kaupan lokit | Jäljet talteen |
Vaarattomat ensitarkistukset:
# Näytetään asennetut liitännäiset versioineen ja tiloineen
bin/console plugin:list
# Listataan PHP-tiedostot julkisessa hakemistossa
find public -type f -name "*.php"
# Näytetään Composer-riippuvuuksien tunnetut aukot
composer audit
Hakemistossa public/ pitäisi olla vain muutama tunnettu PHP-tiedosto. Kaikki tuntematon kuuluu varmuuskopioida ja tutkia, ei poistaa heti.
Tarkistakaa hallinnassa kohdasta Asetukset > Järjestelmä osiot ”Käyttäjät ja oikeudet” ja ”Integraatiot”. Tuntemattomat käyttäjät tai API-integraatiot ovat takaovi, jonka mikään tiedostoskannaus ei löydä.
Ylläpidon pääsy, liitännäiset ja sovellukset riskeinä
Hallinta on oletuksena osoitteessa /admin. Suojatkaa se henkilökohtaisilla tileillä, vahvalla tunnistautumisella ja mahdollisuuksien mukaan rajaamalla pääsy tunnettuihin verkkoihin. Tavarahallinnan, kauppapaikkojen tai toimituspalvelujen integraatioilla pitäisi olla vain ne oikeudet, joita ne todella tarvitsevat.
Kaupasta ladatut liitännäiset ja omat kehitykset tuovat mukanaan omaa PHP-koodia, sovellukset lisäksi webhookeja ulkoisille palvelimille. Mitä enemmän laajennuksia, sitä suurempi hyökkäyspinta ja sitä työläämpi jokainen PHP-päivitys. Poistakaa käyttämättömät liitännäiset kokonaan.
Mihin Shopware-päivitys pystyy ja mihin ei
Shopwaren tai liitännäisen päivitys sulkee tämän koodin tunnetut virheet. Se ei voi:
- korjata palvelimen PHP:tä,
- käynnistää vanhoja PHP-FPM-prosesseja uudelleen,
- poistaa turvallisesti vieraita tiedostoja hakemistosta
public/tai muokattuja teematiedostoja, - poistaa vieraita käyttäjiä tai integraatioita,
- todistaa, ettei ennen korjausta ole tapahtunut mitään.
PHP-päivityksen jälkeen uuteen pääversioon kannattaa luoda välimuisti ja teema uudelleen ja tarkistaa kauppa testiympäristössä. PHP-vaihdon todisteineen hoitaa pyynnöstä PHP-korjauspalvelumme.
Suuremmilla kauppiailla Shopware 6 toimii usein usealla sovelluspalvelimella. Silloin jokainen palvelin on korjattava ja käynnistettävä uudelleen, myös ne, jotka hoitavat vain taustatehtäviä. Jos palveluntarjoaja ylläpitää kauppaa hallinnoituna alustana, sen tulisi vahvistaa teille tila kaikille solmuille.
Miten PHP SOS auttaa konkreettisesti?
- Selvitämme, mitä PHP:tä kauppanne todella käyttää FPM:n kautta, ja sovimme korjauksesta ja uudelleenkäynnistyksestä hosting-palveluntarjoajan tai toimiston kanssa.
- Varmuuskopioimme lokit 20.10.2026 alkaen, tietokannan ja tiedostot.
- Tarkistamme
public/-hakemiston, käännetyt teematiedostot, liitännäiset, käyttäjät ja integraatiot poikkeamien varalta. - Löydöksen yhteydessä puhdistamme kaupan yhdessä toimistonne kanssa ja uusimme avaimet ja tunnukset järjestelmällisesti.
Usein kysytyt kysymykset
Koskeeko PHP2Shell Shopware 6:ta itseään?
Aukot ovat PHP:ssä, eivät Shopware-koodissa. Jokainen Shopware 6 -kauppa korjaamattomalla PHP:llä on siksi mahdollisesti haavoittuva Shopware-versiosta riippumatta. Shopware-päivitys ei muuta sitä.
Mikä Shopware 6:n tiedosto on hyökkäyksen jälkeen erityisen kriittinen?
Tiedosto .env tai .env.local, jossa ovat tietokantatunnukset ja APP_SECRET. Jos joku on voinut lukea sen, hän tuntee tunnuksenne. Epäilyn jälkeen nämä arvot kannattaa uusia yhdessä toimistonne kanssa.
Mitä integraatiot ovat Shopware 6:ssa ja miksi ne tarkistetaan?
Integraatiot ovat API-yhteyksiä ulkoisille järjestelmille, kuten tavarahallinnalle tai kauppapaikoille. Vieras integraatio ylläpitäjän oikeuksilla antaa täyden pääsyn kauppaan API:n kautta, vaikka palvelimella ei olisi yhtään tiedostoa.