Skip to Content

PHP2Shell: kritinės PHP spragos — kaip jas užtaisyti dabar

BSI įspėja dėl CVE-2026-109618 ir CVE-2026-109619: paveiktos versijos, saugūs atnaujinimai ir patikros instrukcija
2026 m. spalio 21 d. pagal
PHP2Shell: kritinės PHP spragos — kaip jas užtaisyti dabar

2026 m. spalio 21 d. | PHP | IT saugumas

PHP2Shell: kritinė PHP saugumo spraga CVE-2026-109618 ir CVE-2026-109619, atnaujinkite PHP dabar

2026 m. spalio 21 d. PHP saugumo komanda paskelbė atnaujinimus visoms dar palaikomoms PHP versijoms. Jais uždaromos dvi kritinės spragos, žinomos kaip PHP2Shell. BSI dėl to paskelbė įspėjimą ir reikalauja nedelsiant užtaisyti paveiktas sistemas. Kas eksploatuoja žiniatinklio serverį su PHP, turėtų veikti jau šiandien. Tai taikoma ir visiems, kurie „tik“ eksploatuoja WordPress, Nextcloud ar Joomla, nes šios programos veikia su PHP.

Šiame straipsnyje apibendrinama, kas įvyko, kurios PHP versijos paveiktos, kokios versijos jums dabar reikia ir kaip per kelias minutes patikrinti, ar jūsų serveris apsaugotas.

Kas įvyko? Įvykių eiga

PHP saugumo komanda iš anksto paskelbė apie pataisų išleidimą, kad talpintojai ir administratoriai turėtų laiko pasiruošti. Pats išleidimas įvyko 2026 m. spalio 21 d. BSI tą pačią dieną paskelbė savo įspėjimą (1.1 versija).

Laiko juosta: išankstinis įspėjimas 2026-10-20, PHP pataisos 2026-10-21 14:00 UTC, BSI įspėjimas 2026-10-21

  • 2026 m. spalio 20 d.: PHP saugumo komandos išankstinis įspėjimas, kad kitą dieną pasirodys saugumo atnaujinimai.
  • 2026 m. spalio 21 d., 14:00 UTC (16:00 val. Vidurio Europos vasaros laiku): Išleidžiamos PHP 8.5, 8.4, 8.3 ir 8.2 pataisos.
  • 2026 m. spalio 21 d.: BSI įspėja dėl „kritinių spragų, grėsmingų žiniatinklio programoms visame pasaulyje“, ir rekomenduoja nedelsiant užtaisyti. Pasak BSI, dideli talpinimo paslaugų teikėjai dalį serverių atsargos tikslais išjungė iš tinklo.

Abi PHP spragos trumpai

Tai dvi atskiros PHP branduolio klaidos: CVE-2026-109618 ir CVE-2026-109619. Pasak PHP saugumo komandos, abi gali lemti, kad užpuolikas galės vykdyti programos kodą serveryje neprisijungęs (unauthenticated Remote Code Execution). Spragos įvertintos CVSS v4.0: 9,2 (kritinė).

PožymisReikšmė
IdentifikatoriaiCVE-2026-109618 ir CVE-2026-109619
VertinimasCVSS v4.0: 9,2 — kritinė
PoveikisKodo vykdymas serveryje (Remote Code Execution), be prisijungimo
1 priežastisSugadinta atmintis, kai apdorojimo metu PHP nebegauna operatyviosios atminties (Out-of-Memory)
2 priežastisPasenusi visuotinė būsena, likstanti atmintyje tarp užklausų
Ypač pavojingaApache su mod_php

BSI vertinimu, paskelbimo metu patvirtintų atakų nebuvo, tačiau buvo nepatvirtintų užuominų apie išnaudojimo bandymus. Esant kritinėms spragoms tokioje plačiai paplitusioje programinėje įrangoje, patirtis rodo, kad reikia tikėtis, jog užpuolikai analizuos pataisas ir ruoš automatizuotas atakas. Todėl laiko langas užtaisyti yra trumpas.

Kas paveikti?

