Preskoči na sadržaj

Saveti 8 min čitanja

Kritične PHP ranjivosti (php2shell): šta vlasnici WordPress sajtova treba da urade odmah

CVE-2026-109618 i CVE-2026-109619 pogađaju PHP od verzije 5.4. Koje verzije su zakrpljene, kako da za dva minuta proverite svoj sajt i šta da radite ako hosting još nije ažurirao PHP.

Kritične PHP ranjivosti (php2shell): šta vlasnici WordPress sajtova treba da urade odmah

PHP tim je 21. oktobra 2026. objavio zakrpe za dve kritične ranjivosti koje napadaču bez lozinke mogu da omoguće da izvrši sopstveni kod na serveru. Pogođene su praktično sve verzije PHP-a od 5.4 naovamo, a PHP pokreće većinu sajtova na internetu, uključujući svaki WordPress sajt. Ažuriranje WordPress-a ili plugina ovo ne rešava. Ažurirati se mora sam PHP na serveru.

Ranjivosti su označene kao CVE-2026-109618 i CVE-2026-109619, sa ocenom 9.2 od 10 (CVSS v4.0). Istraživači su ih nazvali php2shell. Britanski centar za sajber bezbednost (NCSC) poziva na hitnu akciju i navodi da sistem koji ne može da se zakrpi treba razmotriti za isključivanje. Reuters je preneo upozorenje evropske agencije da će neki sajtovi možda morati privremeno da se ugase.

Ispod je šta se tačno desilo, kako da za dva minuta proverite da li je vaš sajt zakrpljen i šta da radite ako nije.

Ukratko: Zakrpljene verzije su PHP 8.2.35, 8.3.36, 8.4.27 i 8.5.12. PHP 8.1 i stariji više ne dobijaju zvanične zakrpe, pa sa njih treba preći na noviju verziju. Ako ste na deljenom hostingu, proverite verziju u WordPress-u (Alati, Zdravlje sajta, Info, Server) i pitajte hosting da li je zakrpa primenjena. Ako sajt ide preko Cloudflare-a, on već blokira poznate napade, ali to nije zamena za ažuriranje.

Šta se tačno desilo

Dve greške su u samom PHP-u, ne u kodu sajta:

  • CVE-2026-109618 (RCE preko greške pri nedostatku memorije). Kada PHP-u ponestane memorije dok obrađuje zahtev, on može da prekine rad dok podaci zahteva još nisu do kraja pripremljeni. Čišćenje posle toga radi sa neispravnim podacima. Napadač to izaziva posebno sastavljenim zahtevom za slanje fajlova (multipart).
  • CVE-2026-109619 (RCE preko zaostalog stanja). Posle fatalne greške, PHP proces može da zadrži pokazivače na memoriju koja je već oslobođena. Sledeći zahtev koji obrađuje isti proces može da iskoristi to stanje, pročita osetljive podatke iz memorije ili izvrši kod.

Napad ne zavisi od koda vašeg sajta: greške su u delu PHP-a koji obrađuje zahtev pre nego što sajt uopšte počne da radi. Istraživači iz Wiz-a su demonstrirali izvršavanje koda bez prijave na najnovijim verzijama WordPress-a, Drupal-a i Joomle. PHP tim navodi da je rizik najveći kod mod_php konfiguracije, a da je PHP-FPM, najčešći na hostinzima, po analizi koda takođe izložen.

Greške su otkrili i prijavili istraživači iz Wiz-a, OpenAI-ja, Calif.io i Quarkslab-a. Prva je pronađena 19. avgusta, PHP tim je obavešten 24. avgusta, a zakrpe i javna objava stigli su 21. oktobra. Cloudflare navodi da je već prvog dana video napade na sajtove svojih korisnika.

Koje verzije su zakrpljene

Grana PHP-aZakrpljena verzijaNapomena
8.58.5.12Podržana
8.48.4.27Podržana, preporuka za nove sajtove
8.38.3.36Podržana
8.28.2.35Bezbednosna podrška ističe 31. decembra 2026.
8.1, 8.0, 7.4 i starijeNema zvanične zakrpePređite na podržanu verziju

