Накратко: Уязвимостта в Joomla, за която се говори в момента, се казва PHP2Shell и е в PHP на сървъра, а не в Joomla. Актуализация на Joomla не я затваря. След пача на PHP и рестартирането проверете configuration.php, template overrides, разширенията и списъка със Super User.
Какво означава PHP2Shell за Joomla
Joomla е CMS на PHP и наследява всяка слабост на PHP отдолу. Уязвимостите CVE-2026-109618 и CVE-2026-109619 позволяват според екипа на PHP изпълнение на злонамерен код без вход в системата. Засегнати са обичайните режими на работа PHP-FPM, Apache с mod_php, php-cgi, FrankenPHP и LiteSpeed.
Особено по-малките уебсайтове на Joomla на сдружения, занаятчийски фирми или съюзи често работят на споделен хостинг и рядко се поддържат. Там актуализацията на PHP е работа на хостинг доставчика. Вашата задача е да поискате състоянието и да проверите уебсайта за следи. Кои версии са засегнати, показва страницата Кои версии на PHP са засегнати?.
Уязвимост на Joomla: проверка на версията на PHP
В администраторската зона System > System Information показва версията на PHP и най-важните настройки на PHP. Това е версията, с която Joomla реално работи в уеб. Поправените версии на оригиналния проект са 8.5.12, 8.4.27, 8.3.36 и 8.2.35. Ако Joomla показва по-стар номер, пак може да е внесен backport; това трябва да потвърди Вашият хостинг доставчик.
При споделен хостинг версията на PHP често може да се сменя в клиентското меню на хостинг доставчика за всеки домейн. Така обаче се превключва само между версиите, които хостинг доставчикът предоставя; дали са пачнати, решава той. Преминаване към по-нова основна версия може пак да е разумно, ако Вашата версия на Joomla и всички разширения я поддържат. Тествайте това предварително, защото по-старите разширения често спират с грешки при по-нови версии на PHP.
Joomla сам посочва минимални изисквания към PHP за всяка основна версия. Кои версии на PHP поддържа Вашата версия на Joomla, проверете според системните изисквания на joomla.org. При много стари версии на Joomla смяната на PHP може първо да изисква надграждане на Joomla.
Типични скривалища на злонамерен код в Joomla
| Място | Съдържание | На какво да обърнете внимание |
|---|---|---|
configuration.php |
достъп до базата данни, $secret, пътища за логове и temp |
дата на промяна, вмъкнат код |
images/, media/ |
изображения и медия | PHP файловете са подозрителни |
tmp/ |
временни файлове, и от инсталации | остатъци от чужди пакети |
templates/<name>/html/ |
template overrides с PHP код | непознати или променени overrides |
plugins/system/ |
системни плъгини, които се зареждат при всяко извикване | непознати плъгини |
administrator/logs/ |
протоколи | запазете преди промени |
.htaccess |
пренасочвания, правила за пренаписване | пренасочвания само за търсачки |
Системните плъгини са особено предпочитани, защото се изпълняват при всяко извикване на страница. Непознат плъгин в тази папка винаги трябва да можете да обясните.
Безопасни проверки в командния ред (Joomla 4 и по-нов има собствена конзола):
# PHP файлове в папките за медия и temp
find images media tmp -type f -name "*.php"
# Списък на потребителите и разширенията
php cli/joomla.php user:list
php cli/joomla.php extension:list
Ако Вашият уебсайт на Joomla пренасочва посетители от Google към чужди страници или Google показва предупреждение, сървърът най-вероятно вече е компрометиран. Тогава актуализация не стига, а е нужно почистване и след това проверка в Search Console.
Административен достъп и разширения
Административната зона е на /administrator. Проверете потребителската група „Super Users“ за непознати акаунти и за акаунти на бивши доставчици. Активирайте двуфакторното удостоверяване, което Joomla носи със себе си, и ползвайте лични вместо споделени акаунти.
Разширенията от Joomla Extensions Directory и от трети доставчици са при много уебсайтове многобройни: формуляри, галерии, конструктори на страници, бюлетини. Всяко носи собствен PHP код и често собствени функции за качване. Разширенията, чийто доставчик вече не пуска актуализации, са траен риск и затрудняват всяко надграждане на PHP. Деинсталирайте напълно неизползваното.
Какво може актуализацията на Joomla и какво не
Актуализацията на Joomla заменя файловете на ядрото и затваря известни уязвимости в Joomla. Тя не пачва PHP, не засяга template overrides и чуждите разширения и не премахва файлове, които не принадлежат към ядрото. И записите в базата данни като нови Super User остават.
Ако Вашият уебсайт вече е бил променен, помага редът на страницата Хакнат уебсайт? Спешна помощ от разстояние. За търсенето на задни вратички си струва ръководството Разпознаване и премахване на уеб шелове.
Ако Вашият уебсайт на Joomla е изграден от агенция или свободна практика, питайте там кои разширения и шаблони са адаптирани индивидуално. Адаптираните файлове не могат просто да се сравнят с оригиналния пакет и се нуждаят от поотделна проверка.
Как помага PHP SOS конкретно?
- Поискваме състоянието на PHP от Вашия хостинг доставчик или го проверяваме на Вашия сървър, включително рестартирането.
- Запазваме логове, файлове и база данни преди всяка промяна.
- Сравняваме ядрото с оригиналния пакет и проверяваме overrides, системните плъгини, папките за медия и Super User.
- При находки почистваме уебсайта, подновяваме достъпите и съпровождаме премахването на предупреждения на Google.
Често задавани въпроси
Засегнат ли е Joomla от PHP2Shell?
Самият Joomla няма нова уязвимост, но работи на PHP. Ако PHP на сървъра не е пачнат, според екипа на PHP нападател може да изпълнява код без вход в системата. Актуализацията на Joomla не променя това.
Къде намирам версията на PHP в Joomla?
В администраторската зона под System > System Information. Там виждате и настройките на PHP. Дали е внесен backport, не се познава по номера; това трябва да потвърди Вашият хостинг доставчик.
Защо template overrides са риск?
Overrides лежат в папката на шаблона и съдържат PHP код, който замества изхода на компонентите и модулите. Внедреният код там трудно се забелязва, защото при актуализации на Joomla overrides не се заменят.