Microsoft выпустила внеплановое исправление в .NET 10.0.7. Это обновление безопасности для критической уязвимости в ASP.NET Core (ядре). Проблема получила идентификатор CVE-2026-40372 и затрагивает механизм Data Protection — это подсистема, которая отвечает за защиту cookie аутентификации, antiforgery-токенов, временных данных и других служебных значений в приложениях. BleepingComputer пишет, что уязвимость может позволить неавторизованному атакующему подделывать данные аутентификации и повышать привилегии.
Microsoft обнуражила проблему после жалоб пользователей, у которых после апрельского Patch Tuesday и релиза .NET 10.0.6 начались сбои с расшифровкой данных в приложениях. Уже потом выяснилось, что это не просто дефект совместимости, а критическая ошибка в механизме проверки подлинности защищенных данных.
В заметках к релизу .NET 10.0.7 Microsoft объясняет, что в пакетах Microsoft.AspNetCore.DataProtection версий 10.0.0–10.0.6 появилась регрессия: код некорректно вычислял HMAC-тег проверки целостности и в ряде случаев отбрасывал результат проверки. Из-за этого злоумышленник мог сформировать поддельные полезные нагрузки, которые проходили проверки подлинности.
Microsoft указывает, что атакующий мог использовать поддельные данные для входа в систему от имени привилегированного пользователя в уязвимый промежуток времени. После этого приложение могло само выдать уже легитимно подписанные токены: например, токен обновления сессии, API-ключ, ссылку на сброс пароля или другой доверенный артефакт. Простая установка патча такие токены не отзывает. Для этого нужно ротировать key ring Data Protection — набор криптографических ключей, которыми приложение подписывает и шифрует защищенные данные.
BleepingComputer ссылается на advisory Microsoft и пишет, что последствия эксплуатации включают повышение привилегий до SYSTEM, раскрытие файлов и изменение данных. При этом влияния на доступность систем Microsoft не указывает. Для администраторов и разработчиков это означает невозможность закрыть уязвимость одним обновлением, если приложение уже успело поработать на уязвимой версии.
Исправление уже доступно. На странице загрузок .NET указаны ASP.NET Core Runtime 10.0.7, .NET Runtime 10.0.7 и Desktop Runtime 10.0.7. Отдельно Microsoft советует обновить пакет Microsoft.AspNetCore.DataProtection до версии 10.0.7, затем пересобрать и заново развернуть приложение.
Для команд, которые используют ASP.NET Core Data Protection, план действий такой: обновить пакет до 10.0.7, заново выкатить приложение, проверить, не выдавались ли подозрительные токены в период работы на 10.0.0–10.0.6, и при необходимости ротировать ключи Data Protection. Иначе уже выпущенные доверенные токены могут пережить установку патча.
В общем, это тот редкий случай, когда патч нужен срочно, но одного патча мало. Если приложение уже работало на уязвимой ветке, придется проверять следы эксплуатации и менять криптографические ключи, иначе старые токены останутся в игре.
Есть новость? Станьте автором.
Мы сотрудничаем с независимыми исследователями и специалистами по кибербезопасности. Отправьте нам новость или предложите статью на рассмотрение редакции.