CVE-2020-1147

Microsoft .NET Framework, SharePoint, Visual Studio

ВЫСОКАЯ ВЕРОЯТНОСТЬ

Дата обнаружения

2021-11-03

Официальное описание

Microsoft .NET Framework, Microsoft SharePoint, and Visual Studio contain a remote code execution vulnerability when the software fails to check the source markup of XML file input. Successful exploitation allows an attacker to execute code in the context of the process responsible for deserialization of the XML content.

🛡️
Технический анализ и план устранения

Суть уязвимости

Уязвимость (CVE-2020-1147) — это удаленное выполнение кода в .NET Framework, SharePoint и Visual Studio. Она возникает из-за недостаточной проверки разметки XML при десериализации.

  • Как это используют: Злоумышленник может создать специальный XML-файл (например, .config, .xml, .resx), который, будучи обработан уязвимым приложением, заставит его выполнить произвольный код.
  • Цель атаки: Получить контроль над сервером или приложением, работающим под учетной записью процесса, который обрабатывает этот XML.

Как исправить

Установите официальные обновления безопасности от Microsoft.

Для Windows (через Центр обновления): 1. Откройте Панель управления -> Центр обновления Windows. 2. Выполните проверку и установите все доступные обновления. 3. Конкретные номера KB для установки вручную зависят от вашей ОС и версии .NET. Основные из них: * .NET Framework 3.5/4.5.2 и новее: KB4569735, KB4569736, KB4569739, KB4569740, KB4569741, KB4569744, KB4569745. * SharePoint 2013/2016/2019: KB4484481, KB4484482, KB4484483. * Visual Studio 2017/2019: Обновите до последней версии через установщик VS.

Для Linux (если используется .NET Core или .NET 5+): Уязвимость затрагивает и кроссплатформенные версии .NET. Обновите пакеты:

# Для .NET Core 3.1
sudo apt update && sudo apt install --only-upgrade aspnetcore-runtime-3.1 dotnet-runtime-3.1 dotnet-sdk-3.1

# Для .NET 5.0 и новее (актуальные версии на момент уязвимости)
# Обновите до последней версии, содержащей патч.
sudo apt update && sudo apt install --only-upgrade dotnet-runtime dotnet-sdk aspnetcore-runtime

Проверка: После установки обновлений перезагрузите систему и убедитесь, что в списке установленных обновлений присутствуют указанные KB или версии .NET.

Временное решение

Если немедленная установка патча невозможна, примените следующие меры:

  1. Настройка WAF (Web Application Firewall):

    • Добавьте правило для блокировки HTTP-запросов, содержащих в теле или заголовках последовательности, характерные для эксплойта (например, подозрительные теги Type, ResourceDictionary, ObjectDataProvider).
    • Пример сигнатуры (Snort): alert tcp any any -> $HOME_NET any (msg:"CVE-2020-1147 - Potential .NET XML Deserialization Exploit"; flow:to_server,established; content:"ObjectDataProvider"; nocase; content:"MethodName"; nocase; sid:1000001; rev:1;)
  2. Ограничение прав приложений:

    • Запускайте уязвимые приложения (SharePoint, кастомные .NET-сервисы) под учетной записью с минимальными привилегиями (принцип наименьших прав).
  3. Аудит и контроль файлов:

    • Ограничьте или запретите загрузку файлов с расширениями .config, .resx, .xml в публичные разделы веб-приложений.
    • Включите аудит событий Windows для отслеживания создания/запуска исполняемых файлов в нестандартных местах (например, в временных каталогах веб-приложения).

Важно: Эти меры лишь снижают риск и не заменяют установку обновления.