Trenutno stanje: PHP2Shell. Dve kritični ranljivosti PHP (CVSS 9,2) omogočata izvedbo škodljive kode brez prijave. Popravki od 21. 10. 2026.Kaj je zdaj treba storiti →

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

CVE-2026-109618 je ena od obeh ranljivosti PHP2Shell: stanje Out of Memory lahko prekine PHP sredi obdelave zahteve. Odpravljeno od PHP 8.5.12, 8.4.27, 8.3.36 in 8.2.35.

Stanje 4 min branjaPHP2Shell

Na kratko: CVE-2026-109618 je ena od obeh ranljivosti za PHP2Shell. Stanje Out of Memory lahko prekine PHP, medtem ko so podatki zahteve šele delno inicializirani; pri pospravljanju lahko neveljavni podatki tedaj veljajo za veljavne. To omogoča izvajanje kode brez prijave. Napaka je odpravljena v PHP 8.5.12, 8.4.27, 8.3.36 in 8.2.35.

Kaj je CVE-2026-109618?

CVE-2026-109618 (oznaka GitHub GHSA-w8hw-w9fx-j79w) je ranljivost zaradi napake v pomnilniku v jedru PHP. Po CVSS v4.0 ima oceno 9,2. Skupaj z CVE-2026-109619 tvori tisto, kar mediji imenujejo PHP2Shell.

Učinek je tako imenovani unauthenticated Remote Code Execution: napadalec lahko na daljavo in brez uporabniškega računa na spletnem strežniku izvede kodo. S tem ranljivost sodi v najnevarnejši razred šibkih točk, ki jih lahko ima spletni strežnik.

Kako ranljivost načeloma nastane

Ko PHP obdeluje spletno zahtevo, interno ustvari podatkovne strukture za to zahtevo, na primer za poslane podatke obrazcev. Če PHP pri tem naleti na mejo pomnilnika, se prekine s stanjem Out of Memory. Po navedbah php.net se to lahko zgodi, medtem ko so podatki zahteve šele delno inicializirani.

Na koncu vsake zahteve PHP pospravi in sprosti pomnilnik. Prav tam je napaka: pospravljanje lahko neveljavne, samo napol ustvarjene podatke obravnava kot veljavne. Iz tega napačnega vedenja je pod določenimi pogoji mogoče izpeljati izvajanje kode.

Zakaj je takšna napaka tako resna? Napaka v pomnilniku v programskem jeziku zadeva vse aplikacije, ki tečejo na njem, ne glede na to, kako skrbno so programirane. Vzdrževana namestitev WordPressa z aktualnimi vtičniki je prizadeta enako kot star lasten razvoj. Zato tu ne pomaga posodobitev aplikacije, ampak samo posodobitev PHP.

Nadaljnjih tehničnih podrobnosti o izkoriščanju namenoma ne objavljamo. Za obrambo niso potrebne: odločilno je, ali vaš strežnik uporablja odpravljeno različico in ali novi procesi res tečejo.

Prizadete različice in načini delovanja

Veja PHP Zadnje stanje pred popravkom Odpravljeno 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 in starejši ni uradne posodobitve samo minimalni backporti izvorne kode za 7.4, 8.0, 8.1

Prizadeti so načini delovanja PHP-FPM, Apache z mod_php, php-cgi, FrankenPHP in LiteSpeed. Ekipa PHP tveganje pri mod_php ocenjuje kot najvišje. Distribucije in ponudniki gostovanja deloma nameščajo backporte, zato se prikaže starejša številka različice, čeprav je napaka odpravljena. Merodajna sta stanje paketa in potrditev ponudnika.

Za velikostni red: Palo Alto Networks (Unit 42) je naštel več kot 22,6 milijona izpostavljenih, potencialno ranljivih instanc. BSI je razglasil opozorilno stopnjo 3 (oranžna) in računal na hitro obsežno izkoriščanje.

Odprava CVE-2026-109618: posodobitev in ponovni zagon

Edina popolna rešitev je posodobitev. Najprej preverite različico in stanje paketa. Imena paketov se po distribucijah razlikujejo; primeri izhajajo iz PHP 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"

