CVE-2023-29492
Novi Survey Novi Survey
2023-04-13
Novi Survey contains an insecure deserialization vulnerability that allows remote attackers to execute code on the server in the context of the service account.
Технический анализ и план устранения
Суть уязвимости
CVE-2023-29492 представляет собой критическую уязвимость небезопасной десериализации данных в приложении Novi Survey. Проблема возникает из-за недостаточной проверки входных данных, которые передаются в механизмы десериализации .NET.
Удаленный злоумышленник, не имеющий прав доступа (unauthenticated), может отправить специально сформированный сериализованный объект в HTTP-запросе. При обработке этого объекта сервером происходит выполнение произвольного кода (RCE) в контексте учетной записи, под которой запущен сервис (обычно NetworkService или IIS AppPool). Это позволяет атакующему полностью скомпрометировать сервер, установить вредоносное ПО или получить доступ к базе данных опросов.
Как исправить
Основным и рекомендуемым способом устранения уязвимости является обновление программного обеспечения до версии, в которой механизмы десериализации были защищены.
- Определите текущую версию Novi Survey через панель администратора или файл
web.config. - Скачайте актуальный патч или обновленный установщик с официального портала поддержки Novi Survey (версия 8.11 или выше).
- Создайте резервную копию базы данных и файлов приложения.
- Выполните обновление, следуя стандартной процедуре инсталляции поверх существующей версии.
- Перезапустите IIS для применения изменений:
iisreset /restart
Временные меры
Если немедленное обновление невозможно, необходимо минимизировать риски с помощью следующих шагов:
- Ограничьте права доступа сервисной учетной записи, под которой работает пул приложений Novi Survey, используя принцип наименьших привилегий.
- Настройте правила Web Application Firewall (WAF) для блокировки подозрительных POST-запросов, содержащих признаки сериализованных объектов .NET (например, заголовки или тела запросов с базовой кодировкой Base64, начинающейся с
AAEAAAD/////). - Временно ограничьте доступ к административной панели и API приложения только для доверенных IP-адресов.
- Проверьте настройки MachineKey в
web.config. Убедитесь, что ключи валидации и расшифровки не являются значениями по умолчанию и надежно защищены:
[Reflection.Assembly]::LoadWithPartialName("System.Web")
- Настройте аудит процессов на сервере для обнаружения аномальных дочерних процессов, запускаемых из-под
w3wp.exe(например,cmd.exe,powershell.exe,whoami.exe).