Lyhyesti: PrestaShopin haavoittuvuus, joka nyt on otsikoissa, on PHP2Shell, ja se on PHP:ssä, ei kaupassa. PrestaShop-päivitys ei auta siihen. PHP-korjauksen ja uudelleenkäynnistyksen jälkeen tarkistakaa kansio override, moduulit, kassa ja työntekijätilit.
Mitä PHP2Shell tarkoittaa PrestaShop-kauppiaille
PrestaShop on PHP-sovellus, joka on yleinen pienillä ja keskisuurilla kauppiailla, usein jaetussa hostingissa tai yksinkertaisilla virtuaalipalvelimilla. PHP-tiimin mukaan haavoittuvuudet CVE-2026-109618 ja CVE-2026-109619 sallivat haittakoodin suorittamisen etänä ilman kirjautumista kaupan tilasta riippumatta.
Verkkokaupassa on paljon pelissä: asiakastilit, osoitteet, tilaukset, laskut ja pääsy maksu- ja toimituspalveluihin. Hyökkääjät tähtäävät kaupoissa usein kassaan, jossa he voivat lukea maksusyötteet ennen kuin ne tavoittavat maksupalveluntarjoajan.
Lisäksi ajalla on merkitystä. Mediaraporttien mukaan ensimmäinen hyökkäysyritys havaittiin 17.10.2026, ja korjaukset julkaistiin 21.10.2026. Kauppa, joka oli tänä aikana tavoitettavissa, voi olla vaikutuksen alainen, vaikka kaikki näyttäisi tänään normaalilta. Vahvistettuja Indicators of Compromise -tunnisteita ei toistaiseksi ole; viitteitä saadaan epätavallisesta käyttäytymisestä, uusista tiedostoista ja tietokannan muutoksista.
PrestaShopin haavoittuvuus: PHP-version tarkistus Back Officessa
Kohta Lisäasetukset > Tiedot näyttää PrestaShopin käynnissä olevan asennuksen palvelin- ja PHP-tiedot. Korjatut upstream-versiot ovat 8.5.12, 8.4.27, 8.3.36 ja 8.2.35. Hosting-palveluntarjoajat tuovat korjauksia osin backporttina, jolloin näytetty numero pysyy samana. Pyytäkää tila kirjallisesti vahvistettuna.
Mitä PHP-versioita teidän PrestaShop-versionne tukee, tarkistatte valmistajan dokumentaation järjestelmävaatimuksista osoitteessa prestashop.com. Vanhemmat versioiden 1.6 ja 1.7 kaupat toimivat usein vanhoilla PHP-versioilla; silloin pätee sivun Pikatoimet ilman korjausta sisältö, kunnes päivitys on mahdollinen.
Haittakoodin tyypilliset piilopaikat PrestaShopissa
| Paikka | Sisältö | Tarkistuskohde |
|---|---|---|
app/config/parameters.php (vanhemmissa versioissa config/settings.inc.php) |
Tietokantatunnukset, evästeavain | Muutospäivä, uusittava epäilyn jälkeen |
override/ |
ylikirjoitetut luokat ja ohjaimet | jokaisen tiedoston on oltava selitettävissä |
modules/ |
Marketplacen ja kolmansien osapuolten moduulit | tuntemattomat moduulit, muutetut tiedostot |
themes/ |
mallipohjat ja JavaScript, myös kassalle | vieraat skriptit |
img/, upload/, download/ |
kuvat, asiakkaiden lataukset, digitaaliset tuotteet | ei PHP-tiedostoja |
var/cache/, var/logs/ |
välimuisti ja lokit | lokit talteen, välimuisti luodaan uudelleen |
install/ |
asennuskansio | ei saa olla olemassa tuotantokäytössä |
Kansio override ansaitsee erityistä huomiota. Siihen tallennettu koodi korvaa osia PrestaShopista, esimerkiksi tilaus- tai maksukäsittelyä, eikä sitä poisteta päivityksissä automaattisesti.
Vaarattomat tarkistukset komentorivillä ja tietokannassa (taulujen etuliite asennuksesta riippuen):
find override -name "*.php" -newermt "2026-10-17"
find img upload download -type f -name "*.php"
ls -d admin*
SELECT email, firstname, lastname, active FROM ps_employee;
Jos asiakkaat ilmoittavat epätavallisista maksusivuista tai korttikäytöstä oston jälkeen, ottakaa kassa pois verkosta ja varmuuskopioikaa lokit 20.10.2026 alkaen. Muokattu kassa voi kaapata tietoja jokaisella uudella ostolla.
Back Office, työntekijätilit ja moduulit
Back Office sijaitsee asennuksessa annetulla yksilöllisellä nimellä varustetussa hakemistossa. Tarkistakaa kohdassa Lisäasetukset työntekijätilit ja profiilit tuntemattomien tai orpojen tunnusten varalta, esimerkiksi aiempien toimistojen. Rajatkaa admin-hakemisto mahdollisuuksien mukaan tunnettuihin verkkoihin.
Marketplacen ja kolmansien osapuolten moduulit laajentavat maksua, toimitusta, markkinointia ja rajapintoja. Jokainen moduuli on lisää PHP-koodia, ja ylläpitämättömät moduulit kuuluvat PrestaShop-kauppojen yleisimpiin sisäänpääsyreitteihin. Poistakaa käyttämättömät moduulit asennuksesta ja tiedostoista sen sijaan, että vain poistaisitte ne käytöstä. Tarkistakaa myös API:n Webservice-avaimet tuntemattomien merkintöjen varalta.
Mihin PrestaShop-päivitys pystyy ja mihin ei
PrestaShopin tai yksittäisten moduulien päivitys sulkee tämän koodin virheitä. Se ei korjaa PHP:tä, ei käynnistä prosesseja uudelleen eikä poista overrideja, vieraita moduuleja, teeman skriptejä eikä uusia työntekijätilejä. Jos henkilötietoja on kaapattu, voi lisäksi olla ilmoitusvelvollisuus; yleistä tietoa tarjoaa sivu GDPR-ilmoitusvelvollisuus: 72 tuntia, yksittäistapauksen arvion tekee tietosuojavastaavanne. Mitä kauppiaiden pitäisi lisäksi huomioida, tiivistää sivu Verkkokauppojen tietoturva.
Kaupoissa, joissa on useita maita tai Multistore-toiminto, samalla asennuksella toimii usein useita verkkotunnuksia. Löydös koskee silloin kaikkia kauppoja, vaikka poikkeama olisi huomattu vain yhdessä.
Miten PHP SOS auttaa konkreettisesti?
- Selvitämme hosting-palveluntarjoajanne kanssa PHP:n tilan, backportin ja uudelleenkäynnistyksen.
- Varmuuskopioimme lokit, tiedostot ja tietokannan ja dokumentoimme lähtötilanteen.
- Tarkistamme overridet, moduulit, teeman, latauskansiot, työntekijätilit ja Webservice-avaimet.
- Löydösten yhteydessä haittaohjelman poistomme hoitaa puhdistuksen ja tunnusten uusimisen.
Usein kysytyt kysymykset
Sulkeeko PrestaShop-päivitys PHP2Shellin?
Ei. PrestaShop-päivitykset korjaavat kaupan koodin virheitä. PHP2Shell-aukot ovat PHP-tulkissa, ja ne suljetaan vain PHP-päivityksellä tai vahvistetulla backportilla ja kaikkien PHP-prosessien uudelleenkäynnistyksellä.
Mistä näen PrestaShopissa PHP-version?
Back Officessa kohdassa Lisäasetukset > Tiedot. Siellä ovat palvelin- ja PHP-tiedot. Asennettua backportia ei tunnista numerosta; sen vahvistaa hosting-palveluntarjoajanne.
Mikä override-kansio on ja miksi se tarkistetaan?
Kansiossa override voi ylikirjoittaa PrestaShopin luokkia ja ohjaimia. Siellä oleva koodi toimii alkuperäisen sijasta, esimerkiksi kassalla. Tuntemattomat overridet ovat siksi tärkeä tarkistuskohde epäilyn jälkeen.
Pitääkö admin-hakemisto olla nimetty uudelleen?
PrestaShop antaa asennuksessa admin-hakemistolle oman nimen. Se vaikeuttaa löytämistä, mutta ei korvaa vahvoja salasanoja, kaksivaiheista tunnistautumista eikä pääsyn rajausta.