Če dnevnik sprememb paketa navaja številko CVE, je backport nameščen. Če je ni, to samodejno ne pomeni, da je paket ranljiv; takrat pomaga primerjava s tabelo različic ali vprašanje ponudniku.

Po posodobitvi je treba znova zagnati vse procese PHP, na primer z systemctl restart php8.3-fpm ali pri mod_php s ponovnim zagonom Apacheja. Kako zagotovite, da noben star worker ne teče več, piše na strani Ponovni zagon PHP-FPM in vseh workerjev.

Vmesni ukrepi, dokler posodobitev še ni mogoča

php.net je za PHP2Shell objavil vmesne ukrepe. Veljajo skupaj za obe ranljivosti in izrecno niso popolna zaščita. Dejstvo, da se več med njimi nanaša na omejitve pomnilnika, se ujema s sprožilcem Out of Memory pri CVE-2026-109618; uradne dodelitve posameznih ukrepov posameznim CVE pa ni.

; Primer pool FPM, npr. /etc/php/8.3/fpm/pool.d/www.conf (pot je odvisna od distribucije)
php_admin_value[memory_limit] = -1
php_admin_value[post_max_size] = 8M          ; 32M, če so potrebna nalaganja datotek
php_admin_value[upload_max_filesize] = 6M    ; immer unter post_max_size
php_admin_flag[session.upload_progress.enabled] = off

Vrednosti morajo biti nastavljene tako, da jih aplikacije ne morejo prepisati, zato php_admin_value. Pri memory_limit=-1 storitev potrebuje zunanjo omejitev pomnilnika, prek containerja ali cgroup, ne prek RLIMIT_AS ali RLIMIT_DATA. Pri PHP 8.5 se doda fatal_error_backtraces=0. Vse podrobnosti so na strani Takojšnji ukrepi, če še ne morete popraviti.

Pomembno

Če takojšnja posodobitev ni mogoča in tudi vmesni ukrepi ne, BSI priporoča, da se prizadeti spletni strežniki začasno odklopijo z omrežja.

Kako konkretno pomaga PHP SOS?

S storitvijo popravljanja PHP CVE-2026-109618 zapremo strukturirano:

  • Zabeležiti dejansko stanje: veja PHP, način delovanja, vir paketa in stanje backportov za vsak strežnik.
  • Namestiti posodobitev iz ustreznega paketnega vira ali, kjer to ni mogoče, vmesne ukrepe čisto nastaviti v konfiguraciji poola ali strežnika.
  • Preveriti ponovni zagon: kontroliramo, da noben star proces PHP ne teče več.
  • Dokazilo: prejmete dokumentacijo z različicami in stanji paketov pred posegom in po njem, na primer za vodstvo, zavarovalnico ali varstvo podatkov.

Pogosta vprašanja

Kako kritična je CVE-2026-109618?

Ranljivost ima po CVSS v4.0 oceno 9,2 in je zato kritična. Omogoča izvajanje škodljive kode na daljavo brez prijave. BSI (nemški zvezni urad za informacijsko varnost) je za PHP2Shell razglasil opozorilno stopnjo 3 (oranžna).

Ali zadošča, da povečam memory_limit?

Ne. php.net navaja memory_limit=-1, trdno nastavljen v konfiguraciji strežnika, kot enega od več vmesnih ukrepov. Izrecno ni popolna zaščita in zahteva omejitev pomnilnika prek containerja ali cgroup. Rešitev ostaja posodobitev.

Katera oznaka GHSA sodi k CVE-2026-109618?

V GitHub Security Advisory je ranljivost vodena pod GHSA-w8hw-w9fx-j79w. Druga ranljivost PHP2Shell, CVE-2026-109619, ima oznako GHSA-6wmf-4rv5-p3rp.

Viri

Takojšnji stik

Vsaka ura šteje. Pišite nam zdaj.

Na kratko opišite sistem, različico PHP in opažanje. Odzovemo se, razjasnimo stanje in delamo na daljavo, dokler incident ni zaključen in dokumentiran.

Takojšnja pomoč