Aktuālā situācija: PHP2Shell. Divas kritiskas PHP ievainojamības (CVSS 9.2) ļauj izpildīt ļaunprātīgu kodu bez pieteikšanās. Ielāpi kopš 21.10.2026.Kas jādara tagad →

PHP versijas un ielāpa stāvokļa pareiza pārbaude

Redzamā PHP versija vien nenorāda, vai PHP2Shell ir aizvērta. Izšķirošs ir pakotnes stāvoklis, backport labojumi un tas, vai jaunie procesi patiešām darbojas.

Aktuāls uz 4 min lasīšanas laiksPHP2Shell

Īsi: lai pārbaudītu PHP versiju, ar php -v nepietiek. Jāzina, kuru PHP versiju tīmekļa serveris patiešām izmanto, vai pakotnē ir labojums, arī kā backport ar veco numuru, un vai pēc atjaunināšanas ir pārstartēti visi procesi. PHP2Shell ir labota versijās 8.5.12, 8.4.27, 8.3.36 un 8.2.35.

Kāpēc ar versijas numuru vien nepietiek

PHP2Shell ir skaidrs labotu versiju saraksts. Praksē tomēr trīs situācijas noved pie kļūdainiem vērtējumiem:

  • Vairākas instalācijas: komandrinda rāda PHP 8.3, bet vietne darbojas ar pūlu, kurā ir PHP 8.1.
  • Backport labojumi: distributīvi un hostinga sniedzēji labojumus dažkārt ievieš esošajās pakotnēs. Tad, piemēram, Plesk turpina rādīt 8.2.34, lai gan ir ielāpots.
  • Veci procesi: jaunie faili atrodas diskā, bet darbojošies darbprocesi ir vēl no iepriekš.

Vadībai un cilvēkiem, kas nav tehniķi, palīdz vienkāršs noteikums: nejautājiet tikai „Kāda PHP versija mums ir?“, bet „Vai PHP2Shell ir aizvērta visos serveros un pēc kā to redzam?“. Uzticama atbilde ietver trīs pierādījumus: versija vai backport, pakotnes stāvoklis un pārstartēšanas laiks.

Tehniskajai pārbaudei tāpēc ir trīs soļi: versija, pakotnes stāvoklis, darbojošies procesi. Tālāk norādītās komandas ir tikai lasošas. Pakotņu un pakalpojumu nosaukumi atšķiras pa distributīviem, PHP avotiem un hostinga saskarnēm; piemēri pieņem PHP 8.3.

PHP versijas pārbaude komandrindā

php -v                                  # komandrindas versija
ls /etc/php/ 2>/dev/null                # Debian/Ubuntu: instalētie atzari
php-fpm8.3 -v                           # FPM bināra faila versija (nosaukums atkarībā no distributīva)
php -i | grep -E "^PHP Version|Server API|Loaded Configuration File"

RHEL, AlmaLinux vai Rocky sistēmās FPM binārais fails parasti saucas php-fpm; Software Collections vai trešo pušu avotu gadījumā papildu versijas atrodas savos ceļos. Plesk un cPanel nāk ar savām PHP instalācijām, kas pastāv blakus sistēmas PHP. Kā tur rīkoties, aprakstām lapās par Plesk un cPanel.

Kuru PHP versiju vietne izmanto tīmekļa kontekstā, visuzticamāk redzat pūla vai VirtualHost konfigurācijā vai hostinga saskarnē. Arī phpinfo lapa to parāda; izveidojiet to tikai uz īsu laiku, ar piekļuves aizsardzību un nejaušu nosaukumu, un uzreiz pēc tam izdzēsiet.

Koplietošanas hostingā parasti nav piekļuves komandrindai. Tad hostinga saskarne parāda iestatīto PHP versiju katrai vietnei. Vai backport ir ieviests un pārstartēts, tur reti redzams. Šeit uzticams ceļš ir hostinga sniedzēja rakstisks apstiprinājums.

Pakotnes stāvokļa un backport pārbaude

Pakotnes stāvoklis parāda, ko jūsu distributīvs patiešām ir piegādājis:

# Debian/Ubuntu
apt policy php8.3-fpm
apt changelog php8.3-fpm | grep -i -E "CVE-2026-109618|CVE-2026-109619"

# RHEL, AlmaLinux, Rocky, Fedora
dnf info php-fpm
rpm -q --changelog php-fpm | grep -i -E "CVE-2026-109618|CVE-2026-109619"