Iš principo paveiktas kiekvienas serveris, kuriame veikia PHP, nepriklausomai nuo to, kaip PHP prijungtas: PHP-FPM, mod_php Apache, php-cgi, FrankenPHP ar LiteSpeed. Pasak PHP saugumo komandos, didžiausia rizika yra Apache su mod_php.

BSI aiškiai nurodo programas, kurios remiasi PHP ir todėl gali būti taip pat paveiktos:

  • Turinio valdymo sistemos: WordPress, Drupal, TYPO3, Joomla
  • Parduotuvių sistemos: Magento
  • Debesija ir failų saugykla: Nextcloud
  • Užkardų sąsajos: pfSense, OPNsense

Pati programa tam neturi būti su klaida. Spraga yra PHP, todėl vien WordPress, Nextcloud & Co. atnaujinimo nepakanka. Reikia atnaujinti serverio PHP versiją. Užkardų, tokių kaip pfSense ir OPNsense, atveju ištaisyta PHP versija ateina su atitinkamu gamintojo programinės aparatinės įrangos (firmware) atnaujinimu.

Šios PHP versijos yra saugios

Spragos ištaisytos šiose versijose. Viskas žemiau laikoma pažeidžiama.

Saugios PHP versijos po CVE-2026-109618 ir CVE-2026-109619: PHP 8.5.12, 8.4.27, 8.3.36 ir 8.2.35

PHP šakaBūtina bentPastaba
PHP 8.58.5.12dabartinė šaka
PHP 8.48.4.27
PHP 8.38.3.36
PHP 8.28.2.35Palaikymas baigiasi 2026 m. gruodžio 31 d.
PHP 8.1 ir senesnėsoficialaus atnaujinimo nėra, žr. apačioje

Kaip patikrinti ir atnaujinti savo serverį

1. Nustatyti įdiegtą PHP versiją

Serverio komandų eilutėje php -v parodo komandų eilutės PHP versiją. Žiniatinklio serveris gali naudoti kitą PHP versiją. Todėl patikrinkite ir PHP-FPM arba Apache modulio versiją, pavyzdžiui, su php-fpm8.3 -v arba per puslapį, kuris išveda phpinfo() (jį paskui iškart pašalinkite).

2. Atnaujinimą įdiegti per paketų valdymą

Debian, Ubuntu, RHEL ir giminingų sistemų atveju ištaisyta versija ateina per įprastą paketų valdymą, pavyzdžiui, apt update && apt upgrade arba dnf upgrade. Trečiųjų šalių šaltinių, tokių kaip Sury PPA ar Remi saugykla, atveju nauji paketai paprastai pasirodo greitai.

3. Iš naujo paleisti PHP tarnybą

Vien paketo atnaujinimo nepakanka: veikiantys PHP procesai atmintyje išlaiko seną kodą. Iš naujo paleiskite PHP-FPM (systemctl restart php8.3-fpm) arba Apache (systemctl restart apache2) ir po to patikrinkite, ar procesai buvo paleisti po atnaujinimo.

4. Talpinamos svetainės

Bendrinio talpinimo (shared hosting) atveju paprastai atnaujina paslaugos teikėjas. Kliento meniu dažniausiai galima nustatyti PHP versiją kiekvienai svetainei. Pasirinkite ten vieną iš aukščiau nurodytų saugių versijų arba paklauskite teikėjo apie pataisų būklę. Pasak BSI, kai kurie teikėjai atsargos tikslais atjungė serverius nuo tinklo. Jei jūsų svetainė trumpam nepasiekiama, tai gali būti priežastis.

PHP 8.1 ir senesnės: oficialaus atnaujinimo nėra

PHP 8.1 ir senesnėms versijoms oficialių saugumo atnaujinimų nebėra. Tokių sistemų eksploatuotojai turi dvi galimybes:

  • Pereiti prie palaikomos versijos (rekomenduojama). Kuo senesnė versija, tuo didesnės programos ir plėtinių pritaikymo pastangos, todėl perėjimą reikėtų iš anksto išbandyti.
  • Pataisas perkelti atgal (backport). PHP saugumo komanda pateikė pataisas vystymo šakose GitHub. Kas PHP kompiliuoja pats, gali šiuos pakeitimus perkelti į senesnes versijas. Tai pereinamasis sprendimas ir reikalauja specialiųjų žinių.

