PHP sigurnosni propust od 21. listopada: što se dogodilo i kakvo je trenutačno stanje
U srijedu, 21. listopada, otkrivena su dva ozbiljna sigurnosna propusta u PHP-u, programskom jeziku na kojem radi velika većina svih web stranica, uključujući WordPress. Možda ste to primijetili jer su web stranice kod nas dio dana bile nedostupne. U ovom članku iznosimo pregled onoga što se dogodilo, kako smo postupili te kako trenutačno stoje stvari.
Što se dogodilo?
Propusti (CVE-2026-109618 i CVE-2026-109619) omogućili su neovlaštenim osobama izvršavanje koda na web poslužitelju. To je otprilike najgora vrsta propusta koja postoji: napadaču za to nije potrebna lozinka, a propust pogađa gotovo cijeli internet.
Kako smo postupili
- Privremena mjera
U tom je trenutku bilo poznato samo da se u svim verzijama PHP-a nalaze dva ozbiljna propusta, s CVE ocjenom 9,2. Detalji još nisu bili poznati i nisu bili poznati uspješni napadi, iako je, primjerice, Cloudflare bilježio sve više pokušaja. Budući da detalji propusta nisu bili poznati, nitko nije znao kako točno stvari stoje niti što se moglo poduzeti kako bi se rizik ograničio. Postupno su se pojavljivale sve brojnije mjere ublažavanja i moguće radnje za ograničavanje rizika. Te smo mjere odmah primjenjivali, poput isključivanja određenih PHP funkcija i višestrukog ažuriranja vatrozida (firewalla).
Od 10:00 sati također smo kontinuirano provodili vrlo stroge skenove zlonamjernog softvera (malwarea), kako bismo odmah primijetili ako bi se negdje na našim poslužiteljima ili u računima naših klijenata postavila neka skripta. Do toga nije došlo. - Web stranice nedostupne
Iako na našim poslužiteljima nismo primijetili pokušaje zlouporabe, odlučili smo odabrati najsigurniju opciju: sve staviti izvan mreže. Glavni razlog za to bio je što smo sumnjali u učinkovitost mjera ublažavanja (privremenih rješenja) koje su kružile internetom, jer nitko nije mogao potvrditi da one pružaju dovoljnu zaštitu.
U situaciji s toliko nejasnoća i potencijalno golemim posljedicama, nekoliko sati nedostupnosti opravdano je; preuzimanje rizika nije. - Službeno rješenje
Autori PHP-a objavili su službeno ažuriranje s ispravkom za verzije 8.3, 8.4 i 8.5. Nakon toga preostalo je čekati ažurirane pakete tvrtke CloudLinux, dobavljača PHP verzija na našim poslužiteljima.
Objavom ažuriranja postali su poznati i detalji ranjivosti, čime se potvrdila naša slutnja: poznate mjere ublažavanja i dodatna pravila vatrozida doduše su smanjivale rizik od napada, no to nije bilo dovoljno za zaštitu poslužitelja. - Privremeno rješenje
Nažalost, trebalo je znatno više vremena nego što smo se nadali i očekivali prije nego što je CloudLinux pripremio ažuriranja. Iz kontakta s drugim pružateljima usluga ispostavilo se da nismo bili jedini iznenađeni. Budući da smo primijetili da su već nekoliko puta propustili vlastite rokove, radili smo na privremenom rješenju.
Sami smo instalirali PHP verziju 8.3.36 na sve naše poslužitelje i sve naše klijente privremeno prebacili na tu verziju. 90% web stranica ponovno je postalo dostupno između 19:00 i 20:30 sati. Jedine web stranice koje nisu ponovno postale dostupne bile su zastarjele i nisu mogle raditi s modernom verzijom PHP-a. - Ažuriranje
Ažuriranja su postala dostupna i odmah smo započeli s instalacijom i provjerom, poslužitelj po poslužitelj.
- Riješeno
Svi poslužitelji bili su ažurirani i sve web stranice ponovno su bile dostupne, na PHP verziji koju su koristile i prije.
Potpuno razumijemo da je neugodno kada Vaša web stranica jedno poslijepodne i navečer nije dostupna. Ta neugodnost, međutim, ne nadmašuje moguće posljedice. Nikada prije nismo morali odlučiti da sve, iz predostrožnosti, stavimo izvan mreže, no ako se ista situacija ponovno dogodi, postupit ćemo na potpuno isti način.
Kako trenutačno stoje stvari?
- Sve verzije PHP-a koje nudimo, od 5.2 do uključivo 8.5, sadrže sigurnosne ispravke za oba propusta.
- Nekoliko web stranica koje su radile na još starijoj verziji PHP-a, za koju ispravka ne postoji, prebacili smo na ispravljenu verziju.
- Tijekom i nakon otkrivanja propusta provjerili smo poslužitelje na tragove zlouporabe, poput zaglavljenih PHP procesa, sumnjivih procesa, učitanih datoteka i zahtjeva koji odgovaraju poznatom napadu. Nismo pronašli naznake da je propust iskorišten na našim poslužiteljima, a ni prije nego što smo stranice stavili izvan mreže nisu pronađeni pokušaji toga.
Je li moja web stranica odvojena od web stranica drugih korisnika?
Da. Svaki hosting paket kod nas radi u vlastitom, zaštićenom okruženju. PHP radi pod korisnikom Vašeg paketa, bez administratorskih prava na poslužitelju, i ne može pristupiti datotekama ili bazama podataka drugih klijenata. Također je i korištenje procesora i memorije ograničeno po paketu. Više pojedinosti o našoj sigurnosti svjesno ne objavljujemo javno: što napadač manje zna, to bolje.
Pročitajte sljedeće članke

Prelazimo na Euro-Office: novi uredski paket u Vašem Nextcloudu
Novo: MCP server za AI. Neka Vaš vlastiti AI radi na Vašoj web stranici
Vaš AI sada može raditi izravno na Vašoj web stranici u WebOké: mijenjati datoteke, pronalaziti pogreške, izraditi novi dizajn ili pretvoriti WordPress u brzu statičnu stranicu. Objašnjavamo što je MCP server, što Vam donosi, za koje pakete vrijedi i koliko košta (ništa dodatno).

