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.

Ответственный

GitHub M

Резервировать

10.10.2024

Раскрытие

18.10.2024

Модерация

принято

Вход

VDB-280864

EPSS

0.00371

KEV

Нет

Деятельности

Очень низкий

Источники

Want to stay up to date on a daily basis?

Enable the mail alert feature now!