Trenutno stanje: PHP2Shell. Dvije kritične PHP ranjivosti (CVSS 9.2) omogućuju zlonamjerni kod bez prijave. Zakrpe od 21. 10. 2026.Što sada učiniti →

CVE-2026-109618: RCE zbog stanja Out of Memory

CVE-2026-109618 jedna je od dviju PHP2Shell ranjivosti: stanje Out of Memory može prekinuti PHP usred obrade zahtjeva. Ispravljeno od PHP-a 8.5.12, 8.4.27, 8.3.36 i 8.2.35.

Stanje 4 min čitanjaPHP2Shell

Ukratko: CVE-2026-109618 jedna je od dviju ranjivosti iza PHP2Shella. Stanje Out of Memory može prekinuti PHP dok su podaci zahtjeva tek djelomično inicijalizirani; pri čišćenju tada nevaljani podaci mogu vrijediti kao valjani. To omogućuje izvršavanje koda bez prijave. Pogreška je ispravljena u PHP-u 8.5.12, 8.4.27, 8.3.36 i 8.2.35.

Što je CVE-2026-109618?

CVE-2026-109618 (GitHub oznaka GHSA-w8hw-w9fx-j79w) je ranjivost zbog pogreške u memoriji u jezgri PHP-a. Ocijenjena je s 9,2 prema CVSS-u v4.0. Zajedno s CVE-2026-109619 čini ono što se u medijima naziva PHP2Shell.

Učinak je tzv. unauthenticated Remote Code Execution: napadač može izdaleka i bez korisničkog računa izvršavati kod na web-poslužitelju. Time ranjivost spada u najopasniju klasu slabih točaka koje web-poslužitelj može imati.

Kako ranjivost načelno nastaje

Kad PHP obrađuje web-zahtjev, interno stvara strukture podataka za taj zahtjev, primjerice za poslane podatke obrasca. Ako pritom PHP dosegne svoju granicu memorije, prekida rad stanjem Out of Memory. Prema php.net-u to se može dogoditi dok su podaci zahtjeva tek djelomično inicijalizirani.

Na kraju svakog zahtjeva PHP čisti i oslobađa memoriju. Upravo je tu pogreška: čišćenje može nevaljane, tek napola stvorene podatke tretirati kao valjane. Iz tog neispravnog ponašanja pod određenim uvjetima može se izvesti izvršavanje koda.

Zašto je takva pogreška toliko ozbiljna? Pogreška u memoriji u programskom jeziku pogađa sve aplikacije koje na njemu rade, neovisno o tome koliko su pažljivo programirane. Održavana WordPress instalacija s aktualnim dodacima pogođena je jednako kao i stari vlastiti razvoj. Zato ovdje ne pomaže ažuriranje aplikacije, nego samo ažuriranje PHP-a.

Daljnje tehničke pojedinosti o iskorištavanju namjerno ne objavljujemo. Za obranu nisu potrebne: odlučujuće je koristi li Vaš poslužitelj ispravljenu verziju i rade li novi procesi doista.

Pogođene verzije i načini rada

PHP grana Zadnje stanje prije ispravka Ispravljeno od
8.5 8.5.11 8.5.12
8.4 8.4.26 8.4.27
8.3 8.3.35 8.3.36
8.2 8.2.34 8.2.35
8.1 i starije nema službenog ažuriranja samo minimalni backportovi izvornog koda za 7.4, 8.0, 8.1

Pogođeni su načini rada PHP-FPM, Apache s mod_php, php-cgi, FrankenPHP i LiteSpeed. PHP tim rizik kod mod_php ocjenjuje najvišim. Distribucije i pružatelji hostinga ponekad ugrađuju backportove pa se prikazuje starija oznaka verzije iako je pogreška ispravljena. Mjerodavni su stanje paketa i potvrda pružatelja.

O razmjerima: Palo Alto Networks (Unit 42) izbrojio je više od 22,6 milijuna izloženih, potencijalno ranjivih instanci. BSI (njemački Savezni ured za sigurnost informacijske tehnologije) proglasio je razinu upozorenja 3 (narančasta) i računao je s brzim iskorištavanjem u velikom opsegu.

Otklanjanje CVE-2026-109618: ažuriranje i ponovno pokretanje

Jedina potpuna mjera je ažuriranje. Prvo provjerite verziju i stanje paketa. Nazivi paketa razlikuju se po distribuciji; primjeri polaze od PHP-a 8.3:

