Zkušenosti z praxe

PHP2Shell: kdo musí jednat nyní – prověřte NAS, Docker a veřejné služby

NAS, webová aplikace či kontejner: zvlášť prověřte PHP, veřejné přístupy a dosažitelné síťové cíle. Doporučení výrobců a sedm praktických úkolů.

Bezpečnost
Logo DAXS s webovou službou, vymezenou hranicí přístupu a oddělenými síťovými cíli

NAS pro vzdálený přístup, zveřejněný port kontejneru nebo brána kdysi otevřená jen dočasně: na podobné služby se snadno zapomene. U PHP2Shell rozhodují tři otázky: co je dostupné, které běhové prostředí zpracovává webové požadavky a kam dál se tato služba dostane?

První dva články této řady popisují bezpečnostní situaci kolem PHP a naši reakci a kontrolu inventáře s podporou AI. Zde se zaměřujeme na praktické prověření ve firmách i u soukromých provozovatelů NAS. Značka nenahradí inventář. Ani aktuální firmware nedokazuje, že byly aktualizovány všechny balíčky a spuštěné kontejnery.

PHP2Shell se týká skutečně používaného webového PHP

CVE-2026-109618 a CVE-2026-109619 mohou umožnit spuštění kódu ještě před přihlášením do aplikace; obě mají hodnocení CVSS v4.0 9,2. Projekt PHP vydal 21. října 2026 opravené verze 8.2.35, 8.3.36, 8.4.27 a 8.5.12. Dodavatelé mohou poskytovat vlastní balíčky se zpětně přenesenými opravami. Rozhodující je proto příslušné bezpečnostní oznámení, nikoli samotné číslo verze.

Přihlašovací stránka zde automaticky neznamená bezpečí. Je nutné zkontrolovat interpret, který skutečně zpracovává webové požadavky, včetně běžících procesů. Aktuální PHP v příkazovém řádku to samo nepotvrzuje. Totéž platí pro klasické webové servery i pro běhová prostředí zabalená do aplikací, zařízení a obrazů kontejnerů.

Veřejná dostupnost nekončí přesměrováním portu

Do inventáře patří IPv4 i IPv6, pravidla routeru, UPnP, názvy DDNS, cíle reverzní proxy, tunely a vzdálený přístup zprostředkovaný cloudem. U každého případu zjistěte skutečnou cestu přístupu: veřejná IP adresa ještě není zranitelná aplikace. Ani přenosová služba výrobce automaticky neznamená stejnou cestu útoku. Zapomenuté pravidlo však může zpřístupnit službu původně určenou jen pro interní síť.

Zahrňte weby, CMS, zákaznické portály, hostingové panely i rozhraní pro zálohování, monitoring a správu. Totéž se týká platforem NAS, VoIP, kamer, tiskáren a řídicích systémů. Zařízení bez příslušné komponenty PHP nejsou automaticky zasažena těmito dvěma CVE. Jejich veřejnou dostupnost má přesto smysl prověřit.

Dva příklady: webová služba s širokými oprávněními může dosáhnout na další interní cíle. Oddělená webová síť povoluje jen potřebné spojení s databází; správa a zálohy zůstávají oddělené.
Příklady síťových cest: rozhodují skutečně povolená spojení a oprávnění.

Synology: operační systém a balíčky posuzujte zvlášť

Synology omezuje dopad na určité balíčky závislé na PHP, například Web Station, WordPress, Calendar a MailStation. Oznámení z 22. října uvádí aktualizace balíčků PHP pro DSM 7.4, 7.3 a výslovně také DSM 7.2, přestože tato verze DSM již dosáhla konce podpory. U starších verzí DSM výrobce doporučuje dotčené balíčky dočasně vypnout.

PHP se aktualizuje přes Centrum balíčků; MailStation navíc vyžaduje ruční aktualizaci balíčku. Bezpečnostní oznámení neuvádí opravu pro balíček Synology PHP 7.3. PHP používané interně systémem DSM je podle výrobce vystaveno jinak a nemá moduly dostupné zvenčí. Pozor i na názvy: balíček třetí strany IDrive není Synology Drive; Synology Drive je v oznámení uveden jako nezasažený.

U neoficiálních instalací DSM přes XPEnology je třeba jednotlivě posoudit zařízení, zavaděč, DSM a balíčky. Nejde o standardně podporovaný celek Synology. Neznamená to, že aktualizace nejsou nikdy možné nebo že je každá taková instalace zranitelná. Nejistá možnost údržby je však důvodem omezit přímý přístup z internetu a naplánovat spolehlivě udržovatelný provoz.

QNAP: ověřte mezitím změněný stav

Oznámení QNAP QSA-26-18 od aktualizace z 24. října uvádí opravy pro několik větví QTS, QuTS hero a QuTScloud. Další uvedené aplikace mají stále stav „Fixing“. Situaci tedy nevystihuje ani „QNAP ještě nemá opravu“, ani „všechno je vyřešeno“. Rozhoduje konkrétní produkt, jeho větev a odpovídající opravené vydání. PHP v aplikacích třetích stran nebo vlastních kontejnerech aktualizace systému QNAP automaticky neopraví.

