Na kratko: Ali je vaš paket PHP v Debianu ali Ubuntuju popravljen proti PHP2Shell, prepoznate po natančnem stanju paketa, ne po različici PHP. Ubuntu je 21. oktobra 2026 objavil popravljene pakete za vse podprte izdaje, starejše prek Ubuntu Pro. Debian je popravil php8.2 v bookworm in php8.4 v trixie. Nameščeno stanje primerjajte z dpkg --compare-versions in nato znova zaženite vse storitve PHP.
Vprašanje za vprašanjem
„Je moj paket PHP popravljen?“ zveni kot vprašanje z da ali ne. V praksi je odgovor odvisen od treh stvari: Iz katerega vira prihaja paket, katero stanje je nameščeno in ali to stanje tudi teče? Ta prispevek odgovarja na prvi dve točki za uradne pakete Debiana in Ubuntuja. Kako različico in tekoče procese preverite na splošno, je opisano pod Pravilno preverjanje različice PHP in stanja popravkov.
Navedbe v uradnih varnostnih obvestilih Ubuntuja in v Debian Security Tracker smo poizvedli 25. oktobra 2026. Obe CVE, CVE-2026-109618 in CVE-2026-109619, sta tam navedeni z enakimi popravljenimi stanji.
Popravljena stanja paketov pri Ubuntuju
Ubuntu je popravke objavil z dvema obvestiloma. USN-8948-1 pokriva aktualne izdaje, USN-8948-2 starejše, ki varnostne posodobitve dobivajo samo še prek Ubuntu Pro. Pri 16.04 in 14.04 Ubuntu dodatno navaja ponudbo Legacy Support.
| Izdaja Ubuntuja | Izvorni paket | Popravljeno stanje |
|---|---|---|
| 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 |
Opazno je, da vsa stanja obdržijo prvotno različico PHP. Ubuntu 24.04 ostane pri 8.3.6, čeprav je bil popravek prevzet iz 8.3.36. Zakaj je tako in kako ravnati, pojasnjuje prispevek Zakaj php -v kaže isto številko. Prizadeti so med drugim binarni paketi za FPM, CLI, CGI in modul Apache, na primer php8.3-fpm in libapache2-mod-php8.3.
Popravljena stanja paketov pri Debianu
Debian gre tukaj drugo pot in dobavlja nove različice upstream. Po Security Tracker je stanje takšno:
| Izdaja Debiana | Izvorni paket | Prejšnje stanje | Popravljeno stanje | Obvestilo |
|---|---|---|---|---|
| 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 |
Obvestilo za bookworm je izšlo kot DLA, torej prek Debian LTS. Za php8.2 v unstable tracker ob poizvedbi še ne navaja popravljenega stanja. Kdor upravlja testne sisteme na unstable, naj to spremlja.
Starejše izdaje Debiana se v obeh vnosih CVE ob poizvedbi ne pojavljajo. Če strežnik še teče na taki izdaji, na primer Debian 11 s PHP 7.4, se ne morete zanesti na varnostno posodobitev iz uradnega arhiva. Potem ostanejo tri poti: operacijski sistem dvigniti na podprto izdajo, uporabiti komercialno ponudbo dolgoročne podpore, katere pokritost za PHP2Shell si pisno potrdite, ali strežnik do migracije zavarovati s prehodnimi ukrepi in omejiti njegovo dosegljivost. Dolgoročno je vzdržna samo prva pot.
Tako natančno primerjate nameščeno stanje
Pogled na številko različice ne zadošča, ker se različice Debiana razvrščajo po lastnih pravilih. dpkg --compare-versions primerja pravilno. Naslednji ukazi so zgolj za branje; imena paketov in ciljno stanje prilagodite svoji izdaji.
# Nameščeno stanje in izvor paketa
apt policy php8.3-fpm
# Vsi nameščeni paketi PHP z različico
dpkg-query -W -f='${Package}\t${Version}\n' 'php*' 'libapache2-mod-php*' 2>/dev/null
# Natančna primerjava s popravljenim stanjem (primer 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"
V izpisu apt policy bodite pozorni na vrstico z virom paketa. Če tam ne stoji varnostni arhiv vaše distribucije, ampak na primer packages.sury.org ali PPA, zgornje tabele ne veljajo. Potem šteje stanje tega vira tretjega ponudnika, ki ga obravnavamo v prispevku Repozitorij sury.org.
Dodatno se splača pogled v priloženi changelog. Kako tam najdete številke CVE in jih zabeležite kot dokazilo, opisuje prispevek Dokazovanje številk CVE v changelogu paketa.
Tipične pasti pri preverjanju
Preverjen samo en paket: PHP je sestavljen iz mnogih binarnih paketov. Če je php8.3-cli aktualen, php8.3-fpm pa ne, ostane spletna stran odprta. Preverite vse pakete ene veje, zlasti FPM, CGI in modul Apache.
Paket zadržan: Paketi, ki so bili z apt-mark hold zadržani, ob posodobitvi ostanejo na mestu. apt-mark showhold jih prikaže.
Ubuntu Pro ni aktiven: Na 20.04 in starejših popravki pridejo samo, če je Ubuntu Pro nastavljen. Brez Pro sistem kljub posodobitvi ostane ranljiv.
Zastarelo zrcalo: Če strežnik pakete jemlje prek notranjega zrcala ali proxyja, nove varnostne posodobitve vidi šele, ko je ta posodobljen. Ob dvomu preverite, ali apt update dejansko doseže varnostni vir.
Pozabljen ponovni zagon: Novi paketi delujejo šele po ponovnem zagonu vseh storitev, ki so naložile PHP. needrestart, če je nameščen, prikaže storitve s zastarelo kodo.
Popravljeno stanje paketa dokazuje samo, da je ranljivost odslej zaprta. Ali je bil strežnik prej napaden, ne odgovori. Loge od 20. oktobra varnostno shranite.
Kako konkretno pomaga PHP SOS?
- Za vsak strežnik ugotovimo izvor vseh paketov PHP in stanje primerjamo z uradnimi obvestili.
- Nameščamo posodobitve, tudi prek Ubuntu Pro, in znova zaženemo vse prizadete storitve.
- S storitvijo popravkov PHP prejmete za vsak strežnik dokazilo s stanjem paketa, zadetkom v changelogu in časom ponovnega zagona.
- Na sistemih z viri tretjih ponudnikov ali starimi različicami razjasnimo, katera pot vodi do dokazljivo popravljenega stanja.
Pogosta vprašanja
Katera različica Ubuntuja vsebuje popravek PHP2Shell?
Po USN-8948-1 so Ubuntu 22.04, 24.04, 26.04 in 26.10 oskrbljeni z rednimi posodobitvami. Za 14.04, 16.04, 18.04 in 20.04 Ubuntu popravke po USN-8948-2 dobavlja prek Ubuntu Pro.
Zakaj Ubuntu 24.04 še vedno kaže PHP 8.3.6?
Ubuntu varnostne popravke prevzema kot backport v obstoječo različico. Številka upstream ostane 8.3.6, spremeni se samo stanje paketa. Po USN-8948-1 je popravljeno stanje 8.3.6-0ubuntu0.24.04.13.
Ali je Debian 12 bookworm še oskrbljen?
Da. Po Debian Security Tracker obstaja za php8.2 v bookworm popravljeno stanje 8.2.35-1~deb12u1, napovedano kot DLA-4848-1 v okviru Debian LTS.
Ali to velja tudi za PHP iz repozitorija sury?
Ne. Paketi iz virov tretjih ponudnikov, kot je sury.org, imajo lastna stanja različic in lastne zapise changelog. Navedbe Debiana in Ubuntuja veljajo samo za njune uradne pakete.
Ali zadošča apt upgrade?
Namesti nove pakete, vendar tekoči procesi PHP-FPM ali Apache obdržijo staro kodo v pomnilniku. Popravek začne delovati šele po ponovnem zagonu vseh storitev, ki nalagajo PHP.