Продукт 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 закрыла их в тот же день.
Исследователи не предавали огласке детали до устранения уязвимостей.