Исследователи Digital Security нашли ряд уязвимостей в Janus WebRTC Server

13.07.2020

Исследователи компании Digital Security обнаружили проблемы безопасности в сервере Janus WebRTC от Meetecho, который используется для конференц-звонков. Большинство из найденных уязвимостей приводят к отказу в обслуживании, но есть и те, что могут быть использованы для удаленного выполнения кода на сервере Janus.

Продукт Janus WebRTC Server

Janus — это WebRTC-сервер с открытым исходным кодом, разработанный компанией Meetecho. Сервер предназначен для работы стандарта WebRTC (Web Real Time Communications) и осуществляет передачу потоковых аудио, видео данных и контента между браузерами.

Janus-сервер используется при проведении конференц-звонков и организации текстовых чатов, для присоединения к которым необходимо только перейти по ссылке. Как небольшие, так и крупные организации типа Skyeng, Motorola, Mozilla и Slack могут использовать его до сих пор из-за простоты и легковесности.

В настоящее время это решение особенно актуально для тех, кто отказался из-за соображений безопасности от Zoom или Skype и находится в поиске альтернатив. Janus подходит для систем Linux, может быть собран и установлен на компьютерах MacOS. Windows не поддерживается, тем не менее, Janus работает в подсистеме Windows для Linux в Windows 10.

Проблемы в безопасности Janus

7 июня исследователь Digital Security Михаил Евдокимов сообщил вендору о четырех уязвимостях в SDP модуле Janus WebRTC Server. Две из них (CVE-2020-13898 и CVE-2020-13900) обнаружены в модуле парсинга и обработки SDP пакета. Из-за возможности обращения по нулевому указателю злоумышленник может прекратить работу процесса Janus.

С помощью уязвимости переполнения буфера стека (CVE-2020-13901), найденной Михаилом совместно с Маратом Гаяновым в методе объединения анонимизированного SDP пакета и актуальной транспортной информации, атакующий способен влиять на данные, которые расположены в стековой части памяти программы. Это, в свою очередь, приведет к атаке Denial of Service в лучшем случае, а в худшем – к удаленному выполнению кода на сервере, который является инфраструктурным объектом компании. Злоумышленник может использовать RCE для дальнейшего изучения инфраструктуры сети и возможных атак man-in-the-middle.

Выявленное раскрытие данных с неинициализированного буфера в стековой памяти процесса (CVE-2020-13899) позволяет получить виртуальные адреса секций Janus-процесса и в дальнейшем использовать это вместе с другими уязвимостями для получения RCE.

Спустя два дня, 9 июня, вендор успешно закрыл все вышеуказанные уязвимости.

Однако 15 июня 2020 исследователи дополнительно сообщили о двух уязвимостях переполнения буфера стека с высоким уровнем критичности (CVE-2020-14033 и CVE-2020-14034). Компания Meetecho закрыла их в тот же день.

Исследователи не предавали огласке детали до устранения уязвимостей.