Security Lab

Небезопасный вызов функции CreateProcess() у различных производителей

Дата публикации:17.11.2005
Дата изменения:20.10.2006
Всего просмотров:6903
Опасность:
Средняя
Наличие исправления:
Количество уязвимостей:1
CVE ID: Нет данных
Вектор эксплуатации:
Воздействие:
CWE ID: Нет данных
Наличие эксплоита: Нет данных
Уязвимые продукты:
Уязвимые версии:
RealPlayer 10.5
Kaspersky Anti-Virus for Windows File Servers 5.0
iTunes 4.7.1.30
Microsoft Antispyware 1.0.509 (Beta 1

Описание:
Уязвимость позволяет злоумышленнику выполнить произвольный код на целевой системе.

Microsoft Windows API использует функцию CreateProcess() для создания нового процесса и его первичной нити. Функция CreateProcessAsUser() выполняет такую же функцию, но позволяет процессу быть запущенным в контексте безопасности пользователя.

Функция CreateProcess() выглядит таким образом:

BOOL CreateProcess(
  LPCTSTR lpПриложениеName,
  LPTSTR lpCommandLine,
  LPSECURITY_ATTRIBUTES lpProcessAttributes,
  LPSECURITY_ATTRIBUTES lpThreadAttributes,
  BOOL bInheritHandles,
  DWORD dwCreationFlags,
  LPVOID lpEnvironment,
  LPCTSTR lpCurrentDirectory,
  LPSTARTUPINFO lpStartupInfo,
  LPPROCESS_INFORMATION lpProcessInformation
);

Переменная 'lpПриложениеName' содержит имя исполняемого модуля. Если эта переменная содержит значение NULL, то имя исполняемого модуля будет состоять и первого пробела и строки ‘lpCommandLine’. Например:

   CreateProcess(
      NULL,
      c:\program files\sub dir\program.exe,
      ...
   );

В приведенном примере строка будет интерпретирована функцией следующим образом:

   c:\program.exe files\sub dir\program name
   c:\program files\sub.exe dir\program name
   c:\program files\sub dir\program.exe

Итак, если приложение program.exe существует в корневом каталоге диска C:\, то оно будет выполнено вместо целевого приложения.

Этот случай поведения функции описан непосредственно в документации API
http://msdn.microsoft.com/library/en-us/dllproc/base/createprocessasuser.asp

Для успешной эксплуатации уязвимости злоумышленнику необходимо внедрить злонамеренный код в файл C:\program.exe. Это может быть сделано с помощью социальной инженерии или посредством других уязвимостей.

Успешная эксплуатация уязвимости позволит злоумышленнику выполнить произвольный код на целевой системе с привилегиями пользователя, запустившего уязвимое приложение. Уязвимые приложения:

Производитель:      RealNetworks
Приложение: RealPlayer 10.5
Файлы:     realplay.exe
        realjbox.exe
       
Производитель:     Kaspersky
Приложение: Kaspersky Anti-Virus for Windows File Servers 5.0 (English) - Installation File
Файлы:     kav5.0trial_winfsen.exe

Производитель:      Apple
Приложение: iTunes 4.7.1.30
Файлы: iTunesHelper.exe

Производитель:      VMWare
Приложение: VMWare Workstation 5.0.0 build-13124
Файлы:     VMwareTray.exe
        VMwareUser.exe
       
Производитель:     Microsoft
Приложение: Microsoft Antispyware 1.0.509 (Beta 1)
Файлы:     GIANTAntiSpywareMain.exe
        gcASNotice.exe
        gcasServ.exe
        gcasSWUpdater.exe
        GIANTAntiSpywareUpdater.exe

Решение: Способов устранения уязвимости не существует в настоящее время.

Источник:

Ссылки: Multiple Vendor Insecure Call to CreateProcess() Vulnerability