CVE-2017-11357
Telerik User Interface (UI) for ASP.NET AJAX
2023-01-26
Telerik UI for ASP.NET AJAX contains an insecure direct object reference vulnerability in RadAsyncUpload that can result in file uploads in a limited location and/or remote code execution.
Технический анализ и план устранения
Суть уязвимости
CVE-2017-11357 представляет собой критическую уязвимость в компоненте RadAsyncUpload, входящем в состав Telerik UI for ASP.NET AJAX. Проблема связана с небезопасной реализацией обработки параметров при загрузке файлов (Insecure Direct Object Reference).
Из-за недостаточной проверки криптографических подписей и использования слабого алгоритма шифрования по умолчанию, злоумышленник может подделать параметры запроса. Это позволяет: 1. Обходить механизмы аутентификации при загрузке файлов. 2. Загружать произвольные файлы в произвольные директории в пределах веб-приложения. 3. В сочетании с другими уязвимостями (например, CVE-2017-11317) выполнять произвольный код (RCE) на сервере.
Как исправить
Основным и наиболее надежным способом устранения является обновление библиотеки Telerik.Web.UI.dll до версии, в которой механизмы защиты были пересмотрены.
- Обновите Telerik UI for ASP.NET AJAX до версии R2 2017 SP2 (2017.2.711) или выше.
- После обновления убедитесь, что в файле
web.configустановлены уникальные ключи для шифрования параметров. Сгенерируйте длинные случайные строки для следующих параметров:
<appSettings>
<add key="Telerik.Web.UI.AsyncUpload.ConfigurationEncryptionKey" value="ВАШ_УНИКАЛЬНЫЙ_ДЛИННЫЙ_КЛЮЧ" />
<add key="Telerik.Upload.ConfigurationHashKey" value="ВАШ_УНИКАЛЬНЫЙ_ДЛИННЫЙ_КЛЮЧ" />
</appSettings>
- Если вы используете .NET 4.5 и выше, принудительно установите использование криптографических алгоритмов нового поколения:
<appSettings>
<add key="Telerik.AsyncUpload.UseStrongEncryption" value="true" />
</appSettings>
Временные меры
Если немедленное обновление невозможно, примените следующие защитные меры для снижения риска:
- Полностью отключите компонент RadAsyncUpload, если он не используется в приложении, удалив соответствующий обработчик из
web.config:
<system.webServer>
<handlers>
<remove name="Telerik_Web_UI_WebResource_axd" />
<remove name="Telerik_Web_UI_DialogHandler_aspx" />
</handlers>
</system.webServer>
-
Если компонент необходим, ограничьте типы разрешенных к загрузке файлов на уровне кода (AllowedFileExtensions), однако помните, что без патча это ограничение можно попытаться обойти.
-
Настройте правила на Web Application Firewall (WAF) для блокировки подозрительных POST-запросов к
Telerik.Web.UI.WebResource.axd?type=rau. -
Проверьте права доступа файловой системы: у учетной записи, от которой запущен пул приложений IIS, должны быть минимально необходимые права (запрет на исполнение в директориях, куда разрешена загрузка).