# CVE-2026-109618: RCE cez stav out-of-memory

> CVE-2026-109618 vysvetlená: ako môže stav out-of-memory v PHP viesť k spusteniu kódu, ktoré verzie sú opravené a čo majú administrátori urobiť teraz.

Zdroj: https://phpsos.de/sk/php2shell/cve-2026-109618/  
Stav: 25.10.2026  
Poskytovateľ: PHP SOS, Núdzová pomoc pri PHP a bezpečnosť serverov. Okamžitá pomoc cez WhatsApp: https://wa.me/491736494914?text=Dobr%C3%BD%20de%C5%88%2C%20PHP%20SOS%2C%20potrebujeme%20pomoc%20s%20na%C5%A1%C3%ADm%20serverom%20s%20PHP.%20Spolo%C4%8Dnos%C5%A5%3A%20%E2%80%A6%20Web%3A%20%E2%80%A6

**Stručne:** CVE-2026-109618 je jedna z dvoch zraniteľností za PHP2Shell. Stav out-of-memory môže prerušiť PHP v čase, keď sú údaje požiadavky iba čiastočne inicializované; pri upratovaní sa potom neplatné údaje môžu považovať za platné. To umožňuje spustenie kódu bez prihlásenia. Chyba je opravená v PHP 8.5.12, 8.4.27, 8.3.36 a 8.2.35.

## Čo je CVE-2026-109618?

