Īsi sakot: Ja php -v pēc atjauninājuma rāda to pašu versiju, parasti iemesls ir backport: distributīvs savā esošajā PHP versijā pārņem tikai drošības labojumu, numurs paliek tāds pats. Ubuntu 24.04 tā turpina ziņot 8.3.6, kaut gan pakotne ir labota pret PHP2Shell. Jautājumu noskaidrojiet ar pakotnes stāvokli un changelog un papildus pārbaudiet, vai vietne patiešām darbojas ar jauno kodu.
Tipisks brīdis pēc PHP2Shell
Administrators ir ieviesis atjauninājumu, viss bez kļūdām. Pārbaudei viņš ievada php -v un redz to pašu versiju kā iepriekš. Vai atjauninājums nenostrādāja? Vai serveris joprojām ir atvērts? Šis jautājums kopš 2026. gada 21. oktobra ir viens no biežākajiem.
Labā ziņa: lielākajā daļā gadījumu viss ir kārtībā. Sliktā: ir arī gadījumi, kad tas pats numurs patiešām norāda uz problēmu. Šis raksts palīdz abus nošķirt.
Kāpēc distributīvi numuru nemaina
Uzņēmumu un LTS distributīvi sola stabilitāti. Viena laidiena ietvaros uzvedībai un saskarnēm pēc iespējas nevajadzētu mainīties. Lēciens no PHP 8.3.6 uz 8.3.36 atnestu daudz kļūdu labojumu un nelielu uzvedības izmaiņu, kas varētu traucēt lietojumprogrammām.
Tāpēc daudzi pakotņu uzturētāji pārņem tikai konkrēto drošības labojumu savā esošajā versijā. Šo procesu sauc par backport. Upstream versija, ko pats PHP ziņo ar php -v, paliek tāda pati. Mainās pakotnes stāvoklis, ko piešķir distributīvs.
Ubuntu 24.04 piemērā tas izskatās šādi: PHP ziņo 8.3.6. Labotais pakotnes stāvoklis saskaņā ar USN-8948-1 tomēr ir 8.3.6-0ubuntu0.24.04.13. Svarīga ir aizmugurējā daļa. Debian PHP2Shell gadījumā izlēma citādi un bookworm un trixie piegādāja jaunās upstream versijas 8.2.35 un 8.4.27. Pārskats pa laidieniem ir rakstā Debian un Ubuntu: vai mana PHP pakotne ir ielāpota?.
Vērts reizi sadalīt šādu pakotnes versiju daļās. Piemērā 8.3.6-0ubuntu0.24.04.13: daļa pirms defises ir upstream versija, tātad tas, ko pats PHP ziņo. Pēc tās seko distributīva revīzija. ubuntu0.24.04 norāda uz laidienu, pēdējais skaitlis skaita pārstrādes. Katrs drošības labojums šo skaitli palielina. Ubuntu Pro gadījumā parādās papildinājums, piemēram, +esm5, Debian drošības atjauninājumiem tāds kā ~deb12u1. Kas šīs daļas prot lasīt, uzreiz atpazīst, vai pakotne pēc drošības paziņojuma ir mainīta.
Kur visur parādās vecais numurs
Nemainītais numurs parādās ne tikai php -v. Tas ir arī vietās, kas redzamas no ārpuses vai ko izvērtē rīki:
| Vieta | Kas tur ir | Sekas |
|---|---|---|
php -v un php -i |
Upstream versija, būvējuma datums | Administratori šaubās par atjauninājumu |
| phpinfo lapa | Upstream versija | tāds pats efekts pārlūkā |
Galvene X-Powered-By |
Upstream versija, ja expose_php ir ieslēgts |
ārējie skeneri ziņo par ievainojamību |
| Hostinga paneļi, piemēram, Plesk | Upstream versija | rādījums, piemēram, 8.2.34 neskatoties uz ielāpu |
| Ievainojamību skeneri | salīdzinājums pēc numura | viltus trauksme backport gadījumā |
Ārējie skeneri ir atsevišķs gadījums. Kas tos izmanto, pēc PHP2Shell var saņemt atradumus serveriem, kas sen ir labojami. Šos atradumus neignorējiet vispārīgi, bet katram serverim apliecinājiet pakotnes stāvokli un atradumu atzīmējiet kā pārbaudītu. Vēl viens iemesls slēpt versiju norādes uz āru ir aprakstīts rakstā expose_php un servera galvenes.
Kad tas pats numurs ir brīdinājuma signāls
Ir trīs situācijas, kurās nemainītais numurs patiešām norāda uz problēmu:
- Pakotņu avots piegādā upstream versiju. Ja PHP nāk no avota, kas parasti piegādā aktuālo upstream versiju, piemēram, Debian PHP2Shell gadījumā vai trešo pušu avoti kā Remi un sury.org, pēc atjauninājuma jābūt redzamam 8.5.12, 8.4.27, 8.3.36 vai 8.2.35. Ja tur joprojām ir vecais numurs, pakotne nav atjaunināta.
- Jūs pārbaudāt nepareizo instalāciju.
php -vrāda komandrindu. Ja vietne darbojas ar citu versiju, piemēram, no hostinga paneļa vai Software Collection, izvade par vietni neko neizsaka. - Pakotnes stāvoklis nav mainījies. Ja arī pakotnes stāvoklis ir tāds pats kā pirms atjauninājuma, atjauninājums šai pakotnei nav ieradies, piemēram, tāpēc, ka tā tika turēta vai avots trūkst.
Ne-tehniķiem to var apkopot šādi: versijas numurs apraksta modeli, pakotnes stāvoklis uzturēšanas stāvokli. Divi serveri ar vienu un to pašu PHP versiju drošības ziņā var ievērojami atšķirties. Tāpēc savai IT vai pakalpojuma sniedzējam jautājiet nevis par versiju, bet par ielāpa pierādījumu.
Kā jautājumu noskaidrot piecās minūtēs
Šīs komandas tikai lasa. Piemēri paredz Ubuntu vai Debian un PHP 8.3; RHEL sistēmās dpkg-query vietā izmantojiet rpm -q.
# 1. Ko ziņo pats PHP, ieskaitot būvējuma datumu?
php -v
# 2. Kurš pakotnes stāvoklis ir instalēts, no kura avota?
apt policy php8.3-fpm
# 3. Vai changelog satur CVE numurus?
apt changelog php8.3-fpm 2>/dev/null | grep -E "CVE-2026-10961[89]"
# 4. Kopš kura laika darbojas vietnes PHP procesi?
ps -eo pid,lstart,cmd | grep "[p]hp-fpm"
Būvējuma datums php -v izvadē ir norāde, bet ne pierādījums. Uzticamu apliecinājumu dod changelog ieraksts. Kā to atrast un fiksēt, ja tas formulēts citādi vai trūkst, apraksta raksts CVE numuru apliecināšana pakotnes changelog.
Pēc katras pārbaudes pierakstiet abus numurus: upstream versiju no php -v un pakotnes stāvokli. Kas vēlāk jautā, kāpēc serverim “vēl ir 8.3.6”, tā saņem skaidru atbildi.
Vispārīgo pārbaudi pēc versijas, pakotnes un procesiem apkopo lapa PHP versijas un ielāpa stāvokļa pareiza pārbaude.
Kā PHP SOS palīdz konkrēti?
- Mēs katram serverim noskaidrojam, vai nemainīts versijas numurs ir backport vai trūkstošs atjauninājums.
- Mēs vērtējam ievainojamību skeneru atradumus un viltus trauksmes apliecinām ar pakotnes stāvokli un changelog.
- Mēs pārbaudām, kuru PHP instalāciju vietne faktiski izmanto un vai tās procesi ir pārstartēti.
- PHP ielāpu pakalpojumā mēs dokumentējam upstream versiju un pakotnes stāvokli blakus.
Biežāk uzdotie jautājumi
Vai mans serveris ir neielāpots, ja php -v rāda veco numuru?
Ne obligāti. Daudzi distributīvi labojumus pārņem kā backport esošajā versijā. Ubuntu 24.04, piemēram, turpina rādīt 8.3.6, kaut gan pakotne saskaņā ar USN-8948-1 ir labota. Izšķirošs ir pakotnes stāvoklis un changelog.
Kāpēc mans drošības skeneris neskatoties uz atjauninājumu ziņo par ievainojamību?
Daudzi skeneri nolasa tikai versijas numuru, piemēram, no galvenes X-Powered-By. Backport gadījumā tas rada viltus trauksmes. Pārbaudiet pakotnes stāvokli un dokumentējiet rezultātu, nevis atradumu vienkārši ignorējiet.
Vai var būt, ka php -v rāda jaunu numuru, bet vietne ne?
Jā. php -v rāda komandrindu. Vietne var darboties caur citu instalāciju vai caur procesiem, kas startēti pirms atjauninājuma. Tāpēc pārbaudiet arī FPM pakalpojumu vai Apache un to startēšanas laiku.
Vai palīdz būvējuma datums php -v izvadē?
Tā ir norāde, bet ne pierādījums. Būvējuma datums pēc 2026. gada 21. oktobra atbilst labotai pakotnei, taču nepierāda, ka labojums ir ietverts. Changelog ieraksts ir labāks pierādījums.