В ASP.NET Core Data Protection нашли баг, который работал строго по плану. Managed-энкриптор честно вычислял HMAC-тег — но по неправильным байтам payload, а затем отбрасывал уже посчитанный хеш. Проверка целостности фактически ничего не проверяла.
Что это значит: атакующий без аутентификации мог подделать auth-cookie, antiforgery-токены, TempData, OIDC state и ссылки сброса пароля. На Windows-деплоях через скомпрометированную сессию часто открывается путь к правам SYSTEM. CVSS 9,1.
Кто под ударом: версии 10.0.0–10.0.6 пакета
Microsoft.AspNetCore.DataProtection. Особенно внимательно — Linux/macOS: там NuGet-копия подтягивается чаще, чем на Windows. На Windows уязвимости нет, только если приложение использует shared framework и не тянет NuGet-копию напрямую или транзитивно.Фикс — 10.0.7, вышел 21 апреля. Но одного обновления мало: токены, выпущенные за время работы уязвимой версии, остаются валидными. Без ротации DataProtection key ring вы закрываете будущее, но не прошлое.
Важно: флаг
--include-transitive при проверке зависимостей обязателен — пакет часто тянется транзитивно через Identity или Authentication.Cookies.