CVE-2026-109618 (identifikátor GitHub GHSA-w8hw-w9fx-j79w) je zraniteľnosť typu chyba pamäte v jadre PHP. Podľa CVSS v4.0 má skóre 9,2. Spolu s [CVE-2026-109619](https://phpsos.de/sk/php2shell/cve-2026-109619/) tvorí to, čo médiá označujú ako [PHP2Shell](https://phpsos.de/sk/php2shell/was-ist-php2shell/).

Účinkom je takzvané unauthenticated Remote Code Execution: útočník môže na diaľku a bez používateľského účtu spúšťať kód na webovom serveri. Zraniteľnosť tak patrí do najnebezpečnejšej triedy slabín, aké webový server môže mať.

## Ako zraniteľnosť v zásade vzniká

Keď PHP spracúva webovú požiadavku, interne pre ňu zakladá dátové štruktúry, napríklad pre odoslané údaje formulára. Ak PHP pritom narazí na svoju hranicu pamäte, preruší sa stavom out-of-memory. Podľa php.net sa to môže stať v čase, keď sú údaje požiadavky iba čiastočne inicializované.

Na konci každej požiadavky PHP upratuje a uvoľňuje pamäť. Práve tu je chyba: upratovanie môže neplatné, iba napoly založené údaje považovať za platné. Z tohto chybného správania sa za určitých podmienok dá odvodiť spustenie kódu.

Prečo je takáto chyba taká vážna? Chyba pamäte v programovacom jazyku sa dotýka všetkých aplikácií, ktoré na ňom bežia, bez ohľadu na to, ako starostlivo sú naprogramované. Udržiavaná inštalácia WordPressu s aktuálnymi doplnkami je dotknutá rovnako ako stará vlastná aplikácia. Preto tu nepomôže aktualizácia aplikácie, ale iba aktualizácia PHP.

Ďalšie technické podrobnosti o zneužití vedome nezverejňujeme. Na obranu nie sú potrebné: rozhodujúce je, či váš server používa opravenú verziu a či naozaj bežia nové procesy.

## Dotknuté verzie a spôsoby prevádzky

| Vetva PHP | Posledný stav pred opravou | Opravené 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 a staršie | žiadna oficiálna aktualizácia | iba minimálne backporty zdrojového kódu pre 7.4, 8.0, 8.1 |

Dotknuté sú spôsoby prevádzky PHP-FPM, Apache s mod_php, php-cgi, FrankenPHP a LiteSpeed. Tím PHP hodnotí riziko pri mod_php ako najvyššie. Distribúcie a poskytovatelia hostingu čiastočne nasadzujú backporty, takže sa zobrazuje staršie číslo verzie, hoci je chyba opravená. Rozhodujúci je stav balíka a potvrdenie poskytovateľa.

K rádu veľkosti: Palo Alto Networks (Unit 42) napočítalo viac ako 22,6 milióna exponovaných, potenciálne zraniteľných inštancií. BSI vyhlásil výstražný stupeň 3 (oranžový) a počítal s rýchlym rozsiahlym zneužitím.

## Odstránenie CVE-2026-109618: aktualizácia a reštart

Jediná úplná náprava je aktualizácia. Najprv skontrolujte verziu a stav balíka. Názvy balíkov sa líšia podľa distribúcie; príklady vychádzajú z PHP 8.3:

```bash
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"
```

Ak changelog balíka uvádza číslo CVE, backport je nasadený. Ak chýba, neznamená to automaticky, že balík je zraniteľný; vtedy pomôže porovnanie s tabuľkou verzií alebo dopyt u poskytovateľa.

Po aktualizácii sa musia reštartovať všetky procesy PHP, napríklad pomocou `systemctl restart php8.3-fpm` alebo pri mod_php reštartom Apache. Ako zabezpečiť, že už nebeží žiadny starý worker, nájdete na stránke [Reštart PHP-FPM a všetkých workerov](https://phpsos.de/sk/php2shell/php-fpm-neustart/).

## Prechodné opatrenia, ak aktualizácia ešte nejde

php.net zverejnil pre PHP2Shell prechodné opatrenia. Platia spoločne pre obe zraniteľnosti a výslovne nejde o úplnú ochranu. To, že sa viaceré z nich týkajú hraníc pamäte, zodpovedá spúšťaču out-of-memory pri CVE-2026-109618; oficiálne priradenie jednotlivých opatrení k jednotlivým CVE však neexistuje.

```ini
; Príklad pool FPM, napr. /etc/php/8.3/fpm/pool.d/www.conf (cesta sa líši podľa distribúcie)
php_admin_value[memory_limit] = -1
php_admin_value[post_max_size] = 8M          ; 32M, ak sú potrebné uploady
php_admin_value[upload_max_filesize] = 6M    ; immer unter post_max_size
php_admin_flag[session.upload_progress.enabled] = off
```

Hodnoty musia byť nastavené tak, aby ich aplikácie nemohli prepísať, preto `php_admin_value`. S `memory_limit=-1` potrebuje služba hranicu pamäte zvonka, cez kontajner alebo cgroup, nie cez `RLIMIT_AS` alebo `RLIMIT_DATA`. Na PHP 8.5 pribúda `fatal_error_backtraces=0`. Všetky podrobnosti nájdete na stránke [Okamžité opatrenia, ak ešte nemôžete záplatovať](https://phpsos.de/sk/php2shell/sofortmassnahmen-ohne-patch/).

> **Dôležité:**
> Ak nie je hneď možná ani aktualizácia, ani prechodné opatrenia, BSI odporúča dotknuté webové servery dočasne odpojiť od siete.

## Ako konkrétne pomáha PHP SOS?

Cez našu [službu záplatovania PHP](https://phpsos.de/sk/leistungen/php-patch-service/) uzatvárame CVE-2026-109618 štruktúrovane:

- **Zaznamenať aktuálny stav:** vetva PHP, spôsob prevádzky, zdroj balíkov a stav backportov na každom serveri.
- **Nasadiť aktualizáciu** z vhodného zdroja balíkov alebo, kde to nejde, čisto nastaviť prechodné opatrenia v konfigurácii poolu alebo servera.
- **Skontrolovať reštart:** overíme, že už nebežia žiadne staré procesy PHP.
- **Doklad:** Dostanete dokumentáciu s verziami a stavmi balíkov pred zásahom a po ňom, napríklad pre vedenie, poisťovateľa alebo ochranu údajov.


## Časté otázky

**Ako kritická je CVE-2026-109618?**  
Zraniteľnosť je hodnotená podľa CVSS v4.0 skóre 9,2, teda je kritická. Umožňuje spustenie škodlivého kódu na diaľku bez prihlásenia. BSI (nemecký Spolkový úrad pre informačnú bezpečnosť) k PHP2Shell vyhlásil výstražný stupeň 3 (oranžový).

**Stačí zvýšiť memory_limit?**  
Nie. php.net uvádza memory_limit=-1, nastavený pevne v konfigurácii servera, ako jedno z viacerých prechodných opatrení. Výslovne nejde o úplnú ochranu a vyžaduje hranicu pamäte cez kontajner alebo cgroup. Riešením zostáva aktualizácia.

**Aký identifikátor GHSA patrí k CVE-2026-109618?**  
V GitHub Security Advisory je zraniteľnosť vedená pod GHSA-w8hw-w9fx-j79w. Druhá zraniteľnosť PHP2Shell, CVE-2026-109619, má identifikátor GHSA-6wmf-4rv5-p3rp.

## Zdroje

- [php.net: bezpečnostné hlásenia](https://www.php.net/)
- [PHP 8 ChangeLog](https://www.php.net/ChangeLog-8.php)
- [BSI: Spolkový úrad pre informačnú bezpečnosť](https://www.bsi.bund.de/)
