Īsi: PHP 8.1 ievainojamībai PHP2Shell oficiāla atjauninājuma nav. PHP projekts versijām 7.4, 8.0 un 8.1 piedāvā tikai minimālus pirmkoda backport labojumus, nevis gatavus izlaidumus. Kas darbina šīs versijas, tam vajadzīgs sniedzēja apstiprināts backport vai pagaidu pasākumi, un pāreja uz atbalstītu versiju jāplāno jau tagad.
Vai pret PHP 8.1 ievainojamību ir atjauninājums?
Ne no PHP projekta. 2026. gada 21. oktobrī oficiāli labojumi parādījās tikai atbalstītajiem atzariem: 8.5.12, 8.4.27, 8.3.36 un 8.2.35. PHP 8.1 un vecākas versijas oficiālus atjauninājumus vairs nesaņem.
Tās tomēr ir skartas. Saskaņā ar speciālistu presi ievainojamās versijas gandrīz nepārtraukti sniedzas līdz pat PHP 5.4. Kas publiski pieejamā vidē darbina kādu no šīm versijām, tam ir kritiska ievainojamība ar CVSS v4.0 9.2 bez gatava ielāpa.
Daudziem uzņēmumiem tas ir pārsteigums, jo šādas sistēmas bieži gadiem darbojas stabili un nemanāmi. Ka versija atjauninājumus vairs nesaņem, ikdienā nemana, līdz parādās ievainojamība, piemēram, PHP2Shell. Pirmkoda backport labojumi versijām 7.4, 8.0 un 8.1 ir izņēmums, nevis regulārās uzturēšanas atsākšana.
Ko nozīmē pirmkoda backport labojumi
Versijām 7.4, 8.0 un 8.1 ir minimāli pirmkoda backport labojumi. Tie ir labojumi pirmkodā, kas pārnesti uz šiem vecākajiem atzariem. Tas nav oficiāls izlaidums ar versijas numuru, testētu pakotni un changelog.
Praktiski tas nozīmē: kādam backport jāpārņem, no tā PHP jāuzbūvē no jauna, jātestē un jāizvieto. To var paveikt trīs ceļos:
- Jūsu distributīvs labojumu pārņem savās pakotnēs, piemēram, ilgtermiņa uzturēšanas ietvaros.
- Jūsu hostinga sniedzējs būvē savas PHP pakotnes un ievieš backport.
- Jūs paši vai pakalpojumu sniedzējs būvē PHP no pirmkoda. Tas ir prasīgi, un katras nākamās ievainojamības gadījumā jāatkārto.
Vai jūsu sistēma ir saņēmusi backport, pārbaudāt pakotnes changelog:
apt changelog php8.1-fpm | grep -i -E "CVE-2026-109618|CVE-2026-109619" # Debian/Ubuntu
rpm -q --changelog php-fpm | grep -i -E "CVE-2026-109618|CVE-2026-109619" # RHEL saime
Pakotņu nosaukumi atšķiras pa distributīviem un pakotņu avotiem. Ja ieraksta nav, jautājiet sniedzējam. Kā pārbaude darbojas sīkāk, rakstīts lapā PHP versijas un ielāpa stāvokļa pareiza pārbaude.
Veco serveri nodrošināt līdz migrācijai
Kamēr nedarbojas apstiprināts backport, spēkā ir php.net pagaidu pasākumi: nepārrakstāms memory_limit=-1 ar atmiņas ierobežojumu caur cgroup, post_max_size 8M vai 32M ar upload_max_filesize zemāk un session.upload_progress.enabled=0 servera konfigurācijā, pēc tam visu darbprocesu pārstartēšana. Tie nav pilnīga aizsardzība. Detaļas lapā Tūlītēji pasākumi, ja vēl nevarat ielāpot.
Klāt nāk pasākumi, kas samazina sasniedzamību: administratora sadaļas tikai caur VPN vai atļautām IP adresēm, nevajadzīgu vietņu izslēgšana, piekļuvju serverim stingra ierobežošana. BSI iesaka serverus bez atjauninājuma uz laiku atvienot no tīkla. Vecai, grūti migrējamai lietojumprogrammai norobežots risinājums var būt godīgāka atbilde nekā darbība atvērtā internetā.
Ja serveris ar PHP 8.1 vai vecāku kopš 17. oktobra bija neaizsargāts tīklā, uztveriet to nopietni: BSI rēķinājās ar ātru plašu ekspluatāciju. Saglabājiet žurnālus no 20. oktobra un ļaujiet serveri pārbaudīt uz pēdām, pirms migrējat.
Plānot migrāciju: uz kuru versiju?
Mērķis ir versija, ko PHP projekts atbalsta un ko jūsu lietojumprogramma panes. PHP 8.2 ievainojamību aizver no 8.2.35, taču atbalsts beidzas 31.12.2026. Kas migrē tagad, tam tāpēc, ja lietojumprogramma to atļauj, vajadzētu iet uz 8.3 vai jaunāku. Aktuālo stāvokli php.net min atbalstīto versiju lapā.
Kuru PHP versiju jūsu CMS vai veikals atbalsta, pārbaudiet pēc ražotāja sistēmas prasībām, piemēram, wordpress.org, shopware.com vai typo3.org. Bieži vispirms jāatjaunina pati lietojumprogramma, un tikai tad var mainīt PHP. Tipisks gadījums ir vecāki veikali, kurus aprakstām lapā Shopware 5. Fonu par novecojušu versiju sekām atradīsiet rakstā PHP End-of-Life: novecojušu versiju riski.
| Solis | Saturs |
|---|---|
| Esošais stāvoklis | PHP versija, lietojumprogramma, paplašinājumi, pašu pielāgojumi |
| Prasības | atbalstītās PHP versijas pēc ražotāja |
| Testa vide | kopija ar jauno PHP versiju, kļūdu žurnāla izvērtēšana |
| Pāreja | plānots apkopes logs, sagatavots atgriešanās ceļš |
| Pēcdarbi | pārbaudīt pārejas vērtības, iestatīt uzraudzību |
Kā PHP SOS palīdz konkrēti?
Ar PHP 8.1 un vecāku versiju migrāciju mēs jūs vedam no vecās versijas uz atbalstītu:
- Nekavējoties nodrošināt: pārbaudīt backport stāvokli, ieviest pagaidu pasākumus, samazināt sasniedzamību.
- Pārbaudīt pēdas: saglabāt žurnālus no 20. oktobra un izvērtēt, vai nav neparastu pazīmju.
- Sagatavot migrāciju: noskaidrot saderību pēc ražotāja, izveidot testa vidi, novērst kļūdas.
- Pārslēgt un apliecināt: instalēt jauno PHP versiju, pārstartēt visus procesus, dokumentēt stāvokli.
Biežāk uzdotie jautājumi
Vai PHP 8.1 ir skarta PHP2Shell?
Saskaņā ar speciālistu presi ir skartas gandrīz visas versijas līdz pat PHP 5.4, ieskaitot PHP 8.1. PHP projekts versijai 8.1 oficiālus atjauninājumus vairs nepublicē, tikai minimālus pirmkoda backport labojumus.
Kas ir pirmkoda backport?
Pirmkoda labojums, kas pārnests uz vecāku versiju atzaru. Tas nav gatavs izlaidums: kādam tas jāpārņem, jāuzbūvē PHP no jauna, jātestē un jāizvieto. To var uzņemties jūsu distributīva sniedzējs, jūsu hostinga sniedzējs vai pakalpojumu sniedzējs.
Vai pietiek pāriet uz PHP 8.2?
Īstermiņā PHP 8.2.35 ievainojamību aizver. Taču PHP 8.2 atbalsts beidzas 31.12.2026. Kas tāpat migrē, tam tāpēc jāpārbauda, vai lietojumprogramma saskaņā ar ražotāju atbalsta arī 8.3 vai jaunāku.
Mans veikals darbojas tikai ar PHP 7.4. Ko tagad?
Tad paralēli nepieciešami divi darbi: serveri nodrošināt ar pagaidu pasākumiem un norobežošanu un lietojumprogrammu novest līdz versijai, kas panes atbalstītu PHP versiju. Kura tā ir, norādīts ražotāja sistēmas prasībās.