Kritični propusti u PHP-u podigli globalnu uzbunu, ispravke samo za novije verzije
Na PHP-u radi oko tri četvrtine svih sajtova na internetu, od malog bloga na WordPressu do Vikipedije, a u njemu su ovih dana objavljena dva kritična propusta. Napadačima bez ikakve prijave ti propusti omogućavaju udaljeno izvršavanje komandi na pogođenoj platformi. Ugroženo je svako PHP okruženje na vebu. Najugroženiji su serveri na kojima PHP radi kao deo samog Apache servera, što je česta postavka: tamo napad prolazi pre nego što se pokrene sajt, pa mu ni zaštite samog sajta nisu od pomoći. Propuste su pronašli istraživači kompanija Calif, OpenAI i Wiz, ali su detalji o tome procureli pre dogovorene objave. Programeri koji održavaju PHP, projekat otvorenog koda, upozorili su administratore 20. oktobra, a zakrpe su izašle dan kasnije. Cloudflare je prve napade uočio pre nego što su zakrpe stigle. Britanski NCSC poručuje da PHP sisteme treba odmah ažurirati, a ako to nije moguće, treba ih isključiti. Prema proceni VirusTotala, na internetu je izloženo preko 5,1 milion PHP servera. Zvanične ispravke dobile su verzije od 8.2 do 8.5. Za 8.1 i starije PHP više ne izdaje zvanične ispravke. Postoje samo ispravke za one koji PHP sami grade, iz izvornog koda, dok Linux distribucije izdaju sopstvene verzije zakrpa. Programeri PHP-a upozoravaju da nijedno privremeno rešenje ne blokira napad u potpunosti.
Kad je propust u veb aplikaciji, krpi se veb aplikacija, kad je propust u dodatku, krpi se dodatak. Ali ovde je propust nekoliko slojeva ispod, u programskom jeziku na kojem stoji veći deo globalnog veb sadržaja, pa pogađa i sajtove koji su inače uredno održavani, a da ne spominjemo one koji nisu: zvanična zakrpa postoji samo za novije verzije PHP-a, dok su starije već odavno bez podrške. U proveri javnih stranica 72 domaća sajta (ministarstva, univerziteti, opštine), deset njih je navelo koju verziju PHP-a koristi, a za sedam od tih deset zakrpa neće izaći. Najstarija potiče iz 2006, pre ravno dvadeset godina. Ostali verziju PHP-a ne prikazuju, što je dobra praksa, ali to ne govori ništa o njihovoj ažurnosti. Za sve koji upravljaju nekim veb sadržajem, ovo treba da bude prva tema dana, pre jutarnje kafe.
- Odmah nadogradi PHP na 8.5.12, 8.4.27, 8.3.36 ili 8.2.35 i ponovo pokreni sve PHP procese
- Ako si na verziji 8.1 ili starijoj, potraži ispravku od distributera ili hosting provajdera i planiraj prelazak na podržanu verziju — zvanične zakrpe za te verzije nema
- Dok ne zakrpiš, primeni privremena podešavanja iz PHP-ovog upozorenja: session.upload_progress.enabled=0, nizak post_max_size i memory_limit=-1 zaključan na nivou servera, uz svest da ne štite u potpunosti
- Isključi prikaz verzije PHP-a u odgovoru servera (expose_php=Off) — to ne zatvara propust, ali napadaču ne olakšava izbor mete
- Sistem koji ne možeš odmah da zakrpiš, a dostupan je sa interneta, privremeno isključi, kako savetuje britanski NCSC