PHP ir atklātas divas kritiskas ievainojamības. Tās nodēvētas par PHP2Shell. Tās ļauj uzbrucējiem izpildīt savu kodu jūsu serverī. Parole tam nav nepieciešama.
Ievainojamības tika novērstas 2026. gada 21. oktobrī. Uzbrukumi jau notiek. Ja jūsu serverī darbojas vietne, kas izmanto PHP, atjauniniet PHP jau šodien. Zemāk ir vienkārša instrukcija, kuras izpilde aizņems 10–15 minūtes.
Kas notika?
PHP darbojas kā viesmīlis restorānā. Apmeklētājs (pārlūkprogramma) veic pasūtījumu. Viesmīlis (PHP) to aiznes uz virtuvi (serveri) un atnes rezultātu — vietnes lapu.
Tagad iedomājieties divas situācijas.
Pirmā ievainojamība (CVE-2026-109618). Viesmīlis nes pārāk smagu paplāti un pa ceļam to nomet. Pēc tam viņš savāc lauskas un kļūdas dēļ uzskata tās par veseliem traukiem. Līdzīgi darbojas PHP: kad tam beidzas atmiņa, tas atstāj datus nepabeigtā stāvoklī. Uzbrucējs var apzināti izraisīt šādu situāciju un ievietot savu kodu.
Otrā ievainojamība (CVE-2026-109619). Apmeklētājs ir aizgājis, bet uz galda palikušas viņa mantas. Viesmīlis tās nav novācis. Nākamais apmeklētājs apsēžas pie šī galda un var tās izmantot. Līdzīgi darbojas PHP: pēc viena pieprasījuma atmiņā paliek “sveši” dati. Nākamais pieprasījums var tos nolasīt vai izmantot uzbrukumam.
Abu ievainojamību bīstamības vērtējums ir 9,2 no 10. Tas ir ļoti augsts līmenis.
Kuru tas skar?
Visus, kuru serverī darbojas vietne vai pakalpojums, kas izmanto PHP. Piemēram:
WordPress, WooCommerce, Joomla, Drupal, OpenCart;
1C-Bitrix, Magento, Laravel;
phpMyAdmin, Nextcloud, forumi un pašizstrādātas vietnes;
vadības paneļi, piemēram, ISPmanager, cPanel, aaPanel un HestiaCP.
Ievainojamas ir visas PHP versijas no 5.4 līdz 8.5.11. Nav svarīgi, kā PHP ir pieslēgts tīmekļa serverim — izmantojot PHP-FPM, Apache (mod_php), LiteSpeed vai citādi. Vislielākais risks ir vietnēm, kurās tiek izmantots Apache ar mod_php.
Ja nezināt, vai izmantojat PHP, visticamāk, izmantojat gan. Aptuveni 70% interneta vietņu darbojas ar PHP.
Cik tas ir bīstami?
Ļoti. Lūk, kas jau ir zināms:
pirmie uzbrukumu mēģinājumi tika pamanīti 17. oktobrī — četras dienas pirms labojumu iznākšanas;
pēc 21. oktobra uzbrukumu mēģinājumu skaits vienas diennakts laikā pieauga no desmitiem tūkstošu līdz miljoniem;
uzbrukumos iesaistījās Mirai robottīkls. Tas ir inficētu ierīču tīkls, kas automātiski meklē ievainojamus serverus visā internetā.
Labā ziņa: pētnieki norāda, ka lielākā daļa publiski pieejamo ekspluatācijas rīku pagaidām nedarbojas ar standarta iestatījumiem. Taču tas nav iemesls gaidīt.
Iedomājieties, ka uzzināt — jūsu daudzdzīvokļu mājas ārdurvju slēdzene ir salauzta. Zagļi vēl nav ienākuši. Vai jūs gaidīsiet, līdz viņi ienāks? Šeit ir līdzīgi. Boti jau pārbauda katru serveri internetā. Jautājums ir tikai par to, kad pienāks jūsu servera kārta.
Noskaidrojiet PHP versiju
Pieslēdzieties serverim, izmantojot SSH, un izpildiet komandu:
php -vAtbildē būs redzama rinda, piemēram, PHP 8.3.30 (cli). Salīdziniet savu versiju ar tabulu.
| Jūsu PHP versija | Drošā versija |
|---|---|
| 8.5 | 8.5.12 un jaunāka |
| 8.4 | 8.4.27 un jaunāka |
| 8.3 | 8.3.36 un jaunāka |
| 8.2 | 8.2.35 un jaunāka |
| 8.1 un vecāka | Oficiāla labojuma nav — skatiet tālāk esošo sadaļu |
Svarīgi: serverī var būt vairākas PHP versijas. Komanda
php -vparāda tikai vienu no tām. Vietne var darboties ar citu versiju. Visas palaistās versijas varat apskatīt šādi:
systemctl list-units --type=service | grep phpJa pēc atjaunināšanas versijas numurs nav mainījies, tas ne vienmēr ir slikti. Ubuntu, Debian,
AlmaLinux un citas sistēmas bieži iekļauj labojumu vecākā versijā. Versijas numurs paliek nemainīgs, taču ievainojamība jau ir novērsta. To var pārbaudīt pakotnes izmaiņu žurnālā.
Ubuntu un Debian:
zgrep -E 'CVE-2026-10961[89]' /usr/share/doc/php*-common/changelog.Debian.gzAlmaLinux, Rocky Linux un CentOS Stream:
rpm -q --changelog php-common | grep -E 'CVE-2026-10961[89]'Ja komanda parāda rindas ar CVE numuriem, labojums ir instalēts. Ja rezultāts ir tukšs, pārejiet pie 2. darbības.
Atjauniniet PHP
Pirms atjaunināšanas izveidojiet vietnes un datubāzes rezerves kopiju. Ja kaut kas noies greizi, varēsiet ātri atjaunot iepriekšējo stāvokli.
Ubuntu un Debian
sudo apt update
sudo apt upgradePēc tam restartējiet PHP. 8.3 vietā norādiet savu versiju:
sudo systemctl restart php8.3-fpmJa vietne darbojas, izmantojot Apache, restartējiet arī to:
sudo systemctl restart apache2AlmaLinux, Rocky Linux un CentOS Stream
sudo dnf upgrade --refresh 'php*'
sudo systemctl restart php-fpm
sudo systemctl restart httpdVadības paneļi
cPanel. PHP versijas (ea-php pakotnes) tiek atjauninātas kopā ar sistēmu. Veiciet atjaunināšanu, izmantojot WHM, vai izpildiet komandu
sudo yum update.ISPmanager, aaPanel, HestiaCP un citi paneļi. Atjauniniet PHP paneļa sadaļā, kurā pārvalda PHP versijas, vai izmantojot sistēmas pakotnes, kā aprakstīts iepriekš.
Docker. Izveidojiet jaunu attēlu ar jaunāko PHP versiju un restartējiet konteineru.
Neaizmirstiet restartēt pakalpojumus
Šī ir visbiežāk pieļautā kļūda. Jaunā PHP versija ir instalēta, bet vecā joprojām darbojas atmiņā. Tas ir tāpat kā nopirkt jaunu slēdzeni, bet atstāt to kastē. Durvis joprojām aizsargā vecā slēdzene. Tāpēc pēc atjaunināšanas noteikti restartējiet PHP-FPM un tīmekļa serveri.
Pēc restartēšanas atveriet vietni un pārbaudiet, vai tā darbojas.
Pievienojiet pagaidu aizsardzību
Šo darbību ieteicams veikt visiem, arī pēc atjaunināšanas. Tā palīdz novērst vēl vienu ievainojamību, kurai pagaidām nav labojuma (par to lasiet tālāk).
Vispirms atrodiet PHP konfigurācijas failu. Vietnēm parasti tiek izmantots fails mapē fpm:
ls /etc/php/*/fpm/php.iniAlmaLinux un Rocky Linux sistēmās fails parasti atrodas šeit: /etc/php.ini.
Atveriet failu un pievienojiet beigās rindu:
session.upload_progress.enabled = 0Ja izmantojat PHP 8.5, pievienojiet vēl vienu rindu:
fatal_error_backtraces = 0
Saglabājiet failu un restartējiet PHP, kā aprakstīts 2. darbībā.
Kā tas ietekmēs vietni? Gandrīz nemaz. Pārstās darboties tikai progresa josla lielu failu augšupielādes laikā, ja tā ir izveidota, izmantojot PHP funkcionalitāti. Lielākajā daļā vietņu šādas joslas nav.
Tas neaizstāj atjaunināšanu. Pagaidu aizsardzība ir kā ķēde uz durvīm. Tā apgrūtina zagļa iekļūšanu, bet neaizstāj kārtīgu slēdzeni. Vispirms atjauniniet PHP un pēc tam pievienojiet šo iestatījumu.
Ja izmantojat PHP 8.1 vai vecāku versiju
PHP versijas 8.1, 8.0, 7.x un 5.x izstrādātāji vairs neatbalsta. Oficiāli labojumi šīm versijām nebūs pieejami. Internetā joprojām ir ļoti daudz šādu serveru — aptuveni 70% no visām PHP instalācijām.
Tas ir tāpat kā automašīna, kurai ražotājs vairs neražo rezerves daļas. Ar to vēl var braukt, taču katrs bojājums kļūst par problēmu.
Ko varat darīt:
Pārbaudiet savas sistēmas pakotnes. Dažas versijas tomēr ir saņēmušas labojumu. Piemēram, Ondřej Surý pakotnes Ubuntu un Debian sistēmām (
ppa:ondrej/php) un AlmaLinux pakotnes. Atjauniniet sistēmu, kā aprakstīts 2. darbībā, un pārbaudiet izmaiņu žurnālu no 1. darbības.Pārejiet uz jaunāku PHP versiju. Tas ir labākais ilgtermiņa risinājums. Tomēr veca vietne jaunajā PHP versijā var nedarboties. Pirms pārejas tā ir jāpārbauda.
Iegādājieties paplašināto atbalstu. Piemēram, TuxCare par maksu nodrošina labojumus vecākām PHP versijām.
Jebkurā gadījumā noteikti veiciet 3. darbību un pievienojiet pagaidu aizsardzību.
Ja jūsu serverī darbojas CentOS 7, PHP labojumi šai sistēmai vispār nebūs pieejami. Arī šī sistēma ir novecojusi. Ieteicams pārvietot vietni uz AlmaLinux vai Rocky Linux.
Vēl divas ziņas, par kurām raksta reti
Trešajai ievainojamībai vēl nav labojuma. 23. oktobrī PHP izstrādātāji paziņoja par vēl vienu kļūdu — CVE-2026-115560. Tā izpaužas tikai tad, ja vietnei ir reti sastopams konfigurācijas iestatījums. Steidzams atjauninājums nav plānots — labojums tiks iekļauts nākamajā plānotajā versijā. Aizsardzība ir tāda pati kā 3. darbībā. Ja jau esat pievienojis rindu session.upload_progress.enabled = 0, esat aizsargāts.
Jaunajās versijās atklātas citas kļūdas. Versijās 8.4.27 un 8.5.12 tika konstatētas divas ar atmiņu saistītas problēmas. Viena no tām radās tieši šajā atjauninājumā. Tas nav iemesls atgriezties pie vecākas versijas — tā ir daudz bīstamāka. Vienkārši sekojiet jaunumiem. Nākamais PHP atjauninājums, visticamāk, iznāks tuvāko nedēļu laikā, un tas arī būs jāinstalē.
Tātad ar vienu atjaunināšanu nepietiek. Servera drošībai ir jāseko līdzi pastāvīgi.
Pārbaudes saraksts
Noskaidroju PHP versiju, izmantojot komandu
php -vPārbaudīju, vai serverī nav citu PHP versiju
Izveidoju vietnes un datubāzes rezerves kopiju
Atjaunināju PHP uz drošu versiju
Restartēju PHP-FPM un tīmekļa serveri
Pievienoju
session.upload_progress.enabled = 0failāphp.iniPārbaudīju, vai vietne atveras un darbojas
Iestatīju atgādinājumu pārbaudīt nākamo PHP atjauninājumu
Nevēlaties visu darīt paši?
PHP atjaunināšana nav sarežģīta, ja esat to darījuši iepriekš. Taču mēdz būt arī citādi. Jūs atjaunināt PHP, bet vietnē parādās balts ekrāns. Vai arī vadības panelī ir trīs PHP versijas, un nav skaidrs, kuru mainīt. Vai arī vietne ir veca, un jūs baidāties to sabojāt.
Šādiem gadījumiem Zomro piedāvā divus risinājumus.
SOD: mēs visu izdarīsim jūsu vietā
Jūs rakstāt mums, un mūsu sistēmas administrators pats:
pārbaudīs, kuras PHP versijas ir instalētas serverī un kuru no tām izmanto vietne;
atjauninās PHP un restartēs pakalpojumus;
pievienos pagaidu aizsardzību;
pārbaudīs, vai vietne pēc atjaunināšanas darbojas.
Cena: €12,50 par katrām 15 darba minūtēm. Parasti PHP atjaunināšana neaizņem daudz laika.
Pasūtīt PHP atjaunināšanu
Premium: ātra palīdzība, kad tā nepieciešama
Parasta tehniskā pieprasījuma apstrāde var aizņemt līdz 10 stundām. Ja vietne pēc atjaunināšanas pārstāj darboties, šāda gaidīšana var izmaksāt pārāk dārgi. Ar Premium jūs saņemsiet speciālista atbildi 5–30 minūšu laikā.
Premium ir paredzēts tiem, kuri nevēlas zaudēt naudu vietnes dīkstāves dēļ. Jaunas ievainojamības, kļūdas pēc atjauninājumiem un citas tehniskas problēmas prasa ātru reakciju. Ar Premium varat paļauties uz speciālistu operatīvu palīdzību, lai ātrāk atjaunotu vietnes darbību un netērētu laiku risinājuma meklēšanai pašiem.


