php2shell: kaj storiti, če vaša spletna stran teče na PHP
21. oktobra 2026 je PHP objavil nujne popravke za dve kritični ranljivosti z vzdevkom php2shell, ki napadalcu omogočata izvajanje kode na spletnem strežniku brez prijave. Prek samega PHP so ogroženi WordPress, Drupal, Joomla, Magento in vse druge PHP aplikacije, zato posodobitev vtičnikov ne pomaga. Napadi so že zaznani. Tukaj je, kaj preveriti in kaj storiti.
Zadnja posodobitev: · 5 min branja
Kaj se je zgodilo
Varnostna ekipa PHP je 21. oktobra 2026 objavila popravke za CVE-2026-109618 in CVE-2026-109619 ter obe oceni s CVSS v4.0 9,2, kritično. Obe lahko omogočata oddaljeno izvajanje kode brez overitve: napadalec, ki lahko pošilja zahteve vaši strani, lahko na strežniku izvede svojo kodo s pravicami spletnega strežnika (objava varnostne izdaje PHP).
- CVE-2026-109618 (poškodba pomnilnika, ko PHP zmanjka pomnilnika): po besedah PHP „obravnava pomanjkanja pomnilnika lahko prekine PHP, medtem ko so notranji podatki zahteve le delno inicializirani. Čiščenje zahteve lahko nato neveljavne podatke obravnava kot veljavne.“ (v izvirniku: “out-of-memory handling can interrupt PHP while internal request data is only partially initialized. Request cleanup may then treat the invalid data as valid.”)
- CVE-2026-109619 (ostanek stanja med zahtevami): „notranje stanje zahteve lahko preživi, ko je pomnilnik, ki ga podpira, že sproščen. Poznejša zahteva, ki jo obdela isti proces PHP, lahko to zastarelo stanje uporabi, preden ga običajna inicializacija ponastavi.“ (v izvirniku: “request-owned internal state can survive after its backing memory has been freed. A later request handled by the same worker may use that stale state before normal initialization resets it.”) PHP med potrjenimi učinki navaja tudi razkritje pomnilnika, ki lahko izda gesla, žetone in API-ključe na strežniku (Tenable FAQ).
Številki CVE sta pricurljali 20. oktobra, zato je PHP izdajo premaknil za en dan naprej. Cloudflare je o prvih napadih poročal 21. oktobra, watchTowr pa o poskusih izkoriščanja obeh ranljivosti (Tenable FAQ). Obravnavajte to kot nujno.
Ali je vaša stran ogrožena?
Zelo verjetno, če teče na PHP in različice PHP niste posodobili po 21. oktobru. PHP navaja, da so ogrožene vse namestitve, ki obdelujejo spletne zahteve: PHP-FPM, Apache z mod_php, php-cgi, FrankenPHP in LiteSpeed. Za najbolj tvegan šteje mod_php, za katerega obstaja dokazan izkoriščevalec, ki se izvede pred kakršno koli kodo aplikacije (objava varnostne izdaje PHP).
- Katere aplikacije: vsaka PHP aplikacija, tudi WordPress, Drupal, Joomla, Magento in Laravel. Napaka je v samem PHP, ne v vaši temi ali vtičnikih (Patchstack).
- Katere različice: Wiz, ki je napaki prijavil, navaja, da je vsaj ena od obeh prisotna v vseh različicah PHP vse do 5.4 (Patchstack).
- Niso ogrožene: strani, ki ne tečejo na PHP, na primer statične strani in večina strani na Vercelu, Netlifyju, Cloudflare Pages ali GitHub Pages. Spletne strani, ki jih izdelamo in gostimo v paketu spletne strani, ne tečejo na PHP.
Katere različice PHP so popravljene
- PHP 8.5: popravljeno v 8.5.12
- PHP 8.4: popravljeno v 8.4.27
- PHP 8.3: popravljeno v 8.3.36
- PHP 8.2: popravljeno v 8.2.35 (podpora za PHP 8.2 se konča 31. decembra 2026)
- PHP 8.1 in starejši: ni uradne izdaje. Varnostna ekipa PHP je objavila minimalne povratne prenose (backport) izvorne kode za 7.4, 8.0 in 8.1; nekatere distribucije Linuxa in ponudniki dolgoročne podpore izdajajo lastne popravljene pakete. Različice od 5.4 do 7.3 od projekta PHP sploh ne dobijo popravka.
Distribucije Linuxa pogosto ohranijo lastne številke različic in popravke prenesejo nazaj. Na strežniku s paketi distribucije preverite varnostno obvestilo svoje distribucije, ne samo številke različice.
Kako preverite različico PHP
- WordPress: v skrbniškem delu odprite Orodja → Zdravje spletnega mesta → Informacije → Strežnik (Tools → Site Health → Info → Server). Tam je navedena različica PHP.
- Skupno gostovanje: nadzorna plošča gostovanja (cPanel, Plesk, DirectAdmin ali plošča vašega ponudnika) prikaže različico PHP za vsako stran, običajno pod „Različica PHP“ ali „Nastavitve PHP“.
- Lasten strežnik: spletni strežnik lahko uporablja drug PHP kot ukazna vrstica. Preverite različico, ki jo vaša stran dejansko uporablja, na primer s ploščo ponudnika ali z glavo
X-Powered-By, če je prikazana, ne samo zphp -v.
Kaj storiti danes
Na skupnem ali upravljanem gostovanju
PHP posodobi ponudnik gostovanja, ne vi. Še danes ga pisno vprašajte, ali različica PHP, ki jo uporablja vaša stran, že vsebuje popravke za CVE-2026-109618 in CVE-2026-109619. Če vam plošča omogoča izbiro različice PHP, preklopite na najnovejšo popravljeno različico, ki jo vaša stran podpira.
Na lastnem strežniku ali VPS
- Posodobite PHP na 8.5.12, 8.4.27, 8.3.36 ali 8.2.35 ali namestite popravljeni paket svoje distribucije.
- Znova zaženite vse procese PHP: skupine PHP-FPM, Apache z mod_php, LiteSpeed. Proces, ki že teče, obdrži staro kodo, dokler se ne zažene znova.
- Znova zgradite in razmestite vsebnike. Slika Docker, zgrajena pred 21. oktobrom, še vedno vsebuje stari PHP.
- Preverite vse, kar vključuje PHP: testna okolja, stare projekte, nadzorne plošče in spletno pošto.
Na PHP 8.1 ali starejšem
Nadgradnjo na podprto različico načrtujte zdaj. Do takrat od ponudnika gostovanja ali dobavitelja zahtevajte povratno prenesen popravek ali pa stran umaknite z interneta, če vsebuje karkoli občutljivega. Patchstack svari tudi pred neuradnimi vtičniki za „popravek“ in prekopiranimi odlomki kode (Patchstack).
Če ne morete posodobiti takoj
PHP je objavil začasne nastavitve, ki zmanjšajo izpostavljenost. Po besedah PHP je „popolna rešitev samo posodobitev“: ti ukrepi „ne naredijo namestitve varne“ (objava varnostne izdaje PHP).
php.ini ali skupina FPM (ne .user.ini ali ini_set()), nato znova zaženite vse procese PHP
; CVE-2026-109619
session.upload_progress.enabled = 0
; PHP 8.5 only
fatal_error_backtraces = 0
; CVE-2026-109618: no memory limit applications can override, and small request bodies
php_admin_value[memory_limit] = -1 ; FPM pool syntax
post_max_size = 8M ; 32M if the site needs uploadsupload_max_filesizenaj bo manjši odpost_max_size, velikost zahteve, število polj in dele multipart pa omejite na spletnem strežniku ali posredniku (proxy).- Pri
memory_limit = -1raje nastavite omejitev pomnilnika vsebnika ali cgroup. PHP svetuje, naj ne uporabiteRLIMIT_ASaliRLIMIT_DATA, ki lahko sprožita ranljivo napako. - Cloudflare je uvedel pravila WAF za znane vzorce napadov, tudi v brezplačnih načrtih. So zasilna rešitev in pomagajo le, če vaš strežnik sprejema promet izključno prek Cloudflara (Patchstack).
Znaki, da je bila vaša stran morda tarča
Wiz navaja te znake. Niso dokaz ne v eno ne v drugo smer (Patchstack):
- nenavadne zahteve multipart, ki jim sledijo napake zaradi omejitve pomnilnika ali ponavljajoči se odgovori HTTP 500;
- nepričakovano veliki ali napačno oblikovani piškotki
PHPSESSID; - procesi PHP, ki se brez razloga znova zaganjajo.
Če jih opazite ali če je vaša stran po 20. oktobru delovala na stari različici PHP, dostopni z interneta, najprej posodobite, nato pa strežnik obravnavajte kot morebiti ogrožen. Zamenjajte gesla in ključe, ki jih hrani (zbirka podatkov, skrbniški računi WordPress, soli v wp-config.php, API-ključi in plačilni podatki), poiščite skrbniške račune in datoteke, ki jih niste ustvarili, in če ste v dvomih, obnovite čisto varnostno kopijo.
Poiščite ime za svojo domeno
Vpišite ime in preverite, ali je prosto. Cena je prikazana vnaprej, registracija pa traja nekaj korakov.
Namig: naenkrat lahko preverite do 10 imen, ločenih s presledki, vejicami ali novimi vrsticami.
Sorodni vodiči
Viri
DomainSpace je neodvisen prodajalec domen .si. Nismo povezani z registrom Register.si ali omrežjem ARNES. Vodič je splošna informacija in ni pravni nasvet.