CVE-2016-0034
Microsoft Silverlight
2022-05-25
Microsoft Silverlight mishandles negative offsets during decoding, which allows attackers to execute remote code or cause a denial-of-service (DoS).
Технический анализ и план устранения
Суть уязвимости
CVE-2016-0034 представляет собой критическую уязвимость в движке Microsoft Silverlight, связанную с некорректной обработкой отрицательных смещений (negative offsets) при декодировании данных. Проблема возникает из-за отсутствия должной проверки границ (bounds checking) в библиотеке среды выполнения.
Злоумышленник может создать специально подготовленное приложение Silverlight (обычно внедренное в веб-страницу), которое при открытии пользователем вызывает переполнение буфера в памяти процесса браузера. Это позволяет атакующему: 1. Выполнить произвольный код (RCE) с правами текущего пользователя. 2. Вызвать отказ в обслуживании (DoS) путем аварийного завершения работы приложения.
Как исправить
Основным способом устранения уязвимости является установка официального обновления безопасности от Microsoft (MS16-006). Поскольку поддержка Silverlight полностью прекращена 12 октября 2021 года, единственным верным решением является полное удаление продукта из системы.
Вариант 1: Удаление через PowerShell (рекомендуется)
Get-Package -Name "Microsoft Silverlight" | Uninstall-Package -Force
Вариант 2: Удаление через WMIC (для старых систем)
wmic product where "name like 'Microsoft Silverlight'" call uninstall /nointeractive
Вариант 3: Обновление (если удаление невозможно) Если ваша инфраструктура критически зависит от Silverlight, убедитесь, что установлена версия не ниже 5.1.41212.0.
Временные меры
Если немедленное удаление невозможно, необходимо минимизировать поверхность атаки следующими методами:
1. Отключение плагина в браузерах через реестр (Killbit) Установка флага запрета запуска компонента в Internet Explorer.
$path = "HKLM:\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{DFEAFDE1-12D0-11D5-91E0-00104B35968A}"
if (!(Test-Path $path)) { New-Item -Path $path -Force }
New-ItemProperty -Path $path -Name "Compatibility Flags" -Value 0x00000400 -PropertyType DWord -Force
2. Блокировка запуска Silverlight через групповые политики (AppLocker) Запрет выполнения основной библиотеки Silverlight.
New-AppLockerPolicy -FileInformation "C:\Program Files\Microsoft Silverlight\*\Microsoft.Silverlight.dll" -Action Deny -User Everyone
3. Использование Click-to-Play Настройте браузеры таким образом, чтобы плагины запускались только после явного подтверждения пользователем. Это предотвратит автоматическую эксплуатацию при посещении вредоносных сайтов.