PHP-projekti julkaisi 21. lokakuuta 2026 korjaukset kahteen kriittiseen haavoittuvuuteen, ja CERT-EU julkaisi samana päivänä varoituksen 2026-018. Molemmat on arvioitu luokkaan 9,2, ja molempien kuvataan sallivan koodin suorittamisen etänä ilman todennusta. Jos ylläpidät WordPress-sivustoa, verkkokauppaa tai muuta PHP-sovellusta, asia koskee sinua, ja korjaus on päivitys, ei asetus. Tämä artikkeli kertoo, mitä tiedetään, miten hyökkäys pääsee sisään ja mitä sinun kannattaa tehdä. Tilanne: 22. lokakuuta 2026, CERT-EU:n varoituksen version 1.1 mukaan.
Mitä tapahtui
- Tietoturvaversio ilmoitettuPHP ilmoittaa tietoturvaversiosta etukäteen
- Korjaukset julkaistu8.5.12, 8.4.27, 8.3.36 ja 8.2.35
- CERT-EU:n varoitus 2026-018Molemmat haavoittuvuudet arvioitu luokkaan 9,2
- Haavoittuvuuden todistava koodi liikkeelläHyökkäyksiä ei vahvistettu, mutta ne ovat todennäköisempiä
PHP ilmoitti tietoturvaversiosta 20. lokakuuta ja julkaisi korjaukset 21. lokakuuta kello 13.30 UTC. CERT-EU nimeää varoituksensa ”Critical Vulnerabilities in PHP” ja luettelee kaksi CVE-tunnusta: CVE-2026-109618 ja CVE-2026-109619, kummankin arvio on 9,2. CERT-EU kirjoittaa lisäksi, että teknisistä yksityiskohdista keskustellaan nyt julkisesti ja että ensimmäiset haavoittuvuuden todistavat koodiesimerkit (proof of concept) ovat alkaneet levitä. Varoitus ei vahvista hyökkäyksiä käytännössä, mutta sen mukaan tämä tekee todennäköisemmäksi, että hyökkääjät hyödyntävät haavoittuvuuksia jo. Pidä asiaa kiireellisenä.
Keitä asia koskee
Altis on jokainen PHP-versio, joka on tuetun haaran korjattua versiota vanhempi, sekä jokainen haara, jonka tuki on päättynyt.
| Haara | Altis alle | Korjattu versiossa |
|---|---|---|
| PHP 8.5 | 8.5.12 | 8.5.12 |
| PHP 8.4 | 8.4.27 | 8.4.27 |
| PHP 8.3 | 8.3.36 | 8.3.36 |
| PHP 8.2 | 8.2.35 | 8.2.35 |
| PHP 8.1 ja vanhemmat | kaikki versiot | ei säännöllistä päivitystä; PHP:n tietoturvatiimi on julkaissut minimaaliset lähdekoodin takaisinporttaukset versioille 7.4, 8.0 ja 8.1 |
CERT-EU mainitsee PHP-FPM:n, Apachen ja mod_php:n, php-cgi:n, FrankenPHP:n ja LiteSpeedin. PHP-tiimin mukaan mod_php on suurin riski. Myös tuotteet, jotka sisältävät PHP:n, voivat olla alttiita; CERT-EU viittaa tämän artikkelin lopussa Hollannin NCSC:n luetteloon. Jokainen asennus, joka palvelee verkkopyyntöjä, lasketaan mukaan riippumatta siitä, onko siinä latauslomaketta vai ei.
Miten hyökkääjä pääsee käsiksi ensimmäiseen haavoittuvuuteen
Kenenkään ei tarvitse kirjautua. CERT-EU:n mukaan esitelty hyökkäys osoittaa, että yksi pyyntö ilman kirjautumista riittää laukaisemaan hyökkäyksen ennen kuin mitään sovelluskoodia suoritetaan. Tämän useimmat ohittavat: ei ole väliä, onko WordPressisi ajan tasalla, onko lisäosasi korjattu tai onko yhteydenottolomakkeesi suojattu. Pyyntö osuu ensin PHP-moottoriin.
Ensimmäinen haavoittuvuus, CVE-2026-109618, toimii näin:
- Pyyntö saapuu osoitteeseen, jota PHP palvelee. Ei kirjautumista, ei tiliä.
- PHP alkaa lukea pyynnön sisältöä. CERT-EU mainitsee esimerkkinä lomakepohjaisten tiedostolatausten käsittelyn.
- PHP valvoo
memory_limit-rajaansalongjmp()-kutsulla. Kun raja ylittyy, PHP hyppää pois siitä, mitä se oli tekemässä, ja päättää pyynnön. - Jos tämä tapahtuu kesken pyynnön sisäisten tietojen rakentamisen, nuo tiedot ovat vain puoliksi rakennettuja.
- Jälkisiivous käsittelee virheelliset tiedot päteviksi ja vapauttaa muistia, jota ei ole koskaan alustettu. Tuossa muistissa voi yhä olla aiempien varausten tietoja, joita hyökkääjä on hallinnut.
- Sieltä varoitus kuvaa koodin suorittamista palvelimella.
Sitä, miten hyökkääjä ohjaa viimeistä vaihetta, emme tarkoituksella kuvaa. Riittää tietää, että sisäänkäynti ei ole sinun sovelluksesi, ja siksi mikään sovelluksesi sisällä ei voi pysäyttää sitä.
Toinen haavoittuvuus: tila, joka säilyy muistinsa yli
CVE-2026-109619 on eri mekanismi, jolla on sama lopputulos. PHP pitää jokaisesta pyynnöstä sisäistä tilaa. Tietyn virheen, esimerkiksi vakavan virheen (fatal error), jälkeen tämä tila voi jäädä voimaan, vaikka sen alla oleva muisti on vapautettu. Seuraava pyyntö, jonka sama worker käsittelee, voi silloin käyttää tätä vanhentunutta tilaa ennen kuin se nollataan tavalliseen tapaan. Hyökkääjä tarvitsee kaksi pyyntöä, jotka päätyvät samalle workerille; CERT-EU arvioi lopputuloksen kuten ensimmäisessä haavoittuvuudessa: koodin suorittaminen etänä.
Mitä sinun kannattaa tehdä tänään
Onko palvelimesi PHP vanhempi kuin 8.5.12, 8.4.27, 8.3.36 tai 8.2.35, tai versio 8.1 tai vanhempi?
- KylläMolemmat haavoittuvuudet koskevat sinua. Siirry seuraavaan kysymykseen.
- EiKorjattu molempiin haavoittuvuuksiin, jos tämä todella on versio, jota verkkopalvelimesi suorittaa.
Voitko päivittää tänään?
- KylläPäivitä, käynnistä jokainen PHP-worker uudelleen, tarkista käynnissä oleva versio.
- EiErota palvelin julkisista verkoista, kunnes se on korjattu. Rajat vain pienentävät riskiä.
- Selvitä, mikä PHP-versio sivustoasi todella palvelee.
php -vkomentorivillä näyttää komentorivin version, joka voi poiketa verkkopalvelimesi versiosta. Tarkistaphp-fpm -v, hosting-paneelisi tai sivu, joka kutsuuphpinfo()-funktiota. Jaetussa verkkopalvelussa kysy palveluntarjoajaltasi. - Päivitä korjattuun versioon: 8.5.12, 8.4.27, 8.3.36 tai 8.2.35. Jakelut siirtävät korjauksia usein vanhempiin versioihin muuttamatta versionumeroa; etsi siksi CVE-tunnukset toimittajasi tietoturvatiedotteesta. Konteissa rakenna uudelleen päivitetystä peruskuvasta. PHP-tiimi huomauttaa, että rpms.remirepo.net:ssä ei ollut julkaisupäivänä päivityksiä, ja suosittelee jakelun paketteja tai rakentamista lähdekoodista.
- Käynnistä jokainen PHP-worker uudelleen. Levylle asennettu päivitys ei muuta jo käynnissä olevia prosesseja. Käynnistä PHP-FPM tai verkkopalvelin uudelleen ja tarkista sen jälkeen käynnissä oleva versio uudelleen.
- Jos et voi päivittää tänään, erota palvelin julkisista verkoista, kunnes korjaus on asennettu ja tarkistettu. CERT-EU on selvä: vain päivitys korjaa nämä haavoittuvuudet kokonaan.
- Jos käytät PHP 8.1:tä tai vanhempaa, kysy toimittajaltasi takaisinporttausta tai siirry tuettuun haaraan. Nämä versiot eivät saa säännöllisiä päivityksiä.
Väliaikaiset keinot, jotka pienentävät riskiä mutta eivät korjaa
CERT-EU luettelee toimenpiteitä, jotka vaikeuttavat hyökkäystä. Varoitus sanoo suoraan, etteivät ne tee asennuksesta turvallista. Käytä niitä päivitystä valmistellessasi, älä sen sijasta.
- CVE-2026-109618 vastaan: Aseta
memory_limit=-1tavalla, jota sovellukset eivät voi ohittaa, esimerkiksiphp_admin_value-asetuksella FPM-poolissa, ja tarkista, ettei mikään pool-, hakemisto- tai sovelluskohtainen merkintä aseta taas äärellistä rajaa. Aseta matalapost_max_size(8M ilman latauksia, 32M latausten kanssa) ja pidäupload_max_filesizesen alapuolella. Rajoita pyynnön kokoa, kenttien määrää, multipart-osia, otsikoiden määrää ja sisäkkäisyyden syvyyttä verkkopalvelimessa tai välityspalvelimessa. Käytä kontin tai cgroupin muistirajaa saatavuuden rajana, mutta äläRLIMIT_AS- taiRLIMIT_DATA-rajoja, jotka voivat laukaista haavoittuvan varausvirheen. - CVE-2026-109619 vastaan: Aseta
session.upload_progress.enabled=0tiedostossaphp.ini, FPM-poolissa tai palvelinasetuksessa, joka on voimassa ennen pyynnön käsittelyä (eiini_set()-funktiolla eikä.user.ini-tiedostolla), ja käynnistä kaikki workerit uudelleen. Aseta PHP 8.5:ssä lisäksifatal_error_backtraces=0. Poista virheelliset tai vanhentuneet pyyntökohtaiset asetukset, jotka tulostavat viestejä ennen alustusta, ja korjaa vakavat virheet ja aikakatkaisut, jotka hyökkääjä voi saavuttaa.
Mihin SilentShield tässä pystyy ja mihin ei
Tämä ei ole bottiongelma, ja sanomme sen mieluummin kuin annamme tuotesivun antaa ymmärtää muuta. Hyökkäys osuu PHP-moottoriin ennen kuin mikään meidän tuotteessamme, CAPTCHA, lisäosa tai sovelluksesi sisäinen palomuurisääntö näkee pyynnön. Lomakkeen bottisuojaus ei pysäytä sitä, eikä kenenkään pidä väittää sinulle, että se pysäyttää. Ainoa täydellinen korjaus on PHP-päivitys.
SilentShieldin API ja hallintapaneeli eivät ole kirjoitettu PHP:llä. WordPress-lisäosa ja PHP-SDK toimivat omassa PHP:ssäsi, joten niiden kohdalla päivitys on tehtävä sinun palvelimellasi. Päivityksen jälkeen tavallinen suojaus boteilta ja lomakeroskapostilta on yhtä hyödyllinen kuin ennenkin; se ei vain koskaan ollut vastaus tähän ongelmaan.