Ir PHP 8.2 palaikoma tik iki 2026 m. gruodžio 31 d. Todėl dabar suplanuokite perėjimą prie PHP 8.4 ar 8.5 ir neatidėliokite jo iki metų sandūros.

Pereinamosios priemonės ir klausimas „Išjungti serverį iš tinklo?“

Kartu su paskelbimu PHP saugumo komanda aprašė ir laikinąsias apsaugos priemones. Jos mažina riziką, tačiau spragų visiškai neuždaro. Jos nepakeičia atnaujinimo ir skirtos tik laikui iki atnaujinimo įveikti.

Ar serverį iki atnaujinimo reikėtų atjungti nuo tinklo, priklauso nuo jo svarbos ir pasiekiamumo. BSI nurodo, kad dideli teikėjai šį žingsnį žengė. Kaip nykščio taisyklė:

  • Viešai pasiekiamas serveris, atnaujinimas dabar įmanomas: užtaisyti nedelsiant, išjungti nereikia.
  • Viešai pasiekiamas serveris, atnaujinimas trumpuoju laikotarpiu neįmanomas: apriboti prieigą (pavyzdžiui, užkardoje tik žinomiems adresams) arba laikinai išjungti paslaugą, ypač mod_php atveju.
  • Tik viduje pasiekiamas serveris: užtaisyti netrukus, skubumas mažesnis.

Dažniausiai užduodami klausimai

Ar turiu atnaujinti WordPress, Joomla ar Nextcloud?

Ne dėl šios spragos. Ji yra PHP, o ne pačioje programoje. Atnaujinkite serveryje esančią PHP versiją. Programos atnaujinimas nepriklausomai nuo to vis tiek yra prasmingas.

Iš ko galiu suprasti, ar kas nors jau pasinaudojo šia spraga?

Patikimai tai nustatyti sunku. Įtartini požymiai: nežinomi PHP failai žiniatinklio kataloge, neįprasti procesai, vykdomi žiniatinklio serverio naudotojo teisėmis, nauji naudotojų paskyros ar cron užduotys ir neįprastas išeinantis duomenų srautas. Kilus konkrečiam įtarimui, sistemą reikėtų ištirti kriminalistiškai, o abejojant – iš naujo įdiegti.

Ar pakanka žiniatinklio programų ugniasienės (Web Application Firewall)?

Ugniasienė gali sustabdyti žinomus atakų šablonus, tačiau nepakeičia atnaujinimo. Daugiau apie kelių apsaugos sluoksnių sąveiką skaitykite mūsų straipsnyje Odoo 19 apsauga: ugniasienė, 2FA & Web RBL. Šie principai galioja bet kuriai žiniatinklio programai.

Ar tai paveikia Odoo?

Ne. Odoo parašyta Python kalba ir neveikia su PHP. Paveiktos galėtų būti tik PHP programos, veikiančios tame pačiame serveryje.

Kur rasti oficialią informaciją?

PHP saugumo komandos pranešimą rasite php.net naujienų archyvuose (2026 m. spalio 20 d. įrašas), versijas – adresu php.net/downloads. BSI įspėjimo numeris 2026-297981-1032, jis paskelbtas adresu bsi.bund.de .

Biricon IT Services palaikymas

Jei nesate tikri, kokia PHP versija veikia jūsų serveryje, arba jums reikia pagalbos diegiant pataisas, mielai padėsime: atliekant visų PHP sistemų inventorizaciją, diegiant atnaujinimus, pereinant prie palaikomos PHP versijos ir tikrinant, ar sistema nebuvo pažeista. Kaip IT paslaugų teikėjas prižiūrime serverius, ugniasienes ir žiniatinklio programas mažoms ir vidutinėms įmonėms.

Susisiekite dabar

Būklė: 2026 m. spalio 21 d. Padėtis gali greitai pasikeisti; lemiamą reikšmę turi PHP saugumo komandos ir BSI paskelbta informacija.