CVE-2024-48924 in MessagePack-CSharp
Zusammenfassung
von VulDB • 28.05.2026
### Auswirkungen
Wenn diese Bibliothek verwendet wird, um MessagePack-Daten aus einer nicht vertrauenswürdigen Quelle zu deserialisieren, besteht die Gefahr eines Denial-of-Service-Angriffs durch einen Angreifer, der Daten sendet, die speziell konstruiert sind, um Hash-Kollisionen zu erzeugen. Dies führt zu einem übermäßigen CPU-Verbrauch, der in keinem angemessenen Verhältnis zur Größe der zu deserialisierenden Daten steht.
Dies ähnelt [einer früheren Warnung](https://github.com/MessagePack-CSharp/MessagePack-CSharp/security/advisories/GHSA-7q36-4xx7-xcxf), die eine unzureichende Korrektur für den Teil der Schwachstelle im Zusammenhang mit Hash-Kollisionen bereitstellte.
### Patches
Die folgenden Schritte sind erforderlich, um dieses Risiko zu mindern.
1. Aktualisieren Sie die Bibliothek auf eine Version, die eine Korrektur enthält. 2. Überprüfen Sie die Schritte in [dieser früheren Warnung](https://github.com/MessagePack-CSharp/MessagePack-CSharp/security/advisories/GHSA-7q36-4xx7-xcxf), um sicherzustellen, dass Ihre Anwendung für den Umgang mit nicht vertrauenswürdigen Daten konfiguriert ist.
### Workarounds
Wenn ein Upgrade von MessagePack auf eine gepatchte Version für Sie keine Option ist, können Sie einen manuellen Workaround wie folgt anwenden:
1. Deklarieren Sie eine Klasse, die von `MessagePackSecurity` erbt. 2. Überschreiben Sie die Methode `GetHashCollisionResistantEqualityComparer`, um eine eigene kollisionsresistente Hash-Funktion bereitzustellen, und rufen Sie `base.GetHashCollisionResistantEqualityComparer()` nicht auf. 3. Konfigurieren Sie ein `MessagePackSerializerOptions`-Objekt mit einer Instanz Ihres abgeleiteten Typs, indem Sie `WithSecurity` auf einem vorhandenen Optionsobjekt aufrufen. 4. Verwenden Sie Ihr benutzerdefiniertes Optionsobjekt für alle Deserialisierungsvorgänge. Dies kann durch Festlegen der statischen Eigenschaft `MessagePackSerializer.DefaultOptions` erfolgen, wenn Sie Methoden aufrufen, die auf dieser Standardeigenschaft basieren, und/oder durch explizites Übergeben des Optionsobjekts an jede `Deserialize`-Methode.
### Referenzen
- Erfahren Sie mehr über bewährte Sicherheitspraktiken beim Lesen nicht vertrauenswürdiger Daten mit [MessagePack 1.x](https://github.com/MessagePack-CSharp/MessagePack-CSharp/tree/v1.x#security) oder [MessagePack 2.x](https://github.com/MessagePack-CSharp/MessagePack-CSharp#security).
- Die [Diskussion des .NET-Teams zu Schwachstellen durch Hash-Kollisionen ihrer `HashCode`-Struktur](https://github.com/GrabYourPitchforks/runtime/blob/threat_models/docs/design/security/System.HashCode.md).
### Weitere Informationen
Wenn Sie Fragen oder Kommentare zu dieser Warnung haben:
* [Starten Sie eine öffentliche Diskussion](https://github.com/MessagePack-CSharp/MessagePack-CSharp/discussions)
* [Senden Sie uns eine private E-Mail](mailto:[email protected])
If you want to get best quality of vulnerability data, you may have to visit VulDB.