В марте 2011 года я писал о DLL HiJacking в VirtualBox. Тогда разработчики сообщили, что проблема не в их продукте, а в Qt, на котором основана их продукция.
Наконец, найдя время, я решил проверить так ли это. Оказалось, что так.
Мной были проверены:
И они оказались уязвимы.
Видео демонстрация уязвимости (видео без звука):
Однако, версия Oracle VirtualBox 4.1.2 уже не была уязвима. Пытаясь выяснить с какой версии Qt проблема решилась, стал изучать Qt changelog, где обнаружил вот такую запись для версии 4.7.1:
Для тех, кто пользуется приложениями, написанными на Qt, рекомендую проверить версии библиотек (Qt*.dll), находящихся в той же директории, что и исполняемый файл приложения. Если их версия < 4.7.1 обновите их вручную, скачав Qt Libraries.
Список потенциально уязвимых приложений (часть из них уже используют обновлённую Qt).
UPD: Перевод поста на английский
Ссылки по теме:
Наконец, найдя время, я решил проверить так ли это. Оказалось, что так.
Мной были проверены:
И они оказались уязвимы.
Видео демонстрация уязвимости (видео без звука):
Однако, версия 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: Перевод поста на английский
Ссылки по теме:
- DLL Hijacking (инструментарий для поиска, эксплуатация через Metasploit)
- Прибыльный DLL Hijacking (спасибо elgrand)
- Microsoft Security Advisory (2269637)
Insecure Library Loading Could Allow Remote Code Execution (спасибо ComodoHacker) - Qt: Security announcement – Windows DLL preloading
- Опубликован новый раздел реестра CWDIllegalInDllSearch, позволяющий управлять алгоритмом пути поиска DLL