Dabartinė padėtis: PHP2Shell. Du kritiniai PHP pažeidžiamumai (CVSS 9,2) leidžia vykdyti kenkėjišką kodą be prisijungimo. Pataisos nuo 2026-10-21.Ką dabar daryti →

Debian ir Ubuntu: ar mano PHP paketas pataisytas?

Kuriuos PHP paketus Debian ir Ubuntu ištaisė nuo PHP2Shell, kaip tiksliai palyginti įdiegtą būseną ir dėl ko strigia įrodymas.

Būsena 5 min. skaitymoHostingas ir distribucijos

Trumpai: Ar jūsų PHP paketas Debian ar Ubuntu pataisytas nuo PHP2Shell, atpažįstate pagal tikslią paketo būseną, o ne pagal PHP versiją. Ubuntu 2026 m. spalio 21 d. paskelbė ištaisytus paketus visiems palaikomiems leidimams, senesniems per Ubuntu Pro. Debian ištaisė php8.2 bookworm ir php8.4 trixie. Įdiegtą būseną palyginkite su dpkg --compare-versions ir po to iš naujo paleiskite visas PHP paslaugas.

Klausimas už klausimo

„Ar mano PHP paketas pataisytas?“ skamba kaip klausimas su atsakymu taip arba ne. Praktiškai atsakymas priklauso nuo trijų dalykų: iš kokio šaltinio paketas, kokia būsena įdiegta ir ar ta būsena iš tikrųjų veikia? Šis straipsnis atsako į pirmus du punktus oficialiems Debian ir Ubuntu paketams. Kaip apskritai patikrinti versiją ir veikiančius procesus, rasite skyrelyje Kaip teisingai patikrinti PHP versiją ir pataisų būseną.

Duomenis oficialiuose Ubuntu saugumo pranešimuose ir Debian Security Tracker peržiūrėjome 2026 m. spalio 25 d. Abi CVE, CVE-2026-109618 ir CVE-2026-109619, ten išvardytos su tomis pačiomis ištaisytomis būsenomis.

Ištaisytos paketų būsenos Ubuntu

Ubuntu taisymus paskelbė dviem pranešimais. USN-8948-1 apima aktualius leidimus, USN-8948-2 senesnius, kurie saugumo atnaujinimus gauna tik per Ubuntu Pro. Versijoms 16.04 ir 14.04 Ubuntu papildomai nurodo Legacy Support pasiūlymą.

Ubuntu leidimas Šaltinio paketas Ištaisyta būsena
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

Krinta į akis, kad visos būsenos išlaiko pradinę PHP versiją. Ubuntu 24.04 lieka ties 8.3.6, nors taisymas perimtas iš 8.3.36. Kodėl taip yra ir kaip su tuo elgtis, paaiškina straipsnis Kodėl php -v rodo tą patį numerį. Paveikti, be kita ko, dvejetainiai paketai FPM, CLI, CGI ir Apache moduliui, pavyzdžiui, php8.3-fpm ir libapache2-mod-php8.3.

Ištaisytos paketų būsenos Debian

Debian čia renkasi kitą kelią ir pateikia naujas upstream versijas. Pasak Security Tracker, būsena atrodo taip:

Debian leidimas Šaltinio paketas Ankstesnė būsena Ištaisyta būsena Pranešimas
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

Pranešimas bookworm pasirodė kaip DLA, t. y. per Debian LTS. Dėl php8.2 unstable Tracker peržiūros metu ištaisytos būsenos dar nenurodo. Kas eksploatuoja bandomąsias sistemas unstable, turėtų tai stebėti.

Senesni Debian leidimai abiejuose CVE įrašuose peržiūros metu nerodomi. Jei serveris dar veikia tokiame leidime, pavyzdžiui, Debian 11 su PHP 7.4, negalite pasikliauti oficialaus archyvo saugumo atnaujinimu. Tada lieka trys keliai: operacinę sistemą pakelti į palaikomą leidimą, naudoti komercinį ilgalaikės priežiūros pasiūlymą, kurio aprėptį PHP2Shell atžvilgiu paprašote patvirtinti raštu, arba iki migracijos serverį apsaugoti pereinamosiomis priemonėmis ir apriboti jo pasiekiamumą. Ilgalaikėje perspektyvoje tinkamas tik pirmasis kelias.

Kaip tiksliai palyginti įdiegtą būseną

Žvilgsnio į versijos numerį nepakanka, nes Debian versijos rūšiuojamos pagal savas taisykles. dpkg --compare-versions palygina teisingai. Toliau pateiktos komandos tik skaito; paketų pavadinimus ir tikslinę būseną pritaikykite savo leidimui.

# Įdiegta būsena ir paketo kilmė
apt policy php8.3-fpm

# Visi įdiegti PHP paketai su versija
dpkg-query -W -f='${Package}\t${Version}\n' 'php*' 'libapache2-mod-php*' 2>/dev/null