U kontejnerů odpovězte na dvě různé otázky

Za prvé: je opraveno běhové prostředí ve spuštěném kontejneru? Aktualizovaný hostitel nenahradí starý obraz. Základní obraz, doplněné balíčky a skutečně běžící nasazení musí odpovídat. Nový obraz v lokálním úložišti pomůže teprve tehdy, když je služba z opraveného obrazu znovu nasazena a projde funkční kontrolou.

Za druhé: jaká oprávnění a síťové cesty má služba k dispozici? Sítě Docker bridge běžně umožňují odchozí spojení; kontejnery ve stejné síti bridge spolu mohou komunikovat. Dostupnost interních cílů závisí mimo jiné na směrování a firewallu. Napadený kontejner proto automaticky neovládne celou LAN. Sdílené přihlašovací údaje, zbytečně připojené adresáře hostitele, zvýšená oprávnění či připojený Docker socket však mohou následky výrazně rozšířit. Oddělené sítě, cílená pravidla odchozího provozu a minimální oprávnění je nutné konkrétně ověřit.

Rozhodovací postup: zjistit dotčenou komponentu. Je-li aktualizace k dispozici, nainstalovat ji a ověřit běžící službu. Jinak omezit veřejný přístup a zdokumentovat dočasné opatření. Obě cesty vedou ke kontrole účinnosti a dalšímu sledování.
Omezení přístupu nenahrazuje opravu. Účinnost obou opatření je nutné ověřit.

Sedm kontrol pro další pracovní kolo

  1. Zmapovat přístupy: zdokumentovat zařízení, aplikace, zveřejněné porty a zprostředkující služby i odpovědné osoby. Zahrnout IPv6 a zapomenutá dočasná pravidla.
  2. Přiřadit běhová prostředí: pro každou službu zaznamenat systém, balíčky, pluginy a webové PHP. Ověřit oznámení výrobce a stav podpory.
  3. Opravit a ověřit: nasadit vhodné aktualizace nebo nové obrazy, řádně restartovat dotčené služby a zkontrolovat skutečně aktivní verzi.
  4. Omezit vystavení: uzavřít nepotřebné veřejné přístupy ke správě. VPN nebo důvěryhodná správcovská síť mohou přístup omezit; i za nimi jsou aktualizace nutné.
  5. Otestovat cesty a práva: omezit přístup k databázím, NAS, zálohám a správě na potřebný rozsah. Pravidla měnit s ohledem na provoz a následně ověřit legitimní aplikace.
  6. Prověřit stopy a obnovu: vyhodnotit neobvyklé přístupy, účty a odchozí spojení. Udržovat nezávislé zálohy chráněné před neoprávněnými změnami a otestovanou obnovu; samotné snapshoty nestačí.
  7. Sledovat výjimky: u systémů bez opravy zaznamenat odpovědnost, dočasné opatření a plán náhrady či odstavení.
Sedm úkolů: zmapovat přístupy, určit běhová prostředí, ověřit aktualizace, omezit dostupnost, otestovat síťová práva, prověřit stopy a obnovu a sledovat výjimky.
Každý úkol potřebuje odpovědnou osobu, provedení a kontrolu.

Oprava automaticky neuzavírá prověření incidentu

Sophos odkazuje na pokus o zneužití zaznamenaný Amazon Threat Intelligence již 17. října, tedy před veřejným oznámením. U skutečně vystavených systémů proto do hodnocení patří i dřívější aktivita. Úspěšná aktualizace nedokazuje, že před ní nedošlo k neoprávněnému přístupu. Při podezřelých známkách je nutné řízené řešení incidentu s vhodným zajištěním stop a kontrolovanou obnovou.

PHP navíc od 23. října upozorňuje na další vzácný případ závislý na konfiguraci sledování průběhu nahrávání v relaci. Aktuální doporučení výrobců proto zůstávají důležitá i po první aktualizaci. Plošné změny konfigurace bez znalosti provozních dopadů nejsou vhodnou zkratkou.

Co nemusí být veřejně dostupné, nemělo by být do prověření přístupné z internetu. Tím se zmenší plocha útoku, opravu to však nenahradí. DAXS pomáhá přiřadit služby, stanovit priority a průkazně ověřit účinnost opatření. Proberte s námi své konkrétní prostředí.

Zdroje: PHP: bezpečnostní oznámení a opravené verze · ENISA: inventář aplikací a omezení dostupnosti · Synology: balíčky a verze DSM · Synology-SA-26:14 · QNAP QSA-26-18: stav oprav jednotlivých produktů · Docker: vlastnosti sítí bridge · Sophos: dostupnost, aktivita a prověření incidentů · NCSC-NL: přehled závislostí na PHP · Red Hat: běhová prostředí a zpětně přenesené opravy.