php -v
apt policy php8.3-fpm          # Debian/Ubuntu
dnf info php-fpm               # RHEL, AlmaLinux, Rocky, Fedora
rpm -q --changelog php-fpm | grep -i "CVE-2026-109618"

Ako changelog paketa navodi CVE broj, backport je instaliran. Ako ga nema, to ne znači automatski da je paket ranjiv; tada pomaže usporedba s tablicom verzija ili upit kod pružatelja.

Nakon ažuriranja moraju se ponovno pokrenuti svi PHP procesi, primjerice naredbom systemctl restart php8.3-fpm ili kod mod_php ponovnim pokretanjem Apachea. Kako osigurati da više ne radi nijedan stari worker, piše na stranici Ponovno pokretanje PHP-FPM-a i svih workera.

Privremene mjere dok ažuriranje još nije moguće

php.net je za PHP2Shell objavio privremene mjere. Vrijede za obje ranjivosti zajedno i izričito nisu potpuna zaštita. To što se nekoliko njih odnosi na granice memorije odgovara okidaču Out of Memory kod CVE-2026-109618; službenog pridruživanja pojedinih mjera pojedinim CVE-ovima ipak nema.

; Primjer FPM poola, npr. /etc/php/8.3/fpm/pool.d/www.conf (putanja se razlikuje po distribuciji)
php_admin_value[memory_limit] = -1
php_admin_value[post_max_size] = 8M          ; 32M ako su potrebni prijenosi datoteka
php_admin_value[upload_max_filesize] = 6M    ; immer unter post_max_size
php_admin_flag[session.upload_progress.enabled] = off

Vrijednosti moraju biti postavljene tako da ih aplikacije ne mogu nadjačati, stoga php_admin_value. Uz memory_limit=-1 usluzi treba izvanjsko ograničenje memorije, putem kontejnera ili cgroupa, a ne putem RLIMIT_AS ili RLIMIT_DATA. Na PHP-u 8.5 dodaje se fatal_error_backtraces=0. Sve pojedinosti su na stranici Hitne mjere ako još ne možete zakrpati.

Važno

Ako nisu odmah moguće ni ažuriranje ni privremene mjere, BSI preporučuje privremeno isključiti pogođene web-poslužitelje s mreže.

Kako PHP SOS konkretno pomaže?

Putem naše usluge PHP zakrpe strukturirano zatvaramo CVE-2026-109618:

  • Utvrditi stvarno stanje: PHP grana, način rada, izvor paketa i stanje backporta po poslužitelju.
  • Instalirati ažuriranje iz odgovarajućeg izvora paketa ili, gdje to nije moguće, čisto postaviti privremene mjere u konfiguraciju poola ili poslužitelja.
  • Provjeriti ponovno pokretanje: Kontroliramo da više ne rade stari PHP procesi.
  • Dokaz: Dobivate dokumentaciju s verzijama i stanjima paketa prije i poslije zahvata, primjerice za upravu, osiguravatelja ili zaštitu podataka.

Česta pitanja

Koliko je kritičan CVE-2026-109618?

Ranjivost je ocijenjena s 9,2 prema CVSS-u v4.0 i stoga je kritična. Omogućuje izvršavanje zlonamjernog koda izdaleka bez prijave. BSI je za PHP2Shell proglasio razinu upozorenja 3 (narančasta).

Je li dovoljno povećati memory_limit?

Ne. php.net navodi memory_limit=-1, trajno postavljen u konfiguraciji poslužitelja, kao jednu od više privremenih mjera. Ona izričito nije potpuna zaštita i traži ograničenje memorije putem kontejnera ili cgroupa. Rješenje ostaje ažuriranje.

Koja GHSA oznaka pripada CVE-2026-109618?

U GitHub Security Advisoryju ranjivost se vodi pod GHSA-w8hw-w9fx-j79w. Druga PHP2Shell ranjivost, CVE-2026-109619, ima oznaku GHSA-6wmf-4rv5-p3rp.

Izvori

Hitni kontakt

Svaki sat se računa. Pišite nam odmah.

Ukratko opišite sustav, verziju PHP-a i opažanje. Javit ćemo Vam se, razjasniti situaciju i raditi na daljinu dok incident nije zaključen i dokumentiran.

Hitna pomoć