Xakep #305. Многошаговые SQL-инъекции
Разработчики qBittorrent устранили проблему удаленного выполнения кода, связанную с невозможностью проверки сертификатов SSL/TLS в компоненте DownloadManager, который управляет загрузками в приложении. При этом выяснилось, что уязвимость появилась в коде еще в апреле 2010 года, то есть существовала более 14 лет.
QBittorrent — это свободный кроссплатформенный BitTorrent-клиент с открытым исходным кодом, который достаточно популярен, благодаря наличию IP-фильтрации, встроенному поиску, поддержке RSS и интерфейсу на основе Qt.
Проблему в коде qBittorrent обнаружил исследователь, известный под ником Sharp Security. В блоге он рассказывает, что хотя уязвимость уже исправлена в версии 5.0.1, вышедшей 28 октября 2024 года, разработчики не проинформировали об этом пользователей и не присвоили проблеме идентификатор CVE.
Суть проблемы заключается в том, что с 2010 года qBittorrent принимал абсолютно любые сертификаты, в том числе поддельные и нелегитимные, что позволяло MitM-злоумышленникам, вмешиваться в сетевой трафик.
«В течение 14 лет и шести месяцев, начиная с 6 апреля 2010 года и коммита 9824d86, класс DownloadManager в qBittorrent игнорировал все ошибки проверки SSL-сертификатов, которые когда-либо возникали на любых платформах, — объясняет исследователь безопасности. — Поведение по умолчанию изменилось 12 октября 2024 года с коммитом 3d9e971. Первой исправленной версией стала версия 5.0.1».
Фактически это означает, что любой сервер, выдающий себя за легитимный, мог перехватывать, изменять или внедрять данные в трафик, а qBittorrent более 14 лет доверял этим данным.
Sharp Security перечисляет четыре основных опасности, связанных с этой уязвимостью:
- Если Python недоступен в Windows, qBittorrent предлагает пользователю установить его через жестко закодированный URL, указывающий на исполняемый файл. Из-за отсутствия валидации сертификатов злоумышленники могли перехватить запрос, заменить установщик на вредоносный и выполнить произвольный код.
- QBittorrent проверяет наличие обновлений через XML-фид, используя жестко заданный URL-адрес, а затем анализирует ленту в поисках ссылки для загрузки новой версии. В отсутствие SSL-верификации злоумышленники могли внедрить в фид вредоносную ссылку на обновление, побуждая пользователя загрузить малварь.
- DownloadManager в qBittorrent используется и RSS-фидом, что позволяет злоумышленникам перехватывать и изменять содержимое RSS-каналов и внедрять в фид вредоносные URL-адреса, выдавая их за безвредные torrent-ссылки.
- QBittorrent автоматически загружает сжатую базу данных GeoIP с жестко заданного URL и распаковывает ее, что позволяет эксплуатировать потенциальные ошибки переполнения памяти, если файлы получены с вредоносного сервера.
Исследователь отмечает, что в целом подобные man-in-the-middle атаки нечасто встречаются на практике, однако в регионах с высоким уровнем надзора такие риски могут быть более существенны.