Trumpai: LiteSpeed PHP atnaujinimas liečia lsphp paketus, per kuriuos LiteSpeed vykdo PHP per LSAPI. Po atnaujinimo turi būti paleisti iš naujo visi lsphp procesai, o su LiteSpeed taip nutinka ne visada automatiškai kartu su žiniatinklio serveriu. Prieš priskirdami serverį prie pataisytų, patikrinkite paketų būseną ir procesų paleidimo laiką.
Trumpai apie LiteSpeed, LSAPI ir lsphp
LiteSpeed Web Server ir laisvasis variantas OpenLiteSpeed PHP vykdo ne kaip modulį, o per savą sąsają, vadinamą LSAPI. Tam skirtos PHP programos vadinasi lsphp ir dažniausiai ateina iš atskirų paketų šaltinių, kiekvienai versijai, pavyzdžiui, lsphp83 ar lsphp84. Valdymo skydeliuose, tokiuose kaip cPanel, Plesk ar CyberPanel, papildomai gali būti skydelio PHP paketų.
PHP2Shell apima pažeidžiamumus CVE-2026-109618 ir CVE-2026-109619 pačiame PHP, kiekvienas įvertintas CVSS v4.0 9,2. PHP projektas LiteSpeed aiškiai nurodo tarp paveiktų veikimo režimų. Ištaisytos versijos 8.5.12, 8.4.27, 8.3.36 ir 8.2.35.
LiteSpeed PHP atnaujinimas: surašykite esamą būklę
Pirmiausia išsiaiškinkite, kurios lsphp versijos įdiegtos ir kurios iš jų naudojamos. Toliau pateiktos komandos tik skaito. Keliai ir paketų pavadinimai yra pavyzdžiai ir priklauso nuo diegimo bei distribucijos.
# Įdiegtos lsphp versijos (tipinis kelias)
ls -d /usr/local/lsws/lsphp*/ 2>/dev/null
for p in /usr/local/lsws/lsphp*/bin/lsphp; do echo "$p"; "$p" -v | head -1; done
# Paketų būsena (pavyzdžiai)
rpm -qa | grep -E '^lsphp[0-9]+' | sort
dpkg -l | grep -E 'lsphp[0-9]+'
# Veikiantys lsphp procesai su paleidimo laiku
ps -eo pid,lstart,user,cmd | grep lsphp | grep -v grep
Palyginkite sąrašą su konfigūracija: kuris virtualus serveris (virtual host) naudoja kurį External App Handler? LiteSpeed sąsajoje tai rasite skiltyje Server Configuration ir virtualių serverių nustatymuose. Versijas be priskyrimo vis tiek turėtumėte atnaujinti arba pašalinti.
Atsižvelkite į backport ir paketų šaltinius
Jei lsphp ateina iš trečiosios šalies šaltinio, lemia to šaltinio paketų būsena. Jei PHP pateikia skydelis ar distribucija, galioja jų nurodymai. Abiem atvejais pataisa gali būti pateikta kaip backport, nepasikeitus rodomam versijos numeriui. Todėl patikrinkite paketų tiekėjo pakeitimų pastabas ir abejodami paprašykite būseną patvirtinti. Vien versijos numeris nėra įrodymas.
Paleidimas iš naujo: kas svarbu su LiteSpeed
LiteSpeed gali valdyti PHP vadinamuoju Detached Mode režimu. Tuomet lsphp procesai veikia toliau nepriklausomai nuo žiniatinklio serverio, kad svetainės po žiniatinklio serverio paleidimo iš naujo atsakytų greičiau. Saugumo atnaujinimui tai spąstai: žiniatinklio serveris paleistas iš naujo, bet seni PHP procesai su pažeidžiamu kodu lieka aktyvūs.
# Paleiskite žiniatinklio serverį iš naujo (kelias kaip pavyzdys)
/usr/local/lsws/bin/lswsctrl restart
# Po to patikrinkite: ar visi lsphp procesai jaunesni už atnaujinimą?
ps -eo pid,lstart,user,cmd | grep lsphp | grep -v grep
Jei lsphp proceso paleidimo laikas ankstesnis nei atnaujinimas, tikslingai jį užbaikite. LiteSpeed kitos užklausos metu paleis naują procesą su atnaujintu kodu. Šį žingsnį planuokite ne piko apkrovos metu, nes pirmoji kiekvienos svetainės užklausa po to gali užtrukti šiek tiek ilgiau.
Po PHP atnaujinimo serveris pataisytas tik tada, kai nė vienas lsphp procesas nėra senesnis už atnaujinimą. Kontrolę užfiksuokite nurodydami datą ir laiką.
Pereinamosios priemonės, kol nėra pataisos
Jei lsphp versijai dar nėra ištaisyto paketo, php.net rekomenduoja pereinamąsias priemones. Jos nesuteikia visiškos apsaugos. Reikšmes nustatykite atitinkamos lsphp versijos php.ini arba serverio konfigūracijoje, o ne .user.ini ir ne per ini_set().
; paveiktos lsphp versijos php.ini (kelias priklauso nuo diegimo)
session.upload_progress.enabled = 0
post_max_size = 8M
upload_max_filesize = 6M
Su įkėlimo funkcija php.net nurodo post_max_size = 32M, o upload_max_filesize mažesnis. PHP 8.5 papildomai nustatoma fatal_error_backtraces=0. Atminties ribas nustatykite per cgroups, CloudLinux sistemoje pavyzdžiui, per ten numatytus limitus, o ne per RLIMIT_AS ar RLIMIT_DATA. Po to vėl iš naujo paleiskite visus lsphp procesus. Daugiau informacijos: Skubios priemonės be pataisos. BSI (Vokietijos Federalinė informacijos saugumo tarnyba) rekomenduoja laikinai atjungti žiniatinklio serverį nuo tinklo, jei atnaujinimas nedelsiant neįmanomas.
Po atnaujinimo
Pataisa uždaro pažeidžiamumą, bet nepašalina jau įterptos kenkėjiškos programinės įrangos ir neįrodo, kad anksčiau nieko neįvyko. Išsaugokite prieigos žurnalus nuo 2026-10-20 ir patikrinkite svetaines dėl naujų PHP failų įkėlimų kataloguose, svetimų administratorių paskyrų ir neįprastų išeinančių ryšių. Apie nuolatinę stebėseną žr. mūsų saugumo stebėseną. cPanel serveriuose su LiteSpeed papildomai verta pažvelgti į cPanel ir WHM.
Daug LiteSpeed serverių veikia po hostingo skydeliu, pavyzdžiui, cPanel, Plesk, DirectAdmin ar CyberPanel. Tuomet skydelis nulemia, iš kokio šaltinio ateina lsphp ir kaip diegiami atnaujinimai. Tokiu atveju atnaujinimus atlikite per skydelį ar jo paketų šaltinius ir nediekite lygiagrečiai iš antrojo šaltinio, kitaip sunku atsekti, kuri versija iš tikrųjų veikia. Be to, užfiksuokite, kuri svetainė su kuria lsphp versija veikia. Serveriuose su daug klientų paskyrų šis sąrašas yra pagrindas tikslingai informuoti paskyrų savininkus ir po atnaujinimo atrankos būdu patikrinti, ar svetainės veikia be klaidų. Svetainės, reikalaujančios nebepalaikomos PHP versijos, turi patekti į atskirą sąrašą, nes joms oficialaus atnaujinimo nebus.
Kaip PHP SOS padeda konkrečiai?
- Surašome visas jūsų serverio lsphp versijas, paketų šaltinius ir tvarkyklių priskyrimus.
- Per PHP pataisų paslaugą atnaujiname, užbaigiame visus senus lsphp procesus ir dokumentuojame įrodymą.
- Kur paketo dar nėra, pereinamąsias reikšmes nustatome visame serveryje ir apribojame atmintį per cgroup.
- Tikriname svetaines dėl atakos pėdsakų ir išsaugome žurnalus.
Dažni klausimai
Ar PHP2Shell paveikia LiteSpeed?
Taip. Pasak PHP projekto, LiteSpeed priklauso paveiktiems veikimo režimams. Pažeidžiamumai yra pačiame PHP, kurį LiteSpeed vykdo per LSAPI. Todėl lemia lsphp paketų būsena.
Kodėl po atnaujinimo vis dar veikia seni lsphp procesai?
LiteSpeed gali palikti PHP procesus veikti nepriklausomai nuo žiniatinklio serverio, kad sutaupytų įkėlimo laiko. Žiniatinklio serverio paleidimas iš naujo, priklausomai nuo veikimo režimo, jų iš karto nenutraukia. Todėl patikrinkite visų lsphp procesų paleidimo laiką.
Ar tai galioja ir OpenLiteSpeed?
Iš esmės taip. OpenLiteSpeed taip pat naudoja lsphp per LSAPI. Keliai, paketų šaltiniai ir valdymo sąsaja skiriasi, bet principas, t. y. atnaujinimas, paleidimas iš naujo ir kontrolė, išlieka tas pats.
Ar LiteSpeed talpykla padeda nuo pažeidžiamumo?
Ne. Puslapių talpykla kai kuriuos puslapius pateikia be PHP, bet užklausos, pasiekiančios PHP, lieka pažeidžiamos. Talpykla nepakeičia PHP atnaujinimo.