Если вы получили от меня письмо со ссылкой на эту страницу, значит ваш сайт, по всей видимости, использует версию Balbooa Forms (расширения Balbooa com_baforms, которое лежит у вас в файлах по путям /components/com_baforms/ и /administrator/components/com_baforms/), затронутую известной проблемой безопасности. Balbooa Forms представляет собой расширение для создания форм в системе управления содержимым Joomla. На этой странице объясняется, почему это важно, как надёжно определить свою версию и как это исправить.

Данное уведомление касается уязвимости CVE-2026-56291: критической (CVSS 10.0), активно эксплуатируемой проблемы, которая допускает удалённое выполнение кода без аутентификации через обработку вложений к формам на фронтенде расширения. Она затрагивает все выпуски до версии 2.4.1. Она была добавлена в каталог Known Exploited Vulnerabilities Агентства кибербезопасности и защиты инфраструктуры США (CISA) 10 июля 2026 года.

Выпуск, который устраняет эту проблему, не является выпуском, до которого нужно обновиться, и это самое важное на этой странице. Версия 2.4.1, опубликованная 9 июля 2026 года, действительно устраняет CVE-2026-56291. Но вторая, отдельная уязвимость того же расширения, CVE-2026-65880, затрагивает выпуски вплоть до 2.4.2.1 включительно. Оператор, который обновляется до 2.4.1 или 2.4.2, тем самым закрывает дверь, о которой говорится в этом уведомлении, но оставляет открытой другую. Более поздний выпуск, 2.4.3.1, это дополнительный выпуск безопасности, укрепляющий тот же путь загрузки файлов. Итак: обновитесь до Balbooa Forms 2.4.3.1 или новее, актуального на момент написания выпуска. Не останавливайтесь на версии 2.4.1.

Более старой безопасной версии не существует. Защитные меры, устраняющие эту проблему, были добавлены в версии 2.4.1, а значит, их не было ни в одном более раннем выпуске. Это не уязвимость, появившаяся на каком-то этапе истории расширения: собственный список изменений производителя показывает, что путь загрузки на фронтенде существовал непрерывно через всю линейку 2.0.x и вплоть до 1.x, и я лично убедился в отсутствии защиты непосредственно в исходном коде версий 2.1.x, 2.2.0 и 2.3.x. Довод «моя установка слишком стара, чтобы быть затронутой» здесь не работает, и на практике очень многие из затронутых установок, которые я вижу, действительно старые.

Чтобы это касалось вас, ничего не нужно специально включать. Напрашивается предположение, что сайт уязвим только в том случае, если он публикует форму, принимающую вложения файлов, поэтому хочу прямо сказать: это не так. Нет настройки, которая выводила бы затронутую версию из диапазона, а бесплатная редакция расширения содержит уязвимый код точно так же, как и платные редакции, так что довод «мы используем только бесплатную версию» тоже не спасает. Значение имеет только то, какую версию вы используете.

Поскольку эта уязвимость эксплуатировалась ещё до появления исправления, само по себе обновление не решает всю задачу. Вам также следует проверить свой сайт на признаки того, что кто-то опередил вас (см. раздел Если вы использовали затронутую версию ниже).

Это уязвимость расширения, а не ядра Joomla. Она в равной степени затрагивает сайты на Joomla 4, 5 и 6: полностью актуальное ядро Joomla не защитит вас, если само расширение Balbooa Forms устарело.

Это письмо настоящее?

Да. Это добросовестное уведомление в рамках ответственного раскрытия от независимого исследователя безопасности. Я не прошу у вас денег, паролей или доступа к сайту и не пытался проникнуть в него, что-либо загрузить или что-либо эксплуатировать.

Всё, что я сделал, это посмотрел файлы, которые ваш сайт отдаёт любому посетителю (так же, как публична ваша главная страница): ваши страницы, собственные адреса фронтенд-ресурсов расширения, записанные в них, и публичный файл манифеста расширения. Это всё. Я специально не трогал уязвимую функцию загрузки, не отправлял ни одну форму на вашем сайте и не запрашивал директорию images/baforms/uploads/ ни на вашем сайте, ни где-либо ещё. Этот путь встречается далее на этой странице только как место, где вы сами можете проверить свой сайт. Эта проверка никак не затрагивает ваши данные, вашу панель администратора или какую-либо частную часть вашего сайта.

