Pull to refresh

DLL HiJacking в Qt-приложениях

Reading time1 min
Views2.8K
В марте 2011 года я писал о DLL HiJacking в VirtualBox. Тогда разработчики сообщили, что проблема не в их продукте, а в Qt, на котором основана их продукция.
Наконец, найдя время, я решил проверить так ли это. Оказалось, что так.

Мной были проверены:


И они оказались уязвимы.


Видео демонстрация уязвимости (видео без звука):


Однако, версия Oracle VirtualBox 4.1.2 уже не была уязвима. Пытаясь выяснить с какой версии Qt проблема решилась, стал изучать Qt changelog, где обнаружил вот такую запись для версии 4.7.1:

QLibrary
* [QT-3825] System libraries are only loaded from the system directories.


Для тех, кто пользуется приложениями, написанными на Qt, рекомендую проверить версии библиотек (Qt*.dll), находящихся в той же директории, что и исполняемый файл приложения. Если их версия < 4.7.1 обновите их вручную, скачав Qt Libraries.

Список потенциально уязвимых приложений (часть из них уже используют обновлённую Qt).

UPD: Перевод поста на английский

Ссылки по теме:
  1. DLL Hijacking (инструментарий для поиска, эксплуатация через Metasploit)
  2. Прибыльный DLL Hijacking (спасибо elgrand)
  3. Microsoft Security Advisory (2269637)
    Insecure Library Loading Could Allow Remote Code Execution
    (спасибо ComodoHacker)
  4. Qt: Security announcement – Windows DLL preloading
  5. Опубликован новый раздел реестра CWDIllegalInDllSearch, позволяющий управлять алгоритмом пути поиска DLL
Tags:
Hubs:
+51
Comments12

Articles