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.