CVE-2017-11317

Telerik User Interface (UI) for ASP.NET AJAX

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

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

2022-04-11

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

Telerik.Web.UI in Progress Telerik UI for ASP.NET AJAX allows remote attackers to perform arbitrary file uploads or execute arbitrary code.

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

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

Уязвимость (CVE-2017-11317) в компоненте Telerik.Web.UI.dll позволяет удаленному злоумышленнику обойти проверки загружаемых файлов. В результате возможны: * Загрузка произвольных файлов (например, веб-шеллов) на сервер. * Выполнение произвольного кода в контексте приложения (чаще всего с правами учетной записи пула приложений IIS).

Атака эксплуатирует недостаточную валидацию в обработчике загрузки файлов RadAsyncUpload.

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

Основное решение — обновление библиотек Telerik UI for ASP.NET AJAX.

  1. Определите текущую версию. Найдите файл Telerik.Web.UI.dll в папках вашего веб-приложения (например, в bin\). Свойства файла (Details) должны содержать номер версии.
  2. Установите патч. Обновитесь до одной из исправленных версий:

    • Q2 2017 SP1 (версия 2017.2.621 или выше)
    • Q3 2017 (версия 2017.3.913 или выше)
    • Все последующие версии (2018 и новее) также содержат исправление.
  3. Процесс обновления:

    • Скачайте исправленную версию с официального сайта Telerik.
    • Замените файлы Telerik.Web.UI.dll и связанные с ними ресурсы в вашем проекте.
    • Пересоберите и повторно разверните приложение на сервере.
    • Обязательно перезапустите пул приложений (Application Pool) в IIS.

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

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

  1. Настройте правила WAF (Web Application Firewall):

    • Блокируйте HTTP-запросы, содержащие в теле или параметрах строки, характерные для эксплойта (например, Telerik.Web.UI в сочетании с RadAsyncUpload).
    • Пример правила для ModSecurity: bash SecRule REQUEST_BODY "@rx Telerik\.Web\.UI.*?RadAsyncUpload" \ "id:1001,phase:2,deny,status:403,msg:'CVE-2017-11317 Telerik UI Exploit Attempt'"
  2. Ограничьте обработку запросов в IIS:

    • В web.config приложения можно добавить правило URL-перезаписи для блокировки доступа к обработчику загрузки. Поместите в раздел <system.webServer><rewrite><rules>: xml <rule name="Block Telerik AsyncUpload" stopProcessing="true"> <match url=".*Telerik.Web.UI.WebResource.axd.*" /> <conditions> <add input="{QUERY_STRING}" pattern="type=rau" /> </conditions> <action type="AbortRequest" /> </rule>
  3. Примените строгие ограничения вручную:

    • В коде приложения (в файле Global.asax.cs в методе Application_BeginRequest) добавьте проверку и блокировку подозрительных запросов к WebResource.axd с параметром type=rau.
    • Убедитесь, что для папки, куда загружаются файлы (например, ~/App_Data/RadUploadTemp/), установлены минимальные права (только запись для учетной записи пула приложений и запрет на выполнение скриптов).