Ukratko: Tko želi da mu se instalira PHP ažuriranje, treba više od novih paketa: odlučujući su ispravno stanje paketa, ponovno pokretanje svih PHP procesa i dokaz o tome. Upravo to isporučuje naša usluga PHP zakrpe. Za svaki poslužitelj dobivate pisani dokaz koji možete predočiti interno ili trećim stranama.
Zašto samo PHP ažuriranje često nije dovoljno
Od 21. 10. 2026. postoje zakrpe za PHP2Shell ranjivosti CVE-2026-109618 i CVE-2026-109619. BSI (njemački Savezni ured za sigurnost informacijske tehnologije) preporučuje trenutačno ažuriranje. U praksi vidimo tri tipična kamena spoticanja.
Prvo, broj verzije ne pokazuje uvijek stvarno stanje. Distribucije i pružatelji hostinga ponekad ugrađuju backportove; tada primjerice Plesk i dalje javlja 8.2.34, iako je stanje paketa zakrpano. Drugo, nakon instalacije često i dalje rade stari PHP procesi. Nove datoteke na disku ne štite dok stari workeri rade u memoriji. Treće, na poslužitelju često paralelno radi više verzija PHP-a, a jedna od njih se zaboravi.
Instalacija PHP ažuriranja: ispravljene verzije
| Grana | Ispravljeno od | Prethodno stanje | Napomena |
|---|---|---|---|
| PHP 8.5 | 8.5.12 | 8.5.11 | dodatno provjeriti fatal_error_backtraces |
| PHP 8.4 | 8.4.27 | 8.4.26 | |
| PHP 8.3 | 8.3.36 | 8.3.35 | |
| PHP 8.2 | 8.2.35 | 8.2.34 | podrška završava 31. 12. 2026. |
| PHP 8.1 i starije | nema službenih ažuriranja | – | samo minimalni backportovi izvornog koda za 7.4, 8.0, 8.1 |
Kod paketa iz distribucija ili od pružatelja hostinga ne vrijedi broj iza „PHP“, nego stanje paketa koje pružatelj potvrdi kao zakrpano. Kako to sami provjeriti, piše na stranici Ispravna provjera verzije PHP-a i stanja zakrpe.
Kako PHP SOS konkretno pomaže?
- Inventura: Bilježimo sve PHP instalacije na poslužitelju, način rada (PHP-FPM, mod_php, php-cgi, FrankenPHP, LiteSpeed) i koja web-stranica koristi koju verziju.
- Instalacija ažuriranja: Instaliramo ispravljene verzije iz izvora paketa Vaše distribucije, Vašeg panela ili službenog projekta. Za kontejnere s Vama gradimo nove image-e.
- Ponovno pokretanje svih procesa: Potpuno ponovno pokrećemo PHP-FPM, Apache, LiteSpeed ili odgovarajuće workere i kontroliramo da nijedan proces nije stariji od ažuriranja. Pozadina je na stranici Ponovno pokretanje PHP-FPM-a i svih workera.
- Provjera funkcionalnosti: Otvaramo najvažnije stranice i funkcije, primjerice početnu stranicu, prijavu, obrasce i blagajnu, te provjeravamo zapisnike pogrešaka.
- Dokaz: Za svaki poslužitelj dobivate protokol s verzijom, stanjem paketa, vremenom ponovnog pokretanja i otvorenim točkama.
Tipičan korak provjere nakon ponovnog pokretanja izgleda ovako:
# Verzija PHP CLI-ja i FPM binarne datoteke (putanja ovisi o sustavu)
php -v
php-fpm8.3 -v
# Vrijeme pokretanja FPM procesa: mora biti nakon ažuriranja
ps -o pid,lstart,cmd -C php-fpm8.3
Posebni slučajevi: paneli, kontejneri i više verzija PHP-a
Na poslužiteljima s Pleskom ili cPanelom PHP verzije često dolaze iz izvora paketa panela, a ne iz distribucije. Tamo svaku instaliranu verziju provjeravamo zasebno, pa i one koje trenutačno nisu dodijeljene nijednoj web-stranici. Nekorištene, zastarjele verzije uklanjamo nakon dogovora kako se ne bi slučajno ponovno aktivirale.
U Docker i Kubernetes okruženjima ažuriranje na hostu nije dovoljno. PHP se nalazi u image-u, a ranjivost zatvara tek novi image s zakrpanom osnovom, raspoređen na sve pokrenute kontejnere. Pritom provjeravamo i koriste li se još stariji image-i u registrima ili deploymentima. Pojedinosti su na stranici Zakrpa za PHP u Docker kontejnerima.
Kod mod_php PHP radi izravno u Apacheovu procesu. PHP tim tamo rizik ocjenjuje najvišim. Nakon ažuriranja stoga se mora potpuno ponovno pokrenuti sam Apache; puko ponovno učitavanje konfiguracije ne mora u svakom slučaju biti dovoljno.
Što dobivate od nas
- protokol zakrpe za svaki poslužitelj: instalirani paketi, verzije, izvor, vrijeme
- dokaz da su svi PHP procesi ponovno pokrenuti
- popis provjerenih web-stranica i funkcija
- napomene o sustavima koji nisu mogli biti zakrpani, s obrazloženjem
- preporuku za daljnji put, primjerice kod PHP-a 8.2 zbog bliskog kraja podrške
Što trebamo od Vas
- Pristup: SSH s administratorskim ovlastima ili pristup panelu (Plesk, cPanel i slično)
- Prozor za održavanje: kada se smije provesti kratko ponovno pokretanje
- Kontakt osoba: za dodatna pitanja i za odobrenje nakon provjere funkcionalnosti
- Sigurnosne kopije: potvrda da postoji aktualna kopija ili nalog da se prije toga izradi
- Napomene o vlastitim razvojima: posebna PHP proširenja ili konfiguracije koje treba uzeti u obzir
Kod shared hostinga bez vlastitog pristupa poslužitelju ne možemo sami zakrpati. Tada Vam pomažemo postaviti prava pitanja pružatelju hostinga i procijeniti odgovor.
Što ne obećavamo
Usluga zakrpe zatvara poznatu ranjivost. Ne odgovara na pitanje je li poslužitelj već prije ažuriranja bio kompromitiran i ne uklanja ubačeni zlonamjerni softver. Ako to želite znati, odgovarajući nalog je hitna pomoć kod PHP2Shella s potragom za tragovima.
Za PHP 8.1 i starije više ne postoje službena ažuriranja. Tu provodimo privremene mjere i preporučujemo migraciju na podržanu verziju. Jamstvo kompatibilnosti za Vaš CMS ne dajemo napamet, nego ga provjeravamo prema sistemskim zahtjevima proizvođača.
Česta pitanja
Zašto moj poslužitelj nakon ažuriranja i dalje prikazuje staru verziju PHP-a?
Razlozi mogu biti dva. Ili je distribucija ugradila backport, pa broj verzije ostaje isti iako je stanje paketa zakrpano. Ili stari PHP procesi još rade u memoriji i moraju se ponovno pokrenuti.
Koje verzije PHP-a zatvaraju PHP2Shell?
Ranjivost je ispravljena u PHP-u 8.5.12, 8.4.27, 8.3.36 i 8.2.35, objavljenima 21. 10. 2026. Kod paketa distribucija vrijedi stanje paketa koje pružatelj potvrdi kao zakrpano.
Može li ažuriranje onesposobiti moju web-stranicu?
Ažuriranje unutar iste glavne verzije, primjerice s 8.3.35 na 8.3.36, u pravilu je nekritično. Kratko ponovno pokretanje PHP procesa ipak je potrebno. Vremenski okvir usklađujemo s Vama, a nakon toga provjeravamo stranice.
Je li sa zakrpom sve gotovo?
Za samu ranjivost da, čim su svi procesi ponovno pokrenuti. Je li netko upao prije zakrpe, zakrpa ne pokazuje. Za to je potrebna zasebna provjera.