PHP tim je za 7.4, 8.0 i 8.1 objavio samo minimalne zakrpe izvornog koda, za one koji PHP sami kompajliraju. Neke Linux distribucije i hosting firme ih ugrađuju u svoje pakete, ali to treba proveriti kod njih. Na deljenom hostingu ne računajte na to: ako je sajt i dalje na 7.4 ili 8.0, sada je pravi trenutak za prelazak.

Kako da proverite svoj sajt za dva minuta

  1. U WordPress-u: Alati, Zdravlje sajta, kartica Info, odeljak Server. Polje „PHP verzija“ prikazuje punu verziju, na primer 8.3.36.
  2. Uporedite sa tabelom iznad. Ako je vaša verzija jednaka zakrpljenoj ili novija, zakrpa je primenjena. Ako je 8.3.35 ili starija u istoj grani, sajt je ranjiv.
  3. U panelu hostinga (hPanel, cPanel, Plesk) potražite podešavanje PHP verzije. Tu birate granu (8.3, 8.4), dok sitne verzije sa zakrpama obično ažurira sam hosting.
  4. Ako imate VPS ili sopstveni server: verziju vidite komandom php -v, ali kod paketa iz distribucija (Debian, Ubuntu, RHEL) broj verzije može da ostane star iako je zakrpa ugrađena. Tada proverite bezbednosno obaveštenje vaše distribucije.

Šta da uradite

Ako ste na deljenom hostingu (većina malih firmi):

  • Pošaljite hostingu kratku poruku: „Da li je na mom nalogu primenjena PHP zakrpa za CVE-2026-109618 i CVE-2026-109619 (PHP 8.2.35, 8.3.36, 8.4.27, 8.5.12)?“ Većina hostinga zakrpe primenjuje sama, ali pitanje ubrzava stvar i daje vam pisani odgovor.
  • Ako je sajt na PHP 8.1 ili starijem, u panelu pređite na 8.3 ili 8.4. Pre toga napravite backup i proverite sajt posle promene, jer stari plugini i teme ponekad ne rade na novijem PHP-u.

Ako imate VPS ili sopstveni server:

  • Ažurirajte PHP pakete i restartujte sve PHP procese (PHP-FPM, Apache sa mod_php). Bez restarta stari, ranjivi kod ostaje u memoriji.
  • Proverite i Docker image-e i kontejnere: svaki koji sadrži PHP mora da se ponovo izgradi na zakrpljenoj verziji.

Ako ažuriranje mora da sačeka nekoliko sati:

PHP tim navodi da potpuno rešenje ne postoji bez ažuriranja, ali da sledeće mere smanjuju rizik. Podešavaju se u php.ini ili konfiguraciji servera, ne u kodu sajta, a posle izmene treba restartovati PHP procese:

  • session.upload_progress.enabled=0, osim ako vam praćenje napretka slanja fajlova zaista treba;
  • memory_limit=-1, postavljeno tako da ga aplikacija ne može promeniti (na primer php_admin_value u PHP-FPM-u);
  • post_max_size=8M ako sajt ne prima fajlove, odnosno 32M ako prima, uz upload_max_filesize manji od te vrednosti;
  • na PHP 8.5: fatal_error_backtraces=0;
  • blokirajte multipart zahteve na serveru ili WAF-u ako ih sajt ne koristi.

Ovo su privremene mere i ne čine sajt bezbednim. NCSC savetuje da se sistem koji ne može ni da se ažurira ni da se zaštiti ovim merama razmotri za privremeno isključivanje.

Ako sajt ide preko Cloudflare-a: Cloudflare je 21. oktobra uključio pravila koja blokiraju ove napade, i na besplatnom planu, bez ikakve akcije sa vaše strane. To kupuje vreme, ali Cloudflare izričito kaže da ne zamenjuje ažuriranje PHP-a. Napadači već menjaju zahteve da bi zaobišli zaštitu.

Kako da prepoznate da je neko pokušao