Ja kāds no CVE numuriem ir changelog, backport ir iekļauts instalētajā pakotnē. Ja ieraksta nav, tas vēl nav ievainojamības pierādījums: daži pakotņu uzturētāji changelog formulē citādi. Tad salīdziniet pakotnes versiju ar sava distributīva drošības paziņojumiem vai pajautājiet sniedzējam. Šī pieprasījuma paraugu atradīsiet rakstā Kā pajautāt hostinga sniedzējam par ielāpa statusu.

Svarīgi: pārbaudiet katru instalēto PHP pakotni, ne tikai pirmo. Serveros ar vairākiem atzariem bieži viens ir ielāpots, bet cits nav.

Vai jaunā versija patiešām darbojas?

Atjauninājums ir spēkā tikai tad, kad ir pārstartēti visi PHP procesi. Salīdziniet darbojošos procesu startēšanas laiku ar atjauninājuma laiku:

ps -o pid,lstart,cmd -C php-fpm8.3      # FPM procesu startēšanas laiks
systemctl status php8.3-fpm             # kopš kura laika pakalpojums darbojas
needrestart -r l                        # Debian/Ubuntu, ja instalēts: rāda novecojušus procesus

Ja startēšanas laiks ir pirms atjauninājuma, vēl darbojas veci procesi. Apache ar mod_php gadījumā tas pats attiecas uz Apache procesiem. Kā pārstartēt tīri, apraksta PHP-FPM un visu darbprocesu pārstartēšana.

Padoms

Rezultātu fiksējiet rakstiski: serveris, PHP versija, pakotnes versija, CVE changelog jā vai nē, pārstartēšanas laiks. Šī piezīme būs vajadzīga vadībai, apdrošinātājam un vēlākai pēdu pārbaudei.

Rezultāta vērtējums

Atradums Vērtējums
Oficiālā versija 8.5.12, 8.4.27, 8.3.36 vai 8.2.35, procesi pārstartēti PHP2Shell aizvērta
Vecāks numurs, CVE numuri pakotnes changelog, procesi pārstartēti backport ieviests, aizvērta
Vecāks numurs, nav ieraksta changelog, nav apstiprinājuma nav skaidrs, noskaidrot pie sniedzēja
PHP 8.1 vai vecāka bez apstiprināta backport atvērta, vajadzīgi pagaidu pasākumi un migrācija
Procesi vecāki par atjauninājumu trūkst pārstartēšanas, ievainojamība joprojām aktīva

Ja serveris paliek statusā „nav skaidrs“, izturieties pret to kā pret atvērtu: ieviesiet pagaidu pasākumus un turpiniet noskaidrošanu, līdz ir pierādījums. Pilnu versiju pārskatu atradīsiet lapā Kuras PHP versijas ir skartas?.

Kā PHP SOS palīdz konkrēti?

Ar PHP ielāpu pakalpojumu mēs uzņemamies pārbaudi un apliecinājumu:

  • Atrast visas instalācijas, arī otras versijas no hostinga paneļiem, Software Collections vai konteineriem.
  • Novērtēt pakotnes stāvokli: oficiāls izlaidums, backport vai atvērts, ar pierādījumu no changelog vai no sniedzēja.
  • Kontrolēt pārstartēšanu, līdz vairs nedarbojas neviens process ar veco kodu.
  • Izveidot pārbaudes protokolu, ko varat izmantot iekšēji un attiecībās ar trešajām personām.

Biežāk uzdotie jautājumi

Kāpēc php -v rāda citu versiju nekā mana vietne?

Daudzos serveros ir instalētas vairākas PHP versijas. Komandrinda izmanto vienu no tām, tīmekļa serveris vai FPM pūls citu. Tāpēc pārbaudiet versiju, kas patiešām darbojas tīmekļa kontekstā, piemēram, ar FPM bināro failu vai hostinga saskarni.

Kā atpazīt backport?

Distributīvu pakotnēm labojums bieži ir pakotnes changelog, bieži ar CVE numuru. Debian un Ubuntu palīdz apt changelog, RHEL tipa sistēmās rpm -q --changelog. Ja ieraksta nav, noskaidrojiet stāvokli pie sniedzēja.

Vai PHP versiju varu pārbaudīt hostinga klientu izvēlnē?

Jā, vairums saskarņu rāda iestatīto versiju katrai vietnei. Vai backport ir ieviests un pārstartēts, tur parasti neredzat. Šim nolūkam uzticams ceļš ir hostinga sniedzēja rakstisks apstiprinājums.

Avoti

Tūlītējs kontakts

Katra stunda ir svarīga. Rakstiet mums tūlīt.

Īsi aprakstiet sistēmu, PHP versiju un novēroto. Mēs sazināsimies, noskaidrosim situāciju un strādāsim attālināti, līdz incidents ir slēgts un dokumentēts.

Tūlītēja palīdzība