CVE-2025-53690

Sitecore Multiple Products

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

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

2025-09-04

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

Sitecore Experience Manager (XM), Experience Platform (XP), Experience Commerce (XC), and Managed Cloud contain a deserialization of untrusted data vulnerability involving the use of default machine keys. This flaw allows attackers to exploit exposed ASP.NET machine keys to achieve remote code execution.

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

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

  • Уязвимость CVE-2025-53690 относится к классу Insecure Deserialization (небезопасная десериализация) и затрагивает продукты Sitecore (XM, XP, XC и Managed Cloud).
  • Корень проблемы кроется в использовании стандартных (default) или предсказуемых значений machineKey в конфигурации ASP.NET.
  • Параметр machineKey используется веб-сервером IIS для шифрования и проверки целостности данных, таких как ViewState, токены сессий и cookie-файлы аутентификации.
  • Поскольку стандартные ключи известны или могут быть извлечены, злоумышленник получает возможность подделать криптографическую подпись.
  • Используя известный ключ, атакующий может создать вредоносный сериализованный payload (например, с помощью YSoSerial.net), подписать его и отправить на уязвимый эндпоинт.
  • При обработке запроса сервер успешно проверяет подпись и десериализует данные, что приводит к удаленному выполнению произвольного кода (RCE) в контексте пула приложений IIS.

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

  • Главная задача — отказаться от использования стандартных ключей и сгенерировать уникальные криптографически стойкие значения для каждого окружения.
  • Сгенерируйте новый machineKey с помощью PowerShell. Выполните следующий скрипт для получения готового XML-тега:
$validationKey = [System.Security.Cryptography.RandomNumberGenerator]::GetBytes(64)
$decryptionKey = [System.Security.Cryptography.RandomNumberGenerator]::GetBytes(32)
$valHex = [System.BitConverter]::ToString($validationKey).Replace("-", "")
$decHex = [System.BitConverter]::ToString($decryptionKey).Replace("-", "")
Write-Output "<machineKey validationKey=`"$valHex`" decryptionKey=`"$decHex`" validation=`"SHA1`" decryption=`"AES`" />"

  • Откройте файл web.config в корневой директории вашего приложения Sitecore.
  • Найдите раздел <system.web>.
  • Замените существующий тег <machineKey> на сгенерированный на предыдущем шаге. Если тег отсутствует, добавьте его внутрь <system.web>.
  • Убедитесь, что новые ключи синхронизированы между всеми серверами в рамках одной фермы (Content Delivery, Content Management и т.д.), иначе возникнут проблемы с авторизацией и ViewState.
  • Перезапустите пул приложений IIS для применения изменений:
Restart-WebAppPool -Name "SitecoreAppPoolName"

  • Обязательно установите официальный security-патч или кумулятивный хотфикс от Sitecore, соответствующий вашей версии продукта, так как вендор может включать дополнительные проверки целостности на уровне кода.

Временные меры

  • Если немедленная замена ключей или установка патча невозможна в production-среде, внедрите следующие компенсирующие контроли:
  • Настройте правила Web Application Firewall (WAF) для инспекции входящего трафика на наличие известных сигнатур сериализованных объектов .NET (например, блокировка запросов, содержащих магические байты AAEAAAD///// в Base64, характерные для BinaryFormatter).
  • Ограничьте сетевой доступ к административным интерфейсам Sitecore (например, /sitecore/login) и служебным API на уровне брандмауэра, разрешив подключения только с доверенных корпоративных IP-адресов или через VPN.
  • Внедрите строгий принцип наименьших привилегий (Least Privilege) для учетной записи, под которой работает рабочий процесс IIS (w3wp.exe). Запретите этому пользователю запуск командных оболочек (cmd.exe, powershell.exe) и доступ к критичным системным директориям.
  • Настройте правила в EDR/SIEM для мониторинга аномальной активности дочерних процессов, порождаемых процессом w3wp.exe, что является типичным индикатором успешной эксплуатации RCE.