CVE-2024-48924 in MessagePack-CSharp
Сводка
по VulDB • 28.05.2026
### Влияние
При использовании этой библиотеки для десериализации данных MessagePack из ненадежного источника существует риск атаки на отказ в обслуживании (DoS) со стороны злоумышленника, который отправляет специально сформированные данные, приводящие к коллизиям хеш-функций. Это вызывает чрезмерное потребление ресурсов процессора (CPU), непропорциональное размеру десериализуемых данных.
Эта проблема аналогична [предыдущему уведомлению](https://github.com/MessagePack-CSharp/MessagePack-CSharp/security/advisories/GHSA-7q36-4xx7-xcxf), в котором было предложено недостаточное исправление для части уязвимости, связанной с коллизиями хеш-функций.
### Патчи
Для снижения этого риска необходимо выполнить следующие шаги.
1. Обновите библиотеку до версии, в которой доступно исправление. 2. Ознакомьтесь с шагами, описанными в [этом предыдущем уведомлении](https://github.com/MessagePack-CSharp/MessagePack-CSharp/security/advisories/GHSA-7q36-4xx7-xcxf), чтобы убедиться, что ваше приложение правильно настроено для работы с ненадежными данными.
### Временные решения
Если обновление MessagePack до исправленной версии невозможно, вы можете применить ручное временное решение следующим образом:
1. Объявите класс, наследующийся от `MessagePackSecurity`. 2. Переопределите метод `GetHashCollisionResistantEqualityComparer`, чтобы предоставить собственную хеш-функцию, устойчивую к коллизиям, и избегайте вызова `base.GetHashCollisionResistantEqualityComparer()`. 3. Настройте объект `MessagePackSerializerOptions` с экземпляром вашего производного типа, вызвав метод `WithSecurity` для существующего объекта параметров. 4. Используйте ваш пользовательский объект параметров для всех операций десериализации. Это можно сделать, установив статическое свойство `MessagePackSerializer.DefaultOptions`, если вы вызываете методы, полагающиеся на это свойство по умолчанию, и/или передавая объект параметров явно в любой метод `Deserialize`.
### Ссылки
- Узнайте больше о лучших практиках безопасности при чтении ненадежных данных с помощью [MessagePack 1.x](https://github.com/MessagePack-CSharp/MessagePack-CSharp/tree/v1.x#security) или [MessagePack 2.x](https://github.com/MessagePack-CSharp/MessagePack-CSharp#security).
- [Обсуждение команды .NET](https://github.com/GrabYourPitchforks/runtime/blob/threat_models/docs/design/security/System.HashCode.md) об уязвимостях коллизий хеш-функций в их структуре `HashCode`.
### Дополнительная информация
Если у вас есть вопросы или комментарии по этому уведомлению:
* [Начать публичное обсуждение](https://github.com/MessagePack-CSharp/MessagePack-CSharp/discussions)
* [Написать нам в частном порядке](mailto:[email protected])
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.