Stručně: Zda je váš balíček PHP v Debianu nebo Ubuntu proti PHP2Shell záplatován, poznáte podle přesného stavu balíčku, ne podle verze PHP. Ubuntu zveřejnilo 21. října 2026 opravené balíčky pro všechna podporovaná vydání, starší přes Ubuntu Pro. Debian opravil php8.2 v bookworm a php8.4 v trixie. Porovnejte nainstalovaný stav pomocí dpkg --compare-versions a poté restartujte všechny služby PHP.
Otázka za otázkou
„Je můj balíček PHP záplatován?“ zní jako otázka ano či ne. V praxi odpověď závisí na třech věcech: Z jakého zdroje balíček pochází, jaký stav je nainstalován a běží tento stav skutečně? Tento článek odpovídá na první dva body pro oficiální balíčky Debianu a Ubuntu. Jak obecně ověřit verzi a běžící procesy, stojí na stránce Správná kontrola verze PHP a stavu záplat.
Údaje v oficiálních bezpečnostních oznámeních Ubuntu a v Debian Security Tracker jsme vyhledali 25. října 2026. Obě CVE, CVE-2026-109618 a CVE-2026-109619, jsou tam uvedeny se stejnými opravenými stavy.
Opravené stavy balíčků u Ubuntu
Ubuntu zveřejnilo opravy ve dvou oznámeních. USN-8948-1 pokrývá aktuální vydání, USN-8948-2 starší, která dostávají bezpečnostní aktualizace už jen přes Ubuntu Pro. U 16.04 a 14.04 Ubuntu navíc uvádí nabídku Legacy Support.
| Vydání Ubuntu | Zdrojový balíček | Opravený stav |
|---|---|---|
| 26.10 | php8.5 | 8.5.9-0ubuntu2.1 |
| 26.04 LTS | php8.5 | 8.5.4-0ubuntu1.5 |
| 24.04 LTS | php8.3 | 8.3.6-0ubuntu0.24.04.13 |
| 22.04 LTS | php8.1 | 8.1.2-1ubuntu2.28 |
| 20.04 LTS (Ubuntu Pro) | php7.4 | 7.4.3-4ubuntu2.29+esm5 |
| 18.04 LTS (Ubuntu Pro) | php7.2 | 7.2.24-0ubuntu0.18.04.17+esm14 |
Nápadné je, že všechny stavy si ponechávají původní verzi PHP. Ubuntu 24.04 zůstává na 8.3.6, přestože byla oprava převzata z 8.3.36. Proč tomu tak je a jak s tím naložit, vysvětluje článek Proč php -v ukazuje stejné číslo. Postiženy jsou mimo jiné vždy binární balíčky pro FPM, CLI, CGI a modul Apache, například php8.3-fpm a libapache2-mod-php8.3.
Opravené stavy balíčků u Debianu
Debian jde jinou cestou a dodává nové verze upstreamu. Podle Security Tracker vypadá stav takto:
| Vydání Debianu | Zdrojový balíček | Předchozí stav | Opravený stav | Oznámení |
|---|---|---|---|---|
| 12 bookworm | php8.2 | 8.2.32-1~deb12u1 | 8.2.35-1~deb12u1 | DLA-4848-1 |
| 13 trixie | php8.4 | 8.4.24-1~deb13u1 | 8.4.27-1~deb13u1 | DSA-6574-1 |
| forky, sid | php8.4 | 8.4.27-1 |
Oznámení pro bookworm vyšlo jako DLA, tedy přes Debian LTS. Pro php8.2 v unstable tracker při vyhledání dosud žádný opravený stav neuvádí. Kdo provozuje testovací systémy na unstable, měl by to sledovat.
Starší vydání Debianu se v obou záznamech CVE při vyhledání neobjevují. Pokud na takovém vydání ještě běží server, například Debian 11 s PHP 7.4, nemůžete se spolehnout na bezpečnostní aktualizaci z oficiálního archivu. Pak zbývají tři cesty: povýšit operační systém na podporované vydání, využít komerční nabídku dlouhodobé podpory, jejíž pokrytí PHP2Shell si nechte písemně potvrdit, nebo server do migrace zajistit přechodnými opatřeními a omezit jeho dostupnost. Dlouhodobě je udržitelná jen první cesta.
Jak přesně porovnat nainstalovaný stav
Pohled na číslo verze nestačí, protože verze Debianu se řadí podle vlastních pravidel. dpkg --compare-versions porovnává správně. Následující příkazy jen čtou; názvy balíčků a cílový stav přizpůsobte svému vydání.
# Nainstalovaný stav a původ balíčku
apt policy php8.3-fpm
# Všechny nainstalované balíčky PHP s verzí
dpkg-query -W -f='${Package}\t${Version}\n' 'php*' 'libapache2-mod-php*' 2>/dev/null
# Přesné porovnání s opraveným stavem (příklad Ubuntu 24.04)
v=$(dpkg-query -W -f='${Version}' php8.3-fpm)
dpkg --compare-versions "$v" ge 8.3.6-0ubuntu0.24.04.13 && echo "korrigiert: $v" || echo "PRÜFEN: $v"
Ve výstupu apt policy dávejte pozor na řádek se zdrojem balíčku. Pokud tam není bezpečnostní archiv vaší distribuce, ale například packages.sury.org nebo PPA, tabulky výše neplatí. Pak rozhoduje stav tohoto cizího zdroje, kterému se věnuje článek Repozitář sury.org.
Navíc se vyplatí pohled do dodaného changelogu. Jak v něm najít čísla CVE a zaznamenat je jako doklad, popisuje článek Doložení čísel CVE v changelogu balíčku.
Typická úskalí při kontrole
Zkontrolován jen jeden balíček: PHP se skládá z mnoha binárních balíčků. Pokud je php8.3-cli aktuální, ale php8.3-fpm ne, zůstává web otevřený. Zkontrolujte všechny balíčky větve, zvláště FPM, CGI a modul Apache.
Balíček podržen: Balíčky zafixované pomocí apt-mark hold při aktualizaci zůstanou stát. apt-mark showhold je zobrazí.
Ubuntu Pro není aktivní: Na 20.04 a starších přicházejí opravy jen tehdy, je-li Ubuntu Pro zřízeno. Bez Pro zůstává systém navzdory běhu aktualizací zranitelný.
Zastaralé zrcadlo: Pokud server získává balíčky přes interní zrcadlo nebo proxy, uvidí nové bezpečnostní aktualizace teprve po jeho aktualizaci. V případě pochybností ověřte, zda apt update bezpečnostní zdroj skutečně dosáhne.
Zapomenutý restart: Nové balíčky působí teprve po restartu všech služeb, které PHP načetly. needrestart, je-li nainstalován, ukáže služby se zastaralým kódem.
Opravený stav balíčku dokládá jen to, že je zranitelnost od nynějška uzavřena. Zda byl server předtím napaden, nevysvětlí. Zajistěte logy od 20. října.
Jak konkrétně pomáhá PHP SOS?
- U každého serveru zjišťujeme původ všech balíčků PHP a porovnáváme stav s oficiálními oznámeními.
- Nasazujeme aktualizace, i přes Ubuntu Pro, a restartujeme všechny dotčené služby.
- Prostřednictvím služby záplatování PHP dostanete pro každý server doklad se stavem balíčku, nálezem v changelogu a časem restartu.
- Na systémech s cizími zdroji nebo starými verzemi vyjasňujeme, která cesta vede k doložitelně opravenému stavu.
Časté dotazy
Které vydání Ubuntu obsahuje opravu PHP2Shell?
Podle USN-8948-1 jsou Ubuntu 22.04, 24.04, 26.04 a 26.10 zásobeny pravidelnými aktualizacemi. Pro 14.04, 16.04, 18.04 a 20.04 dodává Ubuntu opravy podle USN-8948-2 přes Ubuntu Pro.
Proč Ubuntu 24.04 stále zobrazuje PHP 8.3.6?
Ubuntu přebírá bezpečnostní opravy jako backport do stávající verze. Číslo upstreamu zůstává 8.3.6, mění se jen stav balíčku. Podle USN-8948-1 je opravený stav 8.3.6-0ubuntu0.24.04.13.
Je Debian 12 bookworm stále zásobován?
Ano. Podle Debian Security Tracker existuje pro php8.2 v bookworm opravený stav 8.2.35-1~deb12u1, oznámený jako DLA-4848-1 v rámci Debian LTS.
Platí to i pro PHP z repozitáře sury?
Ne. Balíčky z cizích zdrojů, jako je sury.org, mají vlastní stavy verzí a vlastní changelogy. Údaje Debianu a Ubuntu platí jen pro jejich oficiální balíčky.
Stačí apt upgrade?
Nainstaluje nové balíčky, ale běžící procesy PHP-FPM nebo Apache si ponechají starý kód v paměti. Záplata začne působit teprve po restartu všech služeb, které PHP načítají.