Якщо ви отримали від мене лист із посиланням на цю сторінку, це тому, що ваш сайт, вочевидь, використовує версію 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 року, замість спроб очистити сайт на місці. Правильно очистити сайт на місці складно, бо залишений бекдор може звести очищення нанівець. Якщо у вашій організації є команда безпеки чи національний CERT, залучіть їх.

Хочу бути зрозумілим: я не перевіряв ваш сайт на жоден із цих індикаторів і не знаю, чи постраждав ваш сайт. Цей перелік наведено, щоб ви могли перевірити самостійно.

У мене немає вебмайстра / я не даю ради

Якщо сайтом опікуєтеся не ви, перешліть, будь ласка, цю сторінку тому, хто ним опікується (вашому веброзробнику, агенції або хостинг-провайдеру). Він швидко впізнає наведені вище кроки.

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

Контакти

Evan Harris, дослідник безпеки

Я звертаюся з такими питаннями винятково для того, щоб допомогти операторам захистити свої сайти. Якщо ви волієте більше не отримувати від мене листів, просто скажіть, і я це врахую.

Джерела

Офіційні бюлетені та відстеження

Розробник (Balbooa)

Повідомлення та аналіз