Trumpai: cPanel PHP atnaujinimas po PHP2Shell apima tris žingsnius: visus ea-php ir, jei yra, alt-php paketus pakelti iki ištaisytos būsenos, visiškai paleisti iš naujo PHP-FPM ir Apache bei dokumentuoti paketų būseną. Serveryje esantys klientai svarbiausių pereinamųjų reikšmių patys nustatyti negali, tai turi padaryti WHM administratorius.
Pradinė padėtis cPanel serveriuose
PHP2Shell apima pažeidžiamumus CVE-2026-109618 ir CVE-2026-109619 pačiame PHP. Abu leidžia vykdyti kenkėjišką kodą be prisijungimo ir yra įvertinti CVSS v4.0 9,2. Paveikti PHP-FPM, Apache su mod_php, php-cgi, FrankenPHP ir LiteSpeed. 2026-10-21 PHP projektas paskelbė versijas 8.5.12, 8.4.27, 8.3.36 ir 8.2.35.
cPanel PHP pateikia ne kaip vieną paketą, o per EasyApache 4 su atskiru paketų rinkiniu kiekvienai versijai, pavyzdžiui, ea-php83 ar ea-php84. Kai kuriuose serveriuose prisideda operacinės sistemos paketai, o CloudLinux sistemoje alt-php versijos. Kiekvienas šaltinis turi savo būseną. Pilną vaizdą gausite tik patikrinę visus tris.
cPanel PHP atnaujinimas: patikrinkite esamą būklę ir priskyrimą
Pradėkite nuo esamos būklės surašymo. Toliau pateiktos komandos tik skaito ir nieko nekeičia. Keliai ir paketų pavadinimai yra pavyzdžiai ir priklausomai nuo diegimo gali skirtis.
# Įdiegtos PHP versijos pagal WHM API
whmapi1 php_get_installed_versions
# Kiekvieno ea-php diegimo versija
for p in /opt/cpanel/ea-php*/root/usr/bin/php; do echo "$p"; "$p" -v | head -1; done
# Paketų būsena (RPM pagrindo sistemos, pavyzdys)
rpm -qa | grep -E '^ea-php[0-9]+-php-(cli|fpm|common)' | sort
MultiPHP Manager matote, kuris domenas kokią versiją naudoja ir ar įjungtas PHP-FPM. Užsirašykite versijas, kurios įdiegtos, bet nepriskirtos jokiam domenui. Jas irgi reikia atnaujinti arba pašalinti.
Teisingai įvertinkite backport
Kaip ir pas kitus teikėjus, rodomas versijos numeris nėra vienintelis matas. Jei pataisa pateikiama kaip backport, numeris gali likti nepakeistas. Todėl papildomai patikrinkite paketo pakeitimų žurnalą ir teikėjo nurodymus.
# Paketo pakeitimų žurnale ieškokite CVE numerių (pavyzdys)
rpm -q --changelog ea-php84-php-cli | grep -iE 'CVE-2026-1096(18|19)'
Jei įrašo nerandate, tai automatiškai nereiškia, kad pataisos nėra. Bet tai reiškia, kad prieš priskirdami serverį prie pataisytų reikia raštiško patvirtinimo. Kaip teisingai skaityti versijas, aprašyta puslapyje PHP versijos ir pataisų būsenos patikra.
Atnaujinimas, paleidimas iš naujo ir kontrolė
Atnaujinimą WHM įdiegiate per sistemos atnaujinimą arba paketų tvarkyklę. Po to iš naujo paleidžiate visus PHP procesus. Vien naujų failų nepakanka, kol atmintyje veikia seni procesai.
# Paleiskite iš naujo visų versijų PHP-FPM tarnybas (cPanel scenarijus)
/scripts/restartsrv_apache_php_fpm
# Visiškai paleiskite Apache iš naujo
/scripts/restartsrv_httpd
# Patikrinkite PHP procesų paleidimo laiką
ps -eo pid,lstart,cmd | grep -E 'php-fpm|lsphp|php-cgi' | grep -v grep
Kiekvieno PHP proceso paleidimo laikas turėtų būti vėlesnis nei atnaujinimas. Jei taip nėra, tikslingai užbaikite jį per atitinkamą tarnybą. Kai serverių keli, verta vesti trumpą kiekvienos mašinos protokolą, kurį vėliau galėsite naudoti kaip įrodymą.
CMS atnaujinimas cPanel įrankiais, pavyzdžiui, WP Toolkit, PHP pažeidžiamumo neuždaro. Jis prasmingas, bet neatstoja nei PHP atnaujinimo, nei paleidimo iš naujo.
Centralizuotai nustatykite pereinamąsias reikšmes
Jei versija dar neištaisyta, php.net rekomenduoja pereinamąsias priemones, kurios nėra visiška apsauga. cPanel jas nustatykite MultiPHP INI Editor administratoriaus režimu arba tiesiogiai atitinkamos ea-php versijos php.ini. Klientų paskyrų .user.ini reikšmių session.upload_progress.enabled atveju nepakanka.
; paveiktos versijos visame serveryje galiojantis php.ini (pavyzdys)
session.upload_progress.enabled = 0
post_max_size = 32M
upload_max_filesize = 24M
Be įkėlimo funkcijos php.net nurodo post_max_size = 8M. PHP 8.5 papildomai nustatoma fatal_error_backtraces=0. Po to dar kartą paleiskite visus darbinius procesus (worker). Atminties ribą nustatykite per cgroups, pavyzdžiui, su CloudLinux limitais, o ne per RLIMIT_AS ar RLIMIT_DATA. Daugiau informacijos puslapyje Skubios priemonės be pataisos.
Atsakomybė tarp serverio operatoriaus ir paskyrų savininkų
cPanel serveryje su daugybe paskyrų už PHP, tarnybas ir visam serveriui galiojančią konfigūraciją atsako WHM administratorius. Atskirų paskyrų savininkai atsako už savo programas, įskiepius ir prisijungimo duomenis. Informuokite paskyrų savininkus, kada ir kaip buvo atliktas pataisymas, ir rekomenduokite jiems patikrinti savo programas dėl anomalijų. Kaip padėtis atrodo kliento požiūriu, aprašyta puslapyje Bendrinamas hostingas.
Išsaugokite žurnalus nuo 2026-10-20. Pataisa nepašalina kenkėjiškos programinės įrangos, kuri buvo įterpta anksčiau.
Įrodymui pakanka paprasto kiekvieno serverio protokolo: atnaujinimo data ir laikas, ea-php ir alt-php paketų sąrašas su versija prieš ir po, procesų sąrašas su paleidimo laikais po paleidimo iš naujo ir, jei reikia, paketų tiekėjo patvirtinimas dėl backport. Protokolą laikykite ne serveryje. Vėliau jis bus įrodymas klientams, draudikams ar auditoriams, o kitą skubų atnaujinimą palengvins, nes žingsniai jau aprašyti. Jei eksploatuojate kelis cPanel serverius, verta šio puslapio skaitymo komandas sudėti į nedidelį scenarijų, kuris visose mašinose veikia vienodai ir surenka rezultatus. Taip iš karto pastebėsite skirtumus tarp serverių, pavyzdžiui, užmirštą PHP versiją.
Kaip PHP SOS padeda konkrečiai?
- Inventorizuojame ea-php, alt-php ir sistemos paketus ir kiekvieną paskyrą priskiriame jos PHP versijai.
- Per mūsų PHP pataisų paslaugą atnaujiname, paleidžiame iš naujo visas tarnybas ir būseną įrodome paketų sąrašais bei procesų laikais.
- Kur reikia, pereinamąsias reikšmes nustatome visame serveryje ir taip, kad jų nebūtų galima perrašyti.
- Tikriname paskyras dėl tipinių kompromitavimo pėdsakų, o radus pradedame kenkėjiškos programinės įrangos šalinimą.
- Po to mažiname PHP versijų skaičių ir sutvirtiname konfigūraciją.
Dažni klausimai
Kaip WHM pamatyti, kuris domenas kokią PHP versiją naudoja?
WHM MultiPHP Manager kiekvienam domenui matote priskirtą versiją ir ar aktyvus PHP-FPM. Pilnam sąrašui papildomai tinka užklausa komandinėje eilutėje. Užsirašykite ir tas versijas, kurios nepriskirtos jokiam domenui.
Ar cPanel klientas pereinamąsias reikšmes gali pats nustatyti .user.ini faile?
Dėl session.upload_progress.enabled php.net aiškiai nurodo, kad .user.ini ir ini_set() nepakanka. Reikšmė turi būti php.ini, FPM baseine (pool) arba serverio konfigūracijoje. Tai gali padaryti tik serverio administratorius.
Ar pakanka graceful Apache paleidimo iš naujo?
Naudojant PHP-FPM, iš naujo turi būti paleistos pačios FPM tarnybos; Apache reload jų neatnaujina. Su Apache pagrįstomis PHP tvarkyklėmis saugus kelias yra visiškas paleidimas iš naujo. Po to patikrinkite visų PHP procesų paleidimo laiką.
Kaip su CloudLinux ir alt-php?
CloudLinux serveriuose svetainės dalinai veikia su savais alt-php paketais vietoj ea-php. Jie turi savą paketų būseną ir turi būti tikrinami bei atnaujinami atskirai.