# Tikslus palyginimas su ištaisyta būsena (pavyzdys 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"

apt policy išvestyje atkreipkite dėmesį į eilutę su paketų šaltiniu. Jei ten nėra jūsų distribucijos saugumo archyvo, o, pavyzdžiui, packages.sury.org ar PPA, aukščiau pateiktos lentelės negalioja. Tada svarbi to trečiojo šaltinio būsena, kurią aptariame straipsnyje sury.org saugykla.

Papildomai verta pažvelgti į pridėtą pakeitimų žurnalą. Kaip ten rasti CVE numerius ir juos užfiksuoti kaip įrodymą, aprašo straipsnis CVE numerių įrodymas paketo pakeitimų žurnale.

Tipinės klaidos tikrinant

Patikrintas tik vienas paketas: PHP sudaro daug dvejetainių paketų. Jei php8.3-cli aktualus, o php8.3-fpm ne, svetainė lieka atvira. Tikrinkite visus šakos paketus, ypač FPM, CGI ir Apache modulį.

Paketas sulaikytas: paketai, sulaikyti per apt-mark hold, atnaujinant lieka vietoje. apt-mark showhold juos parodo.

Ubuntu Pro neaktyvuotas: 20.04 ir senesnėse versijose taisymai ateina tik tada, kai sukonfigūruotas Ubuntu Pro. Be Pro sistema nepaisant atnaujinimo vykdymo lieka pažeidžiama.

Pasenęs veidrodis: jei serveris paketus gauna per vidinį veidrodį ar tarpinį serverį (proxy), naujus saugumo atnaujinimus jis mato tik tada, kai šis atnaujintas. Abejojant patikrinkite, ar apt update iš tikrųjų pasiekia saugumo šaltinį.

Pamirštas paleidimas iš naujo: nauji paketai pradeda veikti tik iš naujo paleidus visas paslaugas, kurios yra įkėlusios PHP. needrestart, jei įdiegtas, parodo paslaugas su pasenusiu kodu.

Svarbu

Ištaisyta paketo būsena įrodo tik tai, kad spraga nuo dabar uždaryta. Ar serveris prieš tai buvo užpultas, ji neatsako. Išsaugokite žurnalus nuo spalio 20 d.

Kaip PHP SOS padeda konkrečiai?

  • Nustatome kiekvieno serverio visų PHP paketų kilmę ir lyginame būseną su oficialiais pranešimais.
  • Įdiegiame atnaujinimus, taip pat per Ubuntu Pro, ir iš naujo paleidžiame visas paveiktas paslaugas.
  • Su PHP pataisų paslauga gaunate kiekvienam serveriui įrodymą su paketo būsena, pakeitimų žurnalo atitikmeniu ir paleidimo iš naujo laiku.
  • Sistemose su trečiųjų šalių šaltiniais ar senomis versijomis išsiaiškiname, kuris kelias veda į įrodomai ištaisytą būseną.

Dažni klausimai

Kurioje Ubuntu versijoje yra PHP2Shell taisymas?

Pasak USN-8948-1, Ubuntu 22.04, 24.04, 26.04 ir 26.10 aprūpintos įprastais atnaujinimais. Versijoms 14.04, 16.04, 18.04 ir 20.04 Ubuntu taisymus pagal USN-8948-2 teikia per Ubuntu Pro.

Kodėl Ubuntu 24.04 ir toliau rodo PHP 8.3.6?

Ubuntu saugumo taisymus perima kaip atgalinį perkėlimą (backport) į esamą versiją. Upstream numeris lieka 8.3.6, keičiasi tik paketo būsena. Pasak USN-8948-1, ištaisyta būsena yra 8.3.6-0ubuntu0.24.04.13.

Ar Debian 12 bookworm dar prižiūrimas?

Taip. Pasak Debian Security Tracker, php8.2 bookworm yra ištaisyta būsena 8.2.35-1~deb12u1, paskelbta kaip DLA-4848-1 pagal Debian LTS.

Ar tai galioja ir PHP iš sury saugyklos?

Ne. Trečiųjų šalių šaltinių, tokių kaip sury.org, paketai turi savas versijų būsenas ir savus pakeitimų žurnalus. Debian ir Ubuntu duomenys galioja tik jų oficialiems paketams.

Ar pakanka apt upgrade?

Jis įdiegia naujus paketus, bet veikiantys PHP-FPM ar Apache procesai atmintyje išlaiko senąjį kodą. Pataisa pradeda veikti tik iš naujo paleidus visas paslaugas, kurios įkelia PHP.

Šaltiniai

Skubus kontaktas

Kiekviena valanda svarbi. Parašykite mums dabar.

Trumpai aprašykite sistemą, PHP versiją ir pastebėjimus. Mes atsakysime, išsiaiškinsime padėtį ir dirbsime nuotoliu, kol incidentas bus užbaigtas ir dokumentuotas.

Skubi pagalba