В браузерном дополнении Cisco WebEx выявлен URL, позволяющий выполнить код в системе
Уязвимость вызвана наличием предопределённого идентификатора, позволяющего передать дополнению команды (возможность используется для встраивания на сайты виджетов WebEx). В частности, команды можно передать через запрос со специально оформленной страницы, обращение с которой может быть скрыто от пользователя путем применения блоков iframe. Так как дополнение реализовано в виде надстройки над нативным кодом, вызываемым при помощи API nativeMessaging, атакующие могут добиться выполнения вызовов nativeMessaging от имени дополнения и организовать выполнение произвольного кода на уровне системы.
Эксплоит достаточно прост и сводится к передаче сообщения WebEx с любой страницы, названной "cwcsf-nativemsg-iframe-43c85c0d-d633-af5e-c056-32dc7efc570b.html" (название принципиально, так как является идентификатором, позволяющим выполнить действия на стороне дополнения). Для выполнения кода используется команда GpcInitCall, позволяющая вызвать функцию из нативного компонента. Например, в подготовленном для платформы Windows эксплоите осуществляется обращение к библиотеке "MSVCR100.DLL" и вызов функции "_wsystem()". В качестве примера приведён запуск калькулятора после открытия в браузере подготовленной атакующими web-страницы.
В дополнении подобная функциональность используется для передачи события "launch_meeting", в результате которого управление передаётся установленному в систему коммуникационному клиенту WebEx (разделяемая библиотека "atmccli"). Передаваемые в составе события "launch_meeting" команды вызывают обработчики, реализованные в виде функций, экспортируемых библиотекой "atmccli". Так как имя библиотеки и команда передаётся в составе запроса, атакующий имеет возможность вместо "atmccli" указать любую системную библиотеку, а вместо команды - любую экспортируемую этой библиотекой функцию. Подобные возможности оставались бы особенностью внутреннего кода дополнения, если бы не наличие скрытого идентификатора, позволяющего передавать команды с внешних ресурсов.
var msg = { ... GpcComponentName: btoa("MSVCR100.DLL"), GpcInitCall: btoa("_wsystem(ExploitShellCommand);"), ExploitShellCommand: btoa("calc.exe"), } document.dispatchEvent(new CustomEvent("connect", { detail: { token: "token" }})); document.dispatchEvent(new CustomEvent("message", { detail: { message: JSON.stringify(msg), message_type: "launch_meeting", timestamp: (new Date()).toUTCString(), token: "token" } }));
Разработчики Firefox уже добавили дополнение WebEx Extension в черный список. Дополнение также временно заблокировано в Chrome web store. Компания Cisco подготовила исправление (1.0.3), но оно не блокирует скрытый идентификатор, а ограничивает возможность выполнения запросов с сайтов *.webex.com и *.webex.com.cn при обязательном применении HTTPS. Ряд разработчиков Chromium не согласились с таким исправлением, так как по сути владельцам поддоменов webex.com, среди которых корпоративные клиенты, оставлена возможность выполнения любого кода на стороне системы пользователя и возникают вопросы о возможности осуществления XSS-атак.
Источник: http://www.opennet.ru/opennews/art.shtml?num=45904
|
0 | Tweet | Нравится |
|