Уязвимость расширения для проведения веб-конференций Cisco WebEx позволяет осуществлять выполнение произвольного кода

b6acb5f537744f6f93cdd3a19834e751.jpg

Расширением Cisco WebEx активно пользуются около 20 млн человек — оно является частью популярного софта для проведения веб-конференций. Исследователь Google Тэвис Оманди опубликовал информацию об обнаруженной им уязвимости в этом компоненте — используемая для его работы технология nativeMessaging позволяет любому сайту, к которому подключается пользователь, осуществлять выполнение произвольного кода.

Расширение WebEx работает для любого URL, содержащего специальный паттерн (magic pattern) cwcsf-nativemsg-iframe-43c85c0d-d633-af5e-c056-32dc7efc570b.html — он извлекается из манифеста расширения. Паттерн может появляться и в iframe — поэтому пользователь не всегда может контролировать работу расширения. При этом, использование компонентом nativeMessaging позволяет любому сайту, на который зашел пользователь, исполнять произвольный код.

Расширение использует сложный протокол, в котором для передачи JSON-сообщений между веб-страницой, расширением и нативным кодом приложения применяются объекты CustomEvent ().

В процессе инициализации сайту сначала нужно запросить открытие порта для коммуникаций со стороны приложения:

document.dispatchEvent(new CustomEvent("connect", { detail: { token: "token" }})); // token can be any string

Затем сообщения могут передаваться к нативному коду через события message. Используются несколько разных типов сообщений — «hello», «disconnect» и т.д. По словам Оманди, одним из самых интересных является сообщение «launch_meeting»:
    document.dispatchEvent(new CustomEvent("message", { detail: {
            message: JSON.stringify(msg),
            message_type: "launch_meeting",
            timestamp: (new Date()).toUTCString(),
            token: "token"
        }
    }));

Исследователь прошел процесс организации конференции и записал сообщения, отправлявшиеся в процессе инициализации. В них он обнаружил массу сущностей, которые могут быть использованы для выполнение кода. Расшифровав строки сообщений он обнаружил что-то вроде скриптового языка, c помощью которого вызывались функции нативного кода. В итоге Оманди удалось создать эксплоит, который выполняет произвольный код на пользовательской системе (для его тестирования нужно проверить наличие на компьютере WebEx).

Комментарии (0)

© Habrahabr.ru