# CVE-2026-109619: RCE cez zastaraný globálny stav

> CVE-2026-109619 zrozumiteľne: prečo je vnútorný stav medzi požiadavkami nebezpečný, ktoré verzie PHP sú opravené a ako sa zabezpečiť.

Zdroj: https://phpsos.de/sk/php2shell/cve-2026-109619/  
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-109619 je druhá zraniteľnosť za PHP2Shell. Vnútorný stav, ktorý patrí k požiadavke, môže po uvoľnení pamäte zostať zachovaný; neskoršia požiadavka v tom istom workerovi ho môže využiť, skôr než sa vynuluje. Následkom je spustenie kódu bez prihlásenia. Náprava: aktualizácia na PHP 8.5.12, 8.4.27, 8.3.36 alebo 8.2.35 a reštart všetkých workerov.

## Čo je CVE-2026-109619?

CVE-2026-109619 (identifikátor GitHub GHSA-6wmf-4rv5-p3rp) má podľa CVSS v4.0 skóre 9,2. Spolu s [CVE-2026-109618](https://phpsos.de/sk/php2shell/cve-2026-109618/) tvorí PHP2Shell. Obe zraniteľnosti sú v samotnom PHP, a nie v aplikácii.

Účinok je rovnaký ako pri sesterskej zraniteľnosti: útočník môže na diaľku, bez hesla a bez používateľského účtu, spúšťať kód na serveri. Príčina je však iná.

## Prečo je zastaraný stav vo workerovi nebezpečný

Webový server PHP nespúšťa pre každú požiadavku nový proces. Pri PHP-FPM, Apache s mod_php, LiteSpeed alebo FrankenPHP spracúva jeden worker postupne mnoho požiadaviek. Medzi dvoma požiadavkami PHP vynuluje svoj vnútorný stav, aby sa nič z požiadavky A nedostalo do požiadavky B.

Pri CVE-2026-109619 sa toto vynulovanie nepodarí úplne. Podľa php.net môže vnútorný stav patriaci k požiadavke po uvoľnení pamäte zostať zachovaný. Neskoršia požiadavka v tom istom workerovi môže tento zastaraný stav využiť, skôr než sa vynuluje. Zjednodušene: niečo sa používa ďalej, hoci to už vlastne nie je platné.

Z pohľadu prevádzky je to pozoruhodné. Opakované použitie workerov je zámerné, pretože robí webové servery rýchlymi: worker sa nemusí pre každú požiadavku nanovo spúšťať, načítavať rozšírenia a zakladať pamäť. Zraniteľnosť teda zasahuje vlastnosť, ktorú má prakticky každá produktívna inštalácia PHP. php.net neuvádza žiadnu konfiguráciu, ktorá by problém úplne vylúčila; preto vedie cesta cez aktualizáciu.

Podrobnosti o zneužití nezverejňujeme. Pre prevádzkovateľov platí: každý spôsob prevádzky, v ktorom workery obsluhujú viac požiadaviek, treba mať na očiach, a práve tie sú bežné.

## Obe zraniteľnosti PHP2Shell v porovnaní

| Znak | CVE-2026-109618 | CVE-2026-109619 |
|---|---|---|
| Identifikátor GitHub | GHSA-w8hw-w9fx-j79w | GHSA-6wmf-4rv5-p3rp |
| Hodnotenie | CVSS v4.0 9,2 | CVSS v4.0 9,2 |
| Spúšťač | Out-of-memory počas inicializácie údajov požiadavky | Vnútorný stav zostáva po uvoľnení zachovaný |
| Účinok | Spustenie kódu bez prihlásenia | Spustenie kódu bez prihlásenia |
| Opravené v | 8.5.12, 8.4.27, 8.3.36, 8.2.35 | 8.5.12, 8.4.27, 8.3.36, 8.2.35 |

Dotknuté sú PHP-FPM, Apache s mod_php, php-cgi, FrankenPHP a LiteSpeed. Najvyššie riziko vidí tím PHP pri mod_php; prečo, vysvetľujeme na stránke [Prečo nesie mod_php najvyššie riziko](https://phpsos.de/sk/php2shell/mod-php-risiko/).

## Uzavretie CVE-2026-109619: aktualizácia, potom reštart všetkých workerov

Práve pri tejto zraniteľnosti je reštart rozhodujúci. Kým bežia staré workery v pamäti, server pracuje ďalej s chybným kódom, aj keď nové súbory už dávno ležia na disku.

Skontrolujte verziu a stav balíka. Názvy balíkov sa líšia podľa distribúcie a rozhrania poskytovateľa hostingu:

```bash
php -v
php-fpm8.3 -v                  # binárka FPM môže mať inú verziu ako CLI
apt policy php8.3-fpm          # Debian/Ubuntu
dnf info php-fpm               # rodina RHEL
rpm -q --changelog php-fpm | grep -i "CVE-2026-109619"
```

Potom reštartujte všetky dotknuté služby:

```bash
sudo systemctl restart php8.3-fpm     # pre každú nainštalovanú verziu PHP
sudo systemctl restart apache2        # pri mod_php; v RHEL sa služba volá httpd
```

Ak vaša distribúcia alebo poskytovateľ hostingu nasadí backport, zobrazené číslo verzie môže zostať rovnaké. Potom rozhodujú changelog balíka a písomné potvrdenie poskytovateľa. Kontrolu krok za krokom nájdete na stránke [Reštart PHP-FPM a všetkých workerov](https://phpsos.de/sk/php2shell/php-fpm-neustart/).

> **Tip:**
> Zapíšte si dátum a čas reštartu. Pre neskoršie posúdenie, či k útoku došlo pred záplatou alebo po nej, je tento okamih najdôležitejším referenčným bodom.

## Čo zostáva urobiť po záplate

Záplata nedokazuje, že sa predtým nič nestalo. Podľa správ médií bol prvý pokus o útok pozorovaný 17. októbra, štyri dni pred záplatami. Uchovajte logy servera od 20. októbra, ako odporúča odborná tlač, a preverte server z hľadiska nápadností. Upozornenia k tomu poskytuje stránka [Som už kompromitovaný?](https://phpsos.de/sk/php2shell/bin-ich-gehackt-anzeichen/).

Myslite pritom na dosah: pri úspešnom spustení kódu má útočník práva procesu PHP. Môže čítať, čo smie čítať aplikácia, napríklad konfiguračné súbory s prístupmi k databáze alebo kľúčmi API. Ak sa incident potvrdí, tieto prístupové údaje sa majú po vyčistení obnoviť.

## Ako konkrétne pomáha PHP SOS?

S [službou záplatovania PHP](https://phpsos.de/sk/leistungen/php-patch-service/) zrealizujeme opravu dohľadateľne:

- **Zaznamenať:** Aké verzie PHP a spôsoby prevádzky bežia na ktorom serveri a ktorý zdroj balíkov ich dodáva?
- **Záplatovať:** Aktualizácia z správneho zdroja alebo prechodné opatrenia podľa php.net tam, kde aktualizácia ešte nie je možná.
- **Skontrolovať reštart:** Kontrolujeme proces za procesom, že beží už iba opravená verzia.
- **Zdokumentovať:** Verzie, stavy balíkov a časy reštartu, aby ste mohli stav doložiť.


## Časté otázky

**Čím sa líši CVE-2026-109619 od CVE-2026-109618?**  
CVE-2026-109618 vzniká, keď stav out-of-memory preruší požiadavku uprostred inicializácie. CVE-2026-109619 sa týka stavu, ktorý po skončení požiadavky zostane vo workerovi. Obe vedú k spusteniu kódu bez prihlásenia a sú opravené v rovnakých verziách PHP.

**Pomôže častejší reštart workerov PHP-FPM?**  
Ako náhrada aktualizácie sa nehodí. php.net častejšie reštarty workerov neuvádza ako prechodné opatrenie. Workerov však musíte reštartovať po aktualizácii, aby vôbec bežala opravená verzia.

**Chráni ma aktualizácia CMS pred CVE-2026-109619?**  
Nie. Zraniteľnosť je v PHP, a nie vo WordPresse, Shopware, TYPO3 či inom systéme. Uzavrie ju iba aktualizácia PHP alebo potvrdený backport poskytovateľa.

**Sú známe stopy útoku cez CVE-2026-109619?**  
Potvrdené Indicators of Compromise sa doteraz nezverejnili. Rozpoznanie je založené na analýze správania, napríklad nových súboroch PHP, nezvyčajných odchádzajúcich spojeniach alebo neznámych cronjoboch.

## 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/)
