CVE-2024-48924 in MessagePack-CSharpinfo

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.

Zuständig

GitHub M

Reservieren

10.10.2024

Veröffentlichung

18.10.2024

Moderieren

akzeptiert

Eintrag

VDB-280864

CPE

bereit

EPSS

0.00371

KEV

nein

Aktivitäten

very low

Quellen

Interested in the pricing of exploits?

See the underground prices here!