Если вы хотите убедиться, кто я, контактные данные приведены внизу этой страницы и на странице Обо мне.

Почему это важно

Balbooa Forms позволяет создавать на сайтах Joomla контактные формы, формы запросов и подобные им формы. Среди прочего расширение даёт посетителю возможность прикрепить файл при отправке формы.

В затронутых версиях обработчик, стоящий за этой функцией, доступен без входа в систему и не проверяет должным образом, какой именно файл ему передают. Такое сочетание позволяет злоумышленнику разместить на вашем сервере программу по своему выбору и запустить её: полное удалённое выполнение кода, без учётной записи и без какого-либо содействия с вашей стороны.

Это не теоретический риск. Уязвимость получила максимальную оценку 10,0 из 10 и эксплуатируется в реальных условиях. Эксплуатация была зафиксирована начиная с 8 июля 2026 года, за день до публикации исправления 9 июля 2026 года, а Агентство США по кибербезопасности и защите инфраструктуры добавило её в каталог Known Exploited Vulnerabilities 10 июля 2026 года. Об этой уязвимости сообщил Phil Taylor из mySites.guru.

Я описываю это на том уровне, который нужен владельцу сайта, чтобы действовать, и не глубже. Я не публикую подробностей, которые позволили бы кому-то это воспроизвести, и прошу вас не пробовать это ни на своём сайте, ни на чужом. Чтение номера вашей версии, как описано ниже, даёт всё необходимое, чтобы решить, что делать.

Если в моём письме упоминалась эта проблема, значит версия, о которой сообщает ваш сайт, старше 2.4.1. Я не проверял, эксплуатируем ли ваш конкретный сайт и скомпрометирован ли он уже, а лишь то, что он сообщает о затронутой версии.

Как проверить свою версию

Вам не обязательно верить мне на слово о том, какую версию вы используете. Есть два надёжных способа проверки и один вводящий в заблуждение сигнал, специфичный именно для этого расширения, о котором стоит знать.

Из административной панели Joomla (главный источник):

  1. Войдите в администрирование Joomla (обычно по адресу yourdomain.com/administrator).
  2. Перейдите в System затем Manage затем Extensions (или Extensions затем Manage, в зависимости от вашей версии Joomla).
  3. Найдите Balbooa Forms и запишите установленную версию.

Из файла манифеста на диске: откройте

/administrator/components/com_baforms/baforms.xml

и прочитайте элемент <version>. Это то, что ваш сайт запускает на самом деле.

Обратите внимание, какой именно baforms.xml вы читаете. Установка Joomla с этим расширением содержит три разных файла с таким именем, и только тот, что лежит по указанному выше пути, принадлежит самому компоненту. Копии в /administrator/manifests/files/ и /plugins/editors-xtd/baforms/ несут собственные номера версий, которые намного старше и вообще не отражают версию компонента. Если по ошибке прочитать один из них, вы сильно занизите свою версию.

Номер версии в исходном коде страницы ненадёжен. Balbooa Forms проставляет версию в адреса своих фронтенд-ресурсов, поэтому, просматривая исходный код страницы с формой, вы можете увидеть что-то вроде ba-form.js?2.3.0.2. Это число считывается не из фактически отдаваемых файлов. Оно берётся из копии манифеста расширения в базе данных Joomla, которую обновляет только установщик Joomla. Если расширение когда-либо обновлялось путём копирования файлов поверх старых, а не через установку средствами Joomla, страница может показывать версию, которую сайт на самом деле не использует, причём ошибка возможна в обе стороны: старый номер на обновлённых файлах или новый номер на старых. Вместо этого используйте экран администратора или файл манифеста на диске.

Затем примените такое правило:

  • Всё старше 2.4.1: затронуто этой уязвимостью. Нет такой более старой границы, ниже которой более старый выпуск снова становится безопасным.
  • 2.4.1 или 2.4.2: исправлено в части этой проблемы, но по-прежнему затронуто CVE-2026-65880, отдельной уязвимостью, упомянутой выше. Продолжайте обновление.
  • 2.4.3.1 или новее: актуальная версия. Именно к ней нужно стремиться.

