CVE-2025-30406

Gladinet CentreStack

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

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

2025-04-08

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

Gladinet CentreStack and Triofox contains a use of hard-coded cryptographic key vulnerability in the way that the application manages keys used for ViewState integrity verification. Successful exploitation allows an attacker to forge ViewState payloads for server-side deserialization, allowing for remote code execution.

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

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

Уязвимость CVE-2025-30406 связана с использованием жестко заданного (hard-coded) криптографического ключа в механизме проверки целостности ViewState в продуктах Gladinet CentreStack и Triofox.

ViewState — это механизм ASP.NET для сохранения состояния страницы. Если ключ валидации (validationKey) известен злоумышленнику, он может подписать произвольный сериализованный объект. При передаче такого объекта на сервер происходит процесс десериализации, что в данном случае приводит к удаленному выполнению произвольного кода (RCE) с правами учетной записи, под которой запущен пул приложений IIS.

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

Основным способом устранения является обновление программного обеспечения до версий, где статические ключи заменены на уникальные, генерируемые при установке.

  1. Скачайте актуальный патч или сборку с официального портала поддержки Gladinet.
  2. Выполните резервное копирование конфигурационных файлов web.config во всех директориях установки.
  3. Установите обновление.
  4. После обновления убедитесь, что в файлах web.config секция <machineKey> либо отсутствует (используется автоматическая генерация), либо содержит уникальные криптографически стойкие значения.

Для принудительной генерации нового ключа через PowerShell (если обновление не сделало это автоматически):

[Reflection.Assembly]::LoadWithPartialName("System.Web") | Out-Null
$gen = New-Object System.Web.Configuration.MachineKeySection
$validationKey = [byte[]]::new(64)
$decryptionKey = [byte[]]::new(32)
[System.Security.Cryptography.RandomNumberGenerator]::Create().GetBytes($validationKey)
[System.Security.Cryptography.RandomNumberGenerator]::Create().GetBytes($decryptionKey)
$vKey = [System.BitConverter]::ToString($validationKey).Replace("-", "")
$dKey = [System.BitConverter]::ToString($decryptionKey).Replace("-", "")
Write-Host "Validation Key: $vKey"
Write-Host "Decryption Key: $dKey"

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

Если немедленное обновление невозможно, необходимо вручную изменить скомпрометированные ключи в конфигурации IIS.

  1. Откройте файл web.config в корневом каталоге приложения CentreStack.
  2. Найдите секцию <system.web>.
  3. Добавьте или измените элемент <machineKey>, указав уникальные значения и запретив использование статических ключей:
<system.web>
   <machineKey validationKey="AutoGenerate,IsolateApps" decryptionKey="AutoGenerate,IsolateApps" validation="SHA1" decryption="AES" />
</system.web>

  1. Перезапустите пул приложений через командную строку:
Restart-WebAppPool -Name "CentreStack"

  1. Настройте WAF (Web Application Firewall) на блокировку подозрительных POST-запросов, содержащих аномально большие или нехарактерные данные в параметре __VIEWSTATE.