Ajankohtainen tilanne: PHP2Shell. Kaksi kriittistä PHP-haavoittuvuutta (CVSS 9.2) sallii haittakoodin suorittamisen ilman kirjautumista. Korjaukset 21.10.2026 alkaen.Mitä nyt on tehtävä →

Craft CMS:n tietoturva PHP2Shellin jälkeen: toimistojen verkkosivustojen suojaus

Craft CMS toimii PHP:llä ja on usein toimistoilla käytössä monella asiakassivustolla. PHP2Shellin jälkeen ratkaisevat korjaus, uudelleenkäynnistys, suojattu Security Key ja Project Configin vertailu.

Tilanne Lukuaika 3 minAlustat

Lyhyesti: Craft CMS:n tietoturva riippuu PHP2Shellin jälkeen palvelimen PHP:stä, ei Craftista. Erityisesti toimistojen, joilla on monta Craft-sivustoa, kannattaa nyt tarkistaa jokainen palvelin erikseen. Korjauksen ja uudelleenkäynnistyksen jälkeen .env, Security Key, devMode, dokumenttijuuri ja Project Configin vertailu kuuluvat tarkistukseen.

Mitä PHP2Shell tarkoittaa Craft-sivustoille

Craft CMS on toimistojen suosiossa, koska se tarjoaa joustavat sisältömallit ja siistit mallipohjat. Siksi monet toimistot ylläpitävät kymmeniä Craft-sivustoja eri palvelimilla ja hosting-paketeissa. PHP-tiimin mukaan PHP-haavoittuvuudet CVE-2026-109618 ja CVE-2026-109619 sallivat haittakoodin suorittamisen etänä ilman kirjautumista, Craft-versiosta riippumatta.

Toimistoille tärkein kysymys on siksi organisatorinen: mikä sivusto toimii missä, millä PHP:llä ja kuka vastaa päivityksestä? Luettelo kaikista asennuksista palveluntarjoajineen, PHP-tiloineen ja yhteyshenkilöineen on ensimmäinen askel. Miten tuemme toimistoja tässä, kuvaa sivu Tietoturvakumppani toimistoille.

Craft CMS:n tietoturva: PHP-version tarkistus

Control Panelissa Työkalut > Järjestelmäraportti näyttää PHP-version, tietokannan ja asennetut liitännäiset. Se on versio, jolla sivusto toimii verkossa. Craft-konsoli php craft, jonon käsittely ja cron-ajot käyttävät sen sijaan komentorivi-PHP:tä. Molempien on oltava korjattuja.

Korjatut upstream-versiot ovat 8.5.12, 8.4.27, 8.3.36 ja 8.2.35. Monet hosting-palveluntarjoajat tuovat korjaukset backporttina; numero pysyy silloin samana. Mitkä versiot ovat haavoittuvia, näyttää sivu Mitkä PHP-versiot ovat haavoittuvia?. Mitä PHP-versioita teidän Craft-versionne tukee, tarkistatte järjestelmävaatimuksista craftcms.comin dokumentaatiosta.

Craft käsittelee taustatehtävät jonossa. Jos se toimii pysyvänä prosessina prosessinhallinnan alla, myös se on käynnistettävä PHP-päivityksen jälkeen uudelleen.

Craftin hakemistot ja asetukset

Paikka Sisältö Tarkistuskohde
.env Tietokantatunnukset, CRAFT_SECURITY_KEY, muut avaimet arvot uusittava epäilyn jälkeen
config/general.php devMode, allowAdminChanges, Control Panelin polku sisään ujutettu PHP-koodi
config/project/ Project Config YAML:na vertailu Gitiin
web/ Dokumenttijuuri: index.php, cpresources/, usein lataukset ylimääräiset PHP-tiedostot
storage/ Lokit, ajonaikaiset tiedostot, usein tietokantavarmuuskopiot ei saavutettavissa verkon kautta
templates/ Twig-mallipohjat vieras JavaScript
modules/, vendor/ omat moduulit ja liitännäiset muutetut tiedostot, composer audit

Usein huomaamatta jäävä kohta on storage/backups/. Craft tallentaa sinne tietokantavarmuuskopioita, jotka voivat sisältää täydellisiä asiakas- ja lomaketietoja. Tämä kansio ei saa koskaan olla dokumenttijuuren alapuolella.

Vaarattomat tarkistukset komentorivillä:

# Näytetään Project Configin ja tietokannan erot
php craft project-config/diff
# PHP-tiedostot dokumenttijuuressa paitsi index.php
find web -type f -name "*.php" ! -name "index.php"
composer audit
Tärkeää

Tuotannossa devMode kuuluu olla false. Kun devMode on päällä, Craft näyttää yksityiskohtaisia virheilmoituksia poluilla ja koodiotteilla, jotka helpottavat hyökkääjien työtä.

