Lyhyesti: Jos php -v näyttää päivityksen jälkeen saman version, syynä on yleensä backport: jakelu ottaa vain tietoturvakorjauksen olemassa olevaan PHP-versioonsa, numero pysyy samana. Ubuntu 24.04 ilmoittaa siten yhä 8.3.6, vaikka paketti on korjattu PHP2Shelliä vastaan. Selvittäkää asia pakettitilan ja muutoslokin avulla ja tarkistakaa lisäksi, toimiiko verkkosivusto todella uudella koodilla.
Tyypillinen hetki PHP2Shellin jälkeen
Ylläpitäjä on asentanut päivityksen, kaikki ilman virheitä. Tarkistukseksi hän kirjoittaa php -v ja näkee saman version kuin aiemmin. Eikö päivitys toiminut? Onko palvelin yhä auki? Tämä kysymys kuuluu yleisimpiin 21. lokakuuta 2026 jälkeen.
Hyvä uutinen: useimmissa tapauksissa kaikki on kunnossa. Huono: on myös tapauksia, joissa sama numero todella osoittaa ongelmaa. Tämä artikkeli auttaa erottamaan nämä toisistaan.
Miksi jakelut eivät muuta numeroa
Yritys- ja LTS-jakelut lupaavat vakautta. Julkaisun sisällä käyttäytymisen ja rajapintojen on määrä muuttua mahdollisimman vähän. Hyppy PHP 8.3.6:sta 8.3.36:een toisi kuitenkin mukanaan lukuisia virhekorjauksia ja pieniä käyttäytymismuutoksia, jotka voisivat häiritä sovelluksia.
Siksi monet paketinhuoltajat ottavat vain konkreettisen tietoturvakorjauksen olemassa olevaan versioonsa. Tätä kutsutaan backportiksi. Upstream-versio, jonka PHP itse ilmoittaa komennolla php -v, pysyy samana. Muuttuu pakettitila, jonka jakelu antaa.
Ubuntu 24.04:n esimerkissä se näyttää tältä: PHP ilmoittaa 8.3.6. Korjattu pakettitila on kuitenkin USN-8948-1:n mukaan 8.3.6-0ubuntu0.24.04.13. Merkitsevä on loppuosa. Debian päätti PHP2Shellin kohdalla toisin ja toimitti bookwormille ja trixielle uudet upstream-versiot 8.2.35 ja 8.4.27. Julkaisukohtaisen yleiskatsauksen löydätte artikkelista Debian ja Ubuntu: onko PHP-pakettini päivitetty?.
Tällainen paketin versio kannattaa pilkkoa kerran osiin. Esimerkki 8.3.6-0ubuntu0.24.04.13: viivaa edeltävä osa on upstream-versio eli se, mitä PHP itse ilmoittaa. Sen jälkeen tulee jakelun revisio. ubuntu0.24.04 viittaa julkaisuun, viimeinen luku laskee tarkistuskierrokset. Jokainen tietoturvakorjaus nostaa tätä lukua. Ubuntu Prossa on lisäksi liite kuten +esm5, Debianin tietoturvapäivityksissä esimerkiksi ~deb12u1. Joka osaa lukea nämä osat, näkee yhdellä silmäyksellä, onko pakettia muutettu tietoturvailmoituksen jälkeen.
Missä vanha numero esiintyy kaikkialla
Muuttumaton numero ei näy vain komennossa php -v. Se on myös paikoissa, jotka ovat ulkoa näkyviä tai joita työkalut arvioivat:
| Paikka | Mitä siinä lukee | Seuraus |
|---|---|---|
php -v ja php -i |
upstream-versio, build-päivämäärä | ylläpitäjät epäilevät päivitystä |
| phpinfo-sivu | upstream-versio | sama vaikutus selaimessa |
Otsake X-Powered-By |
upstream-versio, jos expose_php on päällä |
ulkoiset skannerit ilmoittavat aukon |
| Hosting-paneelit kuten Plesk | upstream-versio | näyttö esimerkiksi 8.2.34 päivityksestä huolimatta |
| Haavoittuvuusskannerit | vertailu numeron mukaan | väärä hälytys backporttien kohdalla |
Ulkoiset skannerit ovat oma tapauksensa. Joka käyttää niitä, saa PHP2Shellin jälkeen mahdollisesti löytöjä palvelimista, jotka on jo kauan sitten korjattu. Älkää sivuuttako näitä löytöjä yleisesti vaan todistakaa jokaisen palvelimen pakettitila ja merkitkää löytö tarkistetuksi. Toinen syy piilottaa versiotiedot ulospäin on kuvattu artikkelissa expose_php ja palvelimen otsakkeet.
Milloin sama numero on varoitusmerkki
On kolme tilannetta, joissa muuttumaton numero todella viittaa ongelmaan:
- Pakettilähde toimittaa upstream-version. Jos PHP tulee lähteestä, joka yleensä toimittaa ajantasaisen upstream-version, esimerkiksi Debian PHP2Shellin kohdalla tai kolmannen osapuolen lähteet kuten Remi ja sury.org, päivityksen jälkeen pitäisi näkyä 8.5.12, 8.4.27, 8.3.36 tai 8.2.35. Jos siinä lukee yhä vanha numero, pakettia ei päivitetty.
- Tarkistatte väärää asennusta.
php -vnäyttää komentorivin. Jos verkkosivusto toimii toisella versiolla, esimerkiksi hosting-paneelista tai Software Collectionista, tuloste ei kerro mitään verkkosivustosta. - Pakettitila ei ole muuttunut. Jos myös pakettitila on sama kuin ennen päivitystä, päivitys ei ole tullut tälle paketille, esimerkiksi koska se on pidätetty tai lähde puuttuu.
Ei-teknisille sen voi tiivistää näin: versionumero kuvaa mallia, pakettitila huoltotilaa. Kaksi palvelinta samalla PHP-versiolla voivat erota tietoturvaltaan selvästi. Älkää siksi kysykö IT:ltänne tai palveluntarjoajaltanne versiota vaan päivityksen todistetta.
Näin selvitätte asian viidessä minuutissa
Seuraavat komennot vain lukevat. Esimerkit lähtevät Ubuntusta tai Debianista ja PHP 8.3:sta; RHEL-järjestelmissä käyttäkää rpm -q komennon dpkg-query sijaan.
# 1. Mitä PHP itse ilmoittaa, build-päivämäärä mukaan lukien?
php -v
# 2. Mikä pakettitila on asennettu, mistä lähteestä?
apt policy php8.3-fpm
# 3. Sisältääkö muutosloki CVE-numerot?
apt changelog php8.3-fpm 2>/dev/null | grep -E "CVE-2026-10961[89]"
# 4. Mistä lähtien verkkosivuston PHP-prosessit ovat toimineet?
ps -eo pid,lstart,cmd | grep "[p]hp-fpm"
Build-päivämäärä php -v -tulosteessa on vihje mutta ei todiste. Luotettavan todisteen antaa muutoslokin merkintä. Miten sen löydätte ja kirjaatte, kun se on muotoiltu toisin tai puuttuu, kuvaa artikkeli CVE-numeroiden todistaminen paketin muutoslokista.
Kirjatkaa jokaisen tarkistuksen jälkeen molemmat numerot: upstream-versio komennosta php -v ja pakettitila. Joka myöhemmin kysyy, miksi palvelimella on ”yhä 8.3.6”, saa näin selvän vastauksen.
Yleisen tarkistuksen version, paketin ja prosessien kautta tiivistää sivu PHP-version ja korjaustilan tarkistaminen oikein.
Miten PHP SOS auttaa konkreettisesti?
- Selvitämme jokaisesta palvelimesta, onko muuttumaton versionumero backport vai puuttuva päivitys.
- Arvioimme haavoittuvuusskannereiden löydöt ja todistamme väärät hälytykset pakettitilalla ja muutoslokilla.
- Tarkistamme, mitä PHP-asennusta verkkosivusto todella käyttää ja onko sen prosessit käynnistetty uudelleen.
- PHP-päivityspalvelussa dokumentoimme upstream-version ja pakettitilan rinnakkain.
Usein kysytyt kysymykset
Onko palvelimeni päivittämätön, jos php -v näyttää vanhan numeron?
Ei välttämättä. Monet jakelut ottavat korjaukset backportteina olemassa olevaan versioon. Ubuntu 24.04 näyttää esimerkiksi yhä 8.3.6, vaikka paketti on USN-8948-1:n mukaan korjattu. Ratkaisevia ovat pakettitila ja muutosloki.
Miksi tietoturvaskannerini ilmoittaa aukon päivityksestä huolimatta?
Monet skannerit lukevat vain versionumeron, esimerkiksi otsakkeesta X-Powered-By. Backporttien kohdalla se johtaa vääriin hälytyksiin. Tarkistakaa pakettitila ja dokumentoikaa tulos sen sijaan, että jättäisitte löydön yksinkertaisesti huomiotta.
Voiko php -v näyttää uuden numeron, mutta verkkosivusto ei?
Kyllä. php -v näyttää komentorivin. Verkkosivusto voi toimia toisen asennuksen kautta tai prosesseilla, jotka on käynnistetty ennen päivitystä. Tarkistakaa siksi myös FPM-palvelu tai Apache ja niiden käynnistysaika.
Auttaako php -v -tulosteen build-päivämäärä?
Se on vihje mutta ei todiste. Build-päivämäärä 21. lokakuuta 2026 jälkeen sopii korjattuun pakettiin, mutta ei todista, että korjaus on mukana. Muutoslokin merkintä on parempi todiste.