PHP2Shell е името, което изследователите, открили уязвимостите, дадоха на две критични грешки в самия PHP, CVE-2026-109618 и CVE-2026-109619. Екипът на PHP ги поправи на 21 октомври 2026 във версиите 8.5.12, 8.4.27, 8.3.36 и 8.2.35. И двете могат да позволят на нападател да изпълни свой код на сървъра, без да влиза в сайта. Всеки WordPress сайт и всеки магазин с WooCommerce работи на PHP, затова всеки от тях е засегнат, докато сървърът не получи поправката.
По-долу ще намерите коя версия на PHP е безопасна, как да проверите сайта и какво точно да попитате хостинга. Какво беше обявено преди обновлението и докога се поддържа всяка версия, описахме в новината от 21 октомври.
Какво е PHP2Shell
Двете уязвимости са в ядрото на PHP, под WordPress, темата и плъгините. Първата се задейства, когато PHP остане без памет по средата на заявка и после приеме недовършени вътрешни данни за валидни. При втората данни от една заявка остават в процеса и следващата заявка към него може да ги използва.
Екипът на PHP оценява и двете с 9.2 по CVSS v4.0, а NVD им дава 9.8 по по-старата версия 3.1 на скалата. Застрашени са всички инсталации, които обслужват уеб заявки, включително PHP-FPM, Apache с mod_php, php-cgi, FrankenPHP и LiteSpeed. Най-голям е рискът при mod_php. Там е демонстрирана атака, която се задейства от заявка без вход, преди да се е изпълнил какъвто и да е код на приложението. За WordPress това означава, че плъгин за сигурност не може да я спре, защото самият WordPress още не е заредил.
Към 22 октомври php.net, NVD и CISA не съобщават за потвърдени атаки. Описанията на уязвимостите и промените в кода обаче вече са публични, така че не чакайте първите атаки, за да обновите.
Засегнат ли е Вашият сайт?
Засегнати са всички версии преди поправените.
| Клон на PHP | Поправена версия | Последна версия без поправката |
|---|---|---|
| 8.5 | 8.5.12 | 8.5.11 |
| 8.4 | 8.4.27 | 8.4.26 |
| 8.3 | 8.3.36 | 8.3.35 |
| 8.2 | 8.2.35 | 8.2.34 |
| 8.1 и по-стари | няма | без поддръжка от екипа на PHP |
Поправките влизат и в PHP 8.6.0 RC4, но това е тестова версия и не е за работещи сайтове.
Самият номер обаче не казва всичко. Дистрибуциите на Linux често вграждат поправките в своите пакети и оставят стария номер на версията. CloudLinux пък дава поправки за сигурност и за стари версии на ea-php, които cPanel вече не поддържа. Затова сайт, който по номер изглежда уязвим, може вече да е защитен. Със сигурност това знае само хостингът.
Проверете сайта с безплатната ни проверка
На страницата за проверка на версията на PHP въведете адреса на сайта. Проверката изпраща една обикновена заявка, каквато прави всеки браузър, и чете версията на PHP, която сървърът сам съобщава в заглавката X-Powered-By. Тя не атакува сайта и не изпробва уязвимостта. Резултатът е един от следните пет.
- Версията е засегната. Номерът е по-стар от поправения за своя клон. Попитайте хостинга дали пакетът вече съдържа поправката, защото може да е вградена без смяна на номера.
- Версията съдържа поправката. Номерът е равен на поправения за своя клон или е по-нов.
- Версията вече не получава поправки. Сайтът работи на 8.1 или по-стара версия, за която екипът на PHP не пуска поправки.
- Версията е скрита. Сървърът не съобщава версията, а много сървъри са настроени точно така. Тогава проверката не може да Ви каже повече, затова вижте версията в WordPress или в cPanel.
- Номерът не стига за отговор. Сървърът обявява версия от клон, за който номерът не показва дали поправката е приложена, например тестовата 8.6. Тогава попитайте хостинга.
Как да видите версията в WordPress и cPanel
Ако проверката покаже скрита версия или искате да потвърдите резултата, отворете в админа на WordPress Tools > Site Health, раздела Info и секцията Server. На български пътят е „Инструменти“, „Състояние на сайта“, „Информация“ и „Сървър“. На реда „Версия на PHP“ е пълният номер, например 8.4.27.
В cPanel избраният клон се вижда в MultiPHP Manager или в Select PHP Version, според сървъра. Там обикновено пише само клонът, например 8.4, затова за пълния номер се доверете на Site Health. Подробно за двете места и за смяната на версията има в ръководството за версията на PHP.
Как да получите поправката
На споделен хостинг не можете да обновите PHP самостоятелно. Пишете на хостинга и попитайте конкретно дали на сървъра Ви са инсталирани поправените пакети на PHP за CVE-2026-109618 и CVE-2026-109619. На сървъри с cPanel това са пакетите ea-php на EasyApache 4, а на сървъри с CloudLinux и пакетите alt-php. Когато питате по номерата на CVE, хостингът може да Ви отговори точно, дори пакетът му да носи стария номер на версията.
Ако сайтът е на собствен сървър или VPS, онзи, който го поддържа, трябва да инсталира обновените пакети от дистрибуцията и да рестартира PHP-FPM или Apache, за да заработи новата версия. Дистрибуциите са получили поправките предварително, затова проверете пакетите още днес.
Ако сайтът е на 8.1 или по-стара версия, преминете на 8.3 или 8.4. Екипът на PHP публикува минимални поправки в изходния код за 7.4, 8.0 и 8.1, но те са за хора, които сами компилират PHP, и не се избират в cPanel. Преди смяната направете бекъп по ръководството за бекъп, а след нея минете през формите, количката и поръчката.
Ако администрирате сървър и не можете да обновите веднага, php.net изброява временни настройки като memory_limit=-1, зададен от администратора, нисък post_max_size, session.upload_progress.enabled=0 в php.ini и на PHP 8.5 fatal_error_backtraces=0. Те затварят само отделни пътища за атака и не заместват обновлението. Това е работа на хостинга и в WordPress няма какво да промените.
Какво да направите
- Проверете сайта на страницата за проверка на PHP или вижте версията в Site Health.
- Сравнете номера с таблицата по-горе.
- Ако номерът е по-стар от поправения, пишете на хостинга и попитайте за поправката по номерата на CVE.
- Ако сайтът е на 8.1 или по-стара версия, направете бекъп и планирайте преминаване на 8.3 или 8.4.
- Когато хостингът потвърди, проверете отново.
Какво правим ние
При поддръжката на WordPress обновяваме PHP на сървъра, когато поддържаме и него, а смяната на версията на сайта правим с бекъп и първо я пробваме в staging. На споделен хостинг самите пакети на PHP се обновяват от хостинга. Ако забележите в сайта непознати администратори или файлове, следвайте ръководството за хакнат сайт или вижте спешната помощ.
Често задавани въпроси
Какво е PHP2Shell?
PHP2Shell е името, което откривателите дадоха на две критични уязвимости в самия PHP, CVE-2026-109618 и CVE-2026-109619. И двете могат да позволят на нападател да изпълни собствен код на сървъра, без да влиза в сайта. Екипът на PHP ги оценява с 9.2 по CVSS v4.0, а NVD им дава и 9.8 по по-старата версия 3.1.
Кои версии на PHP поправят PHP2Shell?
PHP 8.5.12, 8.4.27, 8.3.36 и 8.2.35, пуснати от екипа на PHP на 21 октомври 2026 г. Всички по-стари версии в тези клонове са засегнати. За PHP 8.1 и по-старите клонове поправена версия няма, защото екипът на PHP вече не ги поддържа.
Засегнат ли е всеки сайт с WordPress от PHP2Shell?
Всеки сайт с WordPress и всеки магазин с WooCommerce работи на PHP, така че е изложен, докато сървърът му не получи поправката. Рискът засяга всяка инсталация, която обслужва уеб заявки, включително PHP-FPM, Apache с mod_php, php-cgi, FrankenPHP и LiteSpeed. Най-голям е при mod_php, където е показана атака, която се задейства, преди да се изпълни какъвто и да е код на приложението.
Може ли плъгин за сигурност да спре PHP2Shell?
Не. При mod_php атаката се задейства от заявка без вход, преди да се изпълни какъвто и да е код на приложението, тоест преди WordPress изобщо да се е заредил. Затова плъгин за сигурност в WordPress не може да я спре и единствената истинска защита е обновеният PHP.
Защо сайтът ми изглежда уязвим по номера на PHP, а хостингът казва, че не е?
Дистрибуциите на Linux често вграждат поправките в своите пакети и запазват стария номер на версията. CloudLinux също доставя кръпки за сигурност за по-стари версии на ea-php, които cPanel вече не поддържа. Така сайт, който по номер изглежда уязвим, може вече да е защитен, а със сигурност знае само хостингът.
Как да проверя версията на PHP на сайта си?
Въведете адреса на сайта в проверката на версията на PHP на WPHost, която прави една обикновена заявка и чете версията от заглавката X-Powered-By, без да атакува сайта. Пълният номер, например 8.4.27, се вижда и в админа на WordPress в Tools > Site Health, раздела Info и секцията Server. В cPanel MultiPHP Manager или Select PHP Version обикновено показва само клона, например 8.4.
Какво да попитам хостинга за PHP2Shell?
Попитайте конкретно дали на сървъра са инсталирани поправените пакети на PHP за CVE-2026-109618 и CVE-2026-109619. На сървърите с cPanel това са пакетите ea-php на EasyApache 4, а на сървърите с CloudLinux и пакетите alt-php. Когато питате по номер на CVE, хостингът може да Ви отговори точно, дори пакетът му още да носи стария номер на версията.
Какво да направя, ако сайтът ми е на PHP 8.1 или по-стара?
Минете на PHP 8.3 или 8.4. Екипът на PHP публикува минимални пренесени поправки за 7.4, 8.0 и 8.1, но те са за хората, които сами компилират PHP, и не се избират от cPanel. Преди смяната направете бекъп, а след нея прегледайте формите, количката и поръчката.
Източници
- PHP, Security advisory. Critical remote code execution vulnerabilities, update now
- PHP, PHP 8.6.0 RC4 available for testing
- GitHub, php-src, GHSA-w8hw-w9fx-j79w (CVE-2026-109618)
- GitHub, php-src, GHSA-6wmf-4rv5-p3rp (CVE-2026-109619)
- NVD, CVE-2026-109618
- NVD, CVE-2026-109619
- CISA, Known Exploited Vulnerabilities Catalog
- PHP, Supported Versions
- PHP, Наръчник, настройката expose_php
- Red Hat, Backporting Security Fixes
- CloudLinux, alt/ea packages
- WordPress.org, Site Health screen
- cPanel, MultiPHP Manager for cPanel