Microsoft выпустила заглушку, блокирующую подделку dll, и инструмент для ее быстрого использования
dl // 02.09.10 00:26
Заглушка позволяет добавить в реестр ключ CWDIllegalInDllSearch, слегка меняющий схему поиска dll, используемых программой (как для всей системы в целом, так и для отдельных приложений), а соответствующий FixIt проделывает это в пару кликов мыши.
[Не забывайте при копировании материала указывать полный адрес источника: //bugtraq.ru/rsn/archive/2010/09/01.html]
Проблема, с которой все это борется, заключалась в том, что текущий каталог входил в список мест, в которых искалась загружаемая библиотека при неявной загрузке (либо при явном вызове LoadLibrary без указания полного пути). Входил далеко не на вершине списка, но теоретическая возможность подсунуть доверчивому приложению поддельную зловредную dll все же существовала, что усугублялось тем, что текущий каталог мог находиться и на удаленном ресурсе, неподконтрольном пользователю (например, каталоге WebDAV).
Поскольку радикальная правка поведения одной из ключевых системных функций могла с легкостью сломать ряд сторонних приложений, Microsoft пока предпочла переложить муки выбора на плечи пользователей - теперь можно оставить поведение старым, блокировать полностью поиск в текущем каталоге, либо выбрать промежуточный вариант с запретом поиска в текущем каталоге, только если он расположен на удаленном ресурсе.