Napadi se odvijaju ispod nivoa sajta, pa logovi WordPress-a i sigurnosnih plugina često ništa ne pokazuju. Wiz navodi sledeće znakove:

  • neobični multipart zahtevi posle kojih slede greške o prekoračenju memorije ili niz odgovora sa greškom 500;
  • neočekivano veliki ili neispravni kolačići PHPSESSID u odgovorima servera;
  • neobjašnjivo često restartovanje PHP procesa.

Ako je sajt bio nezakrpljen i vidite ovakve znakove, posle ažuriranja proverite da li postoje nepoznati administratori, izmenjeni fajlovi i nepoznati PHP fajlovi u folderu uploads. Promenite lozinke za WordPress, bazu i hosting.

Šta ovo znači za vlasnike WordPress sajtova u Srbiji

Najveći rizik nisu sajtovi koji se redovno održavaju, već oni koji su napravljeni pre nekoliko godina i od tada niko nije gledao koja verzija PHP-a radi ispod njih. Takvih je mnogo: sajt radi, pa „nema potrebe“ da se dira. Ova ranjivost pogađa upravo njih, jer je za stare verzije zakrpa obično nedostupna, a prelazak na novi PHP traži proveru plugina i teme.

Dobra vest je da je za sajt na hostingu koji se održava sve uglavnom stvar jednog dana: hosting primeni zakrpu, vi proverite verziju, i to je to. Ako niste sigurni na kojoj verziji je vaš sajt ili ko je zadužen za to, proveru i prelazak na podržanu verziju PHP-a radimo u okviru održavanja sajta. Javite nam se preko kontakt stranice i pogledaćemo vaš sajt.

Napomena: Podaci su iz zvaničnih bezbednosnih obaveštenja PHP tima (GHSA-w8hw-w9fx-j79w i GHSA-6wmf-4rv5-p3rp), objave na php.net, upozorenja britanskog NCSC-a i objava istraživača i Cloudflare-a. Stanje 21. oktobra 2026. Tekst ćemo dopunjavati kako stižu nove informacije.

Često postavljana pitanja

Da li je moj WordPress sajt ugrožen?

Ako radi na PHP verziji starijoj od 8.2.35, 8.3.36, 8.4.27 ili 8.5.12, ranjiv je, bez obzira na to koliko su WordPress i plugini ažurni. Verziju proverite u Alati, Zdravlje sajta, Info, Server.

Da li ažuriranje WordPress-a ili plugina rešava problem?

Ne. Greška je u samom PHP-u na serveru, pa se rešava samo ažuriranjem PHP-a. Na deljenom hostingu to radi hosting, a vi proveravate verziju.

Koje verzije PHP-a su bezbedne?

PHP 8.2.35, 8.3.36, 8.4.27, 8.5.12 i novije u istim granama. PHP 8.1 i stariji ne dobijaju zvanične zakrpe, a podrška za 8.2 ističe 31. decembra 2026, pa je za većinu sajtova najbolji izbor 8.3 ili 8.4.

Šta su CVE-2026-109618 i CVE-2026-109619?

Dve kritične ranjivosti u PHP-u, poznate kao php2shell, sa ocenom 9.2 od 10. Mogu napadaču bez prijave da omoguće izvršavanje koda na serveru ili čitanje osetljivih podataka iz memorije. Zakrpe su objavljene 21. oktobra 2026.

Da li me Cloudflare štiti?

Ako sajt ide preko Cloudflare-a, njegova pravila od 21. oktobra blokiraju poznate oblike napada, i na besplatnom planu. To je privremena zaštita dok se PHP ne ažurira, ne zamena za ažuriranje.

Šta ako moj hosting još nije ažurirao PHP?

Tražite od hostinga rok i pisani odgovor. Ako sajt ne prima fajlove, zamolite ih da privremeno ograniče slanje fajlova i isključe praćenje napretka slanja. Ako zakrpa kasni, razmislite o prelasku na hosting koji redovno održava PHP.

Izvori: PHP: obaveštenje o kritičnim ranjivostima, GHSA-w8hw-w9fx-j79w (CVE-2026-109618), GHSA-6wmf-4rv5-p3rp (CVE-2026-109619), NCSC: Critical security issue affecting PHP, Wiz: PHP2Shell, Cloudflare: zaštita od PHP ranjivosti, Reuters.

Pozovite odmah