Как обновиться

Самый безопасный путь: обновиться средствами самой Joomla, предварительно создав резервную копию:

  1. Создайте резервную копию сайта (файлы и базу данных), прежде чем что-либо менять. Большинство хостинг-провайдеров предлагают резервное копирование в один клик, либо используйте расширение резервного копирования для Joomla.
  2. В административной панели Joomla откройте Extensions затем Manage затем Update, и нажмите Find Updates. Если обновление Balbooa Forms есть в списке, установите его отсюда.
  3. Если обновление там не появляется, получите актуальный выпуск напрямую от производителя, Balbooa, и установите его через Extensions затем Install. И бесплатная, и платные редакции обновляются через собственный сайт производителя.
  4. Устанавливайте через Joomla, а не копированием файлов поверх старых. Копирование файлов оставляет запись Joomla о версии устаревшей, из-за чего номер в исходном коде страницы и становится ненадёжным, и, кроме того, может оставить после себя старые файлы.
  5. После обновления подтвердите новый номер версии (2.4.3.1 или новее), используя шаги выше, и проверьте, что ваши формы по-прежнему отображаются и отправляются как обычно.

Раз уж вы этим занимаетесь, стоит также убедиться, что сама Joomla и остальные ваши расширения обновлены, поскольку тот же принцип относится ко всем.

Если вы использовали затронутую версию

Поскольку эта уязвимость эксплуатировалась до появления исправления, сайту, работавшему на затронутой версии, не следует полагать, что одного обновления достаточно. Обновление закрывает дверь, но не говорит о том, не прошёл ли через неё уже кто-то. Это стоит проверить спокойно, а не сразу настраиваться на худшее: большинство сайтов не найдут ничего.

Вот что вы (или ваш веб-мастер) можете поискать на своём сайте:

  • Неожиданные PHP-файлы в директории загрузок. Ищите файлы .php где угодно под images/baforms/uploads/, включая все её поддиректории. Ничто легитимное не размещает там PHP. На хостинге с Linux проверка выглядит так:

    find images/baforms/uploads -name '*.php' -type f
    
  • Учётные записи администраторов, которые вы не узнаёте. Просмотрите список пользователей в Users, затем Manage. Также проверьте даты регистрации учётных записей, которые вы узнаёте, поскольку учётная запись, созданная в начале июля 2026 года и которую вы считали существовавшей всегда, заслуживает повторного взгляда.
  • PHP-файлы в других местах сайта, изменённые примерно в начале июля 2026 года или позже, особенно те, происхождение которых вы не можете объяснить.

Если вы обнаружите что-либо из перечисленного, считайте сайт скомпрометированным: смените все учётные данные (администратор Joomla, база данных, FTP/SSH, панель хостинга), проверьте учётные записи пользователей Joomla и группы, к которым они принадлежат, и рассмотрите восстановление из резервной копии, сделанной до 8 июля 2026 года, вместо попытки очистить сайт на месте. Очистку на месте трудно провести правильно, поскольку оставленный бэкдор может свести эту очистку на нет. Если в вашей организации есть команда по IT-безопасности или национальный CERT, привлеките их.

Хочу подчеркнуть: я не проверял ваш сайт ни на один из этих признаков и не знаю, был ли ваш сайт затронут. Этот список приведён здесь для того, чтобы вы могли проверить сами.

У меня нет вебмастера / я не справляюсь

Если сайтом занимаетесь не вы, перешлите, пожалуйста, эту страницу тому, кто им занимается (вашему веб-разработчику, агентству или хостинг-провайдеру). Шаги выше он узнает сразу.

Если вы ведёте сайт сами и застряли, я с удовольствием бесплатно подскажу вам направление. Напишите по контактам ниже.

Контакты

Evan Harris, исследователь безопасности

Я обращаюсь по таким вопросам исключительно ради того, чтобы помочь операторам защитить свои сайты. Если вы предпочитаете больше не получать от меня писем, просто сообщите, и я это учту.

Источники

Официальные бюллетени и отслеживание

Производитель (Balbooa)

Освещение и анализ