Control Panel, käyttäjät ja liitännäiset

Control Panel sijaitsee oletuksena osoitteessa /admin. Tarkistakaa, kenellä on ylläpitäjän oikeudet, ja poistakaa entisten työntekijöiden ja freelancerien tunnukset. Craft tukee kaksivaiheista tunnistautumista; käyttäkää sitä kaikilla korotetuilla oikeuksilla varustetuilla tileillä.

Asettakaa tuotannossa allowAdminChanges arvoon false. Silloin kenttiä, osioita ja liitännäisten asetuksia voi muuttaa vain versioidun Project Configin kautta, ja jokainen poikkeama näkyy Gitiin verrattaessa. Plugin Storen liitännäiset tuovat mukanaan omaa PHP-koodia; tarkistakaa, ylläpidetäänkö ne vielä ja sopivatko ne tavoiteltuun PHP-versioon.

// config/general.php, ote tuotantoympäristöä varten
'devMode' => false,
'allowAdminChanges' => false,

Mihin Craft-päivitys pystyy ja mihin ei

Craftin tai liitännäisen päivitys sulkee tämän koodin virheitä ja voi mahdollistaa uudemmat PHP-versiot. Se ei korjaa PHP:tä, ei käynnistä PHP-FPM:ää eikä jonoa uudelleen, ei uusi vuotanutta Security Keytä eikä poista vieraita tiedostoja hakemistoista web/ tai storage/.

Toimistoille, joilla on monta Craft-asennusta, korjauksen jälkeen korostuu toistettavuus. Kirjatkaa jokaisesta sivustosta ylös, mikä PHP-versio on käytössä webissä ja komentorivillä, milloin uudelleenkäynnistys vahvistettiin ja olivatko tarkistukset poikkeavia. Tämä yleiskatsaus auttaa asiakkaiden kysymyksissä ja tulevissa ilmoituksissa. Ajatelkaa myös julkisesti tavoitettavia staging- ja kehitysympäristöjä. Ne toimivat usein devMode:lla, vanhemmilla tiloilla ja oikeilla asiakastiedoilla, ja ne unohtuvat mielellään päivityksissä. Jos on epäselvää, koskeeko asia asiakassivustoa, tiedottakaa asiakasta asiallisesti sen sijaan, että odottaisitte.

Miten PHP SOS auttaa konkreettisesti?

  • Kartoitamme kanssanne kaikki Craft-asennukset palveluntarjoajineen, PHP-tiloineen ja vastuineen.
  • Varmennamme korjauksen ja uudelleenkäynnistyksen palvelinkohtaisesti ja varmuuskopioimme lokit 20.10.2026 alkaen.
  • Tarkistamme dokumenttijuuren, storage:n, asetukset, käyttäjät ja Project Configin vertailun.
  • Pyynnöstä hoidamme asiakassivustojenne jatkuvan tietoturvahuollon tietoturvahuoltosopimuksessa, myös nimissänne.

Usein kysytyt kysymykset

Koskeeko PHP2Shell Craft CMS:ää?

Craft CMS:ssä itsessään ei ole uutta aukkoa. Se toimii kuitenkin PHP:llä, ja PHP2Shell on PHP:ssä. Jokainen Craft-asennus korjaamattomalla palvelimella on siksi mahdollisesti haavoittuva Craft-versiosta riippumatta.

Mistä Craft näyttää PHP-version?

Control Panelissa kohdassa Työkalut > Järjestelmäraportti. Siellä ovat PHP-versio, tietokanta ja asennetut liitännäiset. Asennettua backportia ei tunnista numerosta; sen vahvistaa hosting-palveluntarjoajanne.

Mikä Security Key on Craftissa ja miksi se uusitaan?

Tiedoston .env Security Key on tarkoitettu tietojen allekirjoittamiseen ja salaamiseen. Se, joka tuntee sen, voi olosuhteista riippuen väärentää istuntoja tai lomaketietoja. Epäilyn jälkeen se kannattaa uusia sovittuna toimistonne kanssa.

Mitä hyötyä on asetuksesta allowAdminChanges arvolla false?

Silloin kenttiä, osioita ja liitännäisten asetuksia ei voi enää muuttaa tuotannossa Control Panelin kautta. Muutokset tulevat vain versioidun Project Configin kautta, mikä tekee manipuloinnista vaikeampaa ja näkyvämpää.

Lähteet

Pikayhteys

Jokainen tunti on tärkeä. Kirjoittakaa meille nyt.

Kuvatkaa lyhyesti järjestelmä, PHP-versio ja havainnot. Otamme yhteyttä, selvitämme tilanteen ja työskentelemme etänä, kunnes tapaus on käsitelty loppuun ja dokumentoitu.

Pikaapu