Lyhyesti: Joomlan haavoittuvuus, josta nyt puhutaan, on nimeltään PHP2Shell ja se on palvelimen PHP:ssä, ei Joomlassa. Joomla-päivitys ei sulje sitä. PHP-korjauksen ja uudelleenkäynnistyksen jälkeen tarkistakaa configuration.php, mallipohjien ylikirjoitukset, laajennukset ja Super User -tilien luettelo.
Mitä PHP2Shell tarkoittaa Joomlalle
Joomla on PHP-pohjainen sisällönhallintajärjestelmä ja perii jokaisen alla olevan PHP:n heikkouden. PHP-tiimin mukaan haavoittuvuudet CVE-2026-109618 ja CVE-2026-109619 sallivat haittakoodin suorittamisen ilman kirjautumista. Ne koskevat tavallisia ajotapoja: PHP-FPM, Apache mod_php:llä, php-cgi, FrankenPHP ja LiteSpeed.
Erityisesti yhdistysten, käsityöyritysten tai järjestöjen pienemmät Joomla-sivustot toimivat usein jaetussa hostingissa, eikä niitä juuri ylläpidetä. Siellä PHP-päivitys on hosting-palveluntarjoajan vastuulla. Teidän tehtävänne on kysyä tila ja tarkistaa sivusto jälkien varalta. Mitkä versiot ovat haavoittuvia, näyttää sivu Mitkä PHP-versiot ovat haavoittuvia?.
Joomlan haavoittuvuus: PHP-version tarkistus
Ylläpitäjän alueella Järjestelmä > Järjestelmätiedot näyttää PHP-version ja tärkeimmät PHP-asetukset. Se on versio, jolla Joomla todella toimii verkossa. Korjatut upstream-versiot ovat 8.5.12, 8.4.27, 8.3.36 ja 8.2.35. Jos Joomla näyttää vanhemman numeron, backport voi silti olla asennettu; sen vahvistaa hosting-palveluntarjoajanne.
Jaetussa hostingissa PHP-version voi usein vaihtaa palveluntarjoajan asiakasvalikossa verkkotunnuskohtaisesti. Se vaihtaa kuitenkin vain palveluntarjoajan tarjoamien versioiden välillä; ovatko ne korjattuja, ratkaisee palveluntarjoaja. Siirtyminen uudempaan pääversioon voi silti olla järkevää, jos Joomla-versionne ja kaikki laajennukset tukevat sitä. Testatkaa se ensin, sillä vanhemmat laajennukset kaatuvat uusilla PHP-versioilla usein virheilmoituksiin.
Joomla ilmoittaa itse PHP:n vähimmäisvaatimukset pääversioittain. Mitä PHP-versioita teidän Joomla-versionne tukee, tarkistatte järjestelmävaatimuksista osoitteessa joomla.org. Hyvin vanhoissa Joomla-versioissa PHP-vaihto voi edellyttää ensin Joomla-päivitystä.
Haittakoodin tyypilliset piilopaikat Joomlassa
| Paikka | Sisältö | Mihin kiinnittää huomiota |
|---|---|---|
configuration.php |
Tietokantatunnukset, $secret, lokien ja temp-kansion polut |
Muutospäivä, sisään ujutettu koodi |
images/, media/ |
Kuvat ja media | PHP-tiedostot ovat epäilyttäviä |
tmp/ |
väliaikaistiedostot, myös asennuksista | vieraiden pakettien jäänteet |
templates/<nimi>/html/ |
Mallipohjien ylikirjoitukset PHP-koodilla | tuntemattomat tai muutetut ylikirjoitukset |
plugins/system/ |
Järjestelmäliitännäiset, jotka latautuvat joka kutsulla | tuntemattomat liitännäiset |
administrator/logs/ |
Lokit | talteen ennen muutoksia |
.htaccess |
Uudelleenohjaukset, rewrite-säännöt | uudelleenohjaukset vain hakukoneille |
Järjestelmäliitännäiset ovat erityisen suosittuja, koska ne suoritetaan jokaisella sivunlatauksella. Tuntemattoman liitännäisen tässä kansiossa pitäisi aina pystyä selittämään.
Vaarattomat tarkistukset komentorivillä (Joomla 4 ja uudemmat tuovat mukanaan oman konsolin):
# PHP-tiedostot media- ja temp-kansioissa
find images media tmp -type f -name "*.php"
# Listataan käyttäjät ja laajennukset
php cli/joomla.php user:list
php cli/joomla.php extension:list
Jos Joomla-sivustonne ohjaa kävijät Googlesta vieraille sivuille tai Google näyttää varoituksen, palvelin on hyvin todennäköisesti jo vaarantunut. Silloin päivitys ei riitä, vaan tarvitaan puhdistus ja sen jälkeen tarkistus Search Consolessa.
Ylläpitäjän pääsy ja laajennukset
Ylläpitäjän alue on osoitteessa /administrator. Tarkistakaa käyttäjäryhmä ”Super Users” tuntemattomien tilien ja entisten palveluntarjoajien tilien varalta. Ottakaa käyttöön Joomlan mukana tuleva kaksivaiheinen tunnistautuminen ja käyttäkää henkilökohtaisia tilejä jaettujen sijaan.
Joomla Extensions Directoryn ja kolmansien osapuolten laajennuksia on monilla sivustoilla runsaasti: lomakkeita, galleriota, sivurakentajia, uutiskirjeitä. Jokainen tuo mukanaan omaa PHP-koodia ja usein omat latausominaisuudet. Laajennukset, joiden valmistaja ei enää julkaise päivityksiä, ovat pysyvä riski ja vaikeuttavat jokaista PHP-päivitystä. Poistakaa käyttämättömät kokonaan.
Mihin Joomla-päivitys pystyy ja mihin ei
Joomla-päivitys korvaa ydintiedostot ja sulkee Joomlan tunnetut aukot. Se ei korjaa PHP:tä, ei koske mallipohjien ylikirjoituksiin eikä kolmansien osapuolten laajennuksiin eikä poista tiedostoja, jotka eivät kuulu ytimeen. Myös tietokantamerkinnät, kuten uudet Super Userit, säilyvät.
Jos sivustoanne on jo muutettu, apua tarjoaa sivun Verkkosivusto murrettu? Etähätäapu kuvaama kulku. Takaovien etsintään sopii opas Web shellien tunnistaminen ja poisto.
Jos Joomla-sivustonne on pystyttänyt toimisto tai freelancer, kysykää heiltä, mitä laajennuksia ja mallipohjia on räätälöity. Räätälöityjä tiedostoja ei voi vain verrata alkuperäispakettiin, vaan ne vaativat yksittäisen tarkistuksen.
Miten PHP SOS auttaa konkreettisesti?
- Kysymme PHP:n tilan hosting-palveluntarjoajaltanne tai tarkistamme sen palvelimeltanne, uudelleenkäynnistys mukaan lukien.
- Varmuuskopioimme lokit, tiedostot ja tietokannan ennen jokaista muutosta.
- Vertaamme ytimen alkuperäispakettiin ja tarkistamme ylikirjoitukset, järjestelmäliitännäiset, mediakansiot ja Super Userit.
- Löydösten yhteydessä puhdistamme sivuston, uusimme tunnukset ja autamme Google-varoitusten poistamisessa.
Usein kysytyt kysymykset
Koskeeko PHP2Shell Joomlaa?
Joomlassa itsessään ei ole uutta aukkoa, mutta se toimii PHP:llä. Jos palvelimen PHP ei ole korjattu, hyökkääjä voi PHP-tiimin mukaan suorittaa koodia ilman kirjautumista. Joomla-päivitys ei muuta sitä.
Mistä löydän Joomlasta PHP-version?
Ylläpitäjän alueella kohdassa Järjestelmä > Järjestelmätiedot. Siellä näette myös PHP-asetukset. Onko backport asennettu, ei näy numerosta; sen vahvistaa hosting-palveluntarjoajanne.
Miksi mallipohjien ylikirjoitukset (template override) ovat riski?
Ylikirjoitukset ovat mallipohjakansiossa ja sisältävät PHP-koodia, joka korvaa komponenttien ja moduulien tulosteen. Sisään ujutettu koodi jää siellä tuskin huomaamatta, koska Joomla-päivitykset eivät korvaa ylikirjoituksia.