В CMS Joomla обнаружена критическая 0-day уязвимость

в 18:21, , рубрики: cms, Joomla, o-day, Блог компании Positive Technologies, Веб-разработка, информационная безопасность, уязвимости

В CMS Joomla обнаружена критическая 0-day уязвимость - 1

Во вторник 14 декабря команда разработки Joomla выпустила срочное обновление безопасности, закрывающее 0-day уязвимость, которая открывает злоумышленникам возможность удаленного исполнения кода. Хакеры уже активно пытаются атаковать уязвимые сайты.

Что случилось

По сообщению ИБ-компании Sucuri, эта ошибка уже эксплуатируется киберпреступниками — исследователям удалось обнаружить свидетельства успешных попыток ее использования еще 12 декабря. В лог-файлах веб-серверов скомпрометированных сайтов присутствовали следующие строки:

2015 Dec 12 16:49:07 clienyhidden.access.log
Src IP: 74.3.170.33 / CAN / Alberta
74.3.170.33 – – [12/Dec/2015:16:49:40 -0500] “GET /contact/ HTTP/1.1″ 403 5322 “http://google.com/” “}__test|O:21:x22JDatabaseDriverMysqlix22:3: ..
{s:2:x22fcx22;O:17:x22JSimplepieFactoryx22:0: .. {}s:21:x22x5C0x5C0x5C0disconnectHandlersx22;a:1:{i:0;a:2:{i:0;O:9:x22SimplePiex22:5:..
{s:8:x22sanitizex22;O:20:x22JDatabaseDriverMysqlx22:0:{}s:8:x22feed_urlx22;s:60:..

В коде обработчика сессий Joomla пристутствует уязвимость, которая позволяет осуществить внедрение строки в синтаксис сериализованной сессии через HTTP-заголовки User-Agent и X-Forwarded-For. Эксплоит использует особенность MySQL при обработке utf8-символов из диапазона U+010000 — U+10FFFF. При вставке строки, в конце которой присутствует такой символ, MySQL обрежет данные. Это позволяет сформировать и записать в таблицу сессий строку, в которой присутствуют пользовательские PHP-объекты, без нарушения синтаксиса. В ходе десериализации сессии атакующего вызываются деструкторы классов Joomla, что ведет к выполнению произвольного кода​. Для того, чтобы данные не обрезались, в MySQL необходимо использовать кодировку utf8mb4​. ​​

Как заявляют исследователи Sucuri, обнаруженные атаки осуществлялись со следующих IP-адресов:

  • 74.3.170.33 (12 декабря);
  • 146.0.72.83 (13 декабря);
  • 194.28.174.106 (13 декабря);

14 декабря число попыток эксплуатации серьезно увеличилось — все «ловушки» (honeypot), созданные исследователями, были неоднократно атакованы.

В CMS Joomla обнаружена критическая 0-day уязвимость - 2

Удаленное выполнение кода с помощью уязвимости Joomla

Участники сообщества пользователей фреймворка Metasploit на GitHub в режиме реального времени занимаются написанием эксплойта к обнаруженной уязвимости Joomla. По последним сообщениям участникам удалось создать работающий модуль для эксплуатации уязвимости:

В CMS Joomla обнаружена критическая 0-day уязвимость - 3

Joomla 1.5 была выпущена в январе 2008 года — это означает, что уязвимость присутствует в этой и более поздних версиях системы уже почти на протяжении восьми лет. В настоящий момент нет данных о том, какое количество сайтов и веб-ресурсов были скомпрометированы вследствие эксплуатации этой бреши.

Как защититься

Уязвимость распространяется на версии Joomla 1.5 по 3.4.5 включительно. Всем пользователям CMS необходимо обновить свою систему — сделать это можно здесь. Пользователям старых неподдерживаемых версий 1.5.x и 2.5.x следует установить патчи, доступные по ссылке (инструкция по использованию фиксов представлена на английском языке здесь).

В качестве временной меры предосторожности исследователи Sucuri рекомендуют заменять потенциально опасные данные в заголовке HTTP User-Agent. Ниже представлен пример конфигурации для веб-сервера Apache:

RewriteCond %{HTTP_USER_AGENT} .*{.* [NC]
RewriteRule .* - [F,L]

Кроме того, эксперты Positive Technologies рекомендуют использовать специализированные средства защиты от киберугроз — к примеру, межсетевой экран прикладного уровня PT Application Firewall успешно отражает возможные попытки эксплуатации указанной уязвимости:

В CMS Joomla обнаружена критическая 0-day уязвимость - 4

Исследователи безопасности не в первый раз находят уязвимости в CMS Joomla. В октябре 2015 года была выпущена версия системы 3.4.5, в которой были устранены серьезные уязвимости (CVE-2015-7297, CVE-2015-7857, CVE-2015-7858), которые открывали злоумышленникам возможности, в том числе и осуществления SQL-инъекций.

Напомним также, что использование CMS с открытым кодом – вовсе не гарантия безопасности, если вы не проверяли эти коды на уязвимости. В прошлом году эксперты Positive Technologies, используя анализатор кодов PT Application Inspector, нашли множество багов в нескольких популярных CMS с открытым кодом, включая Joomla, Shopos, Yii и Jahia, а также в плагинах для Wordress. Разбор одного такого исследования, с уязвимостями системы InstantCMS, мы публиковали в начале года.

Автор: Positive Technologies

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js