CVE-2024-48924 in MessagePack-CSharpinformazioni

Riassunto

di VulDB • 16/06/2026

### Impatto

Quando questa libreria viene utilizzata per deserializzare dati MessagePack provenienti da una fonte non attendibile, sussiste il rischio di un attacco di negazione del servizio (DoS) da parte di un attaccante che invia dati appositamente costruiti per generare collisioni di hash, causando un elevato consumo di CPU sproporzionato rispetto alla dimensione dei dati in fase di deserializzazione.

Ciò è simile a [una precedente advisory](https://github.com/MessagePack-CSharp/MessagePack-CSharp/security/advisories/GHSA-7q36-4xx7-xcxf), che ha fornito una correzione inadeguata per la parte relativa alle collisioni di hash della vulnerabilità.

### Patch

Sono necessari i seguenti passaggi per mitigare questo rischio.

1. Aggiornare a una versione della libreria in cui è disponibile una correzione. 2. Rivedere i passaggi indicati in [questa precedente advisory](https://github.com/MessagePack-CSharp/MessagePack-CSharp/security/advisories/GHSA-7q36-4xx7-xcxf) per assicurarsi che l'applicazione sia configurata per gestire dati non attendibili.

### Workaround

Se l'aggiornamento di MessagePack a una versione patchata non è un'opzione, è possibile applicare un workaround manuale come segue:

1. Dichiarare una classe che eredita da `MessagePackSecurity`. 2. Sovrascrivere il metodo `GetHashCollisionResistantEqualityComparer` per fornire una funzione di hash resistente alle collisioni personalizzata ed evitare di chiamare `base.GetHashCollisionResistantEqualityComparer()`. 3. Configurare un oggetto `MessagePackSerializerOptions` con un'istanza del tipo derivato chiamando `WithSecurity` su un oggetto opzioni esistente. 4. Utilizzare l'oggetto opzioni personalizzato per tutte le operazioni di deserializzazione. Ciò può avvenire impostando la proprietà statica `MessagePackSerializer.DefaultOptions`, se si chiamano metodi che si basano su questa proprietà predefinita, e/o passando esplicitamente l'oggetto opzioni a qualsiasi metodo `Deserialize`.

### Riferimenti

- Ulteriori informazioni sulle migliori pratiche di sicurezza quando si leggono dati non attendibili con [MessagePack 1.x](https://github.com/MessagePack-CSharp/MessagePack-CSharp/tree/v1.x#security) o [MessagePack 2.x](https://github.com/MessagePack-CSharp/MessagePack-CSharp#security).
- La [discussione del team .NET sulle vulnerabilità delle collisioni di hash della loro struct `HashCode`](https://github.com/GrabYourPitchforks/runtime/blob/threat_models/docs/design/security/System.HashCode.md).

### Per ulteriori informazioni

Se si hanno domande o commenti riguardo a questa advisory:

* [Avviare una discussione pubblica](https://github.com/MessagePack-CSharp/MessagePack-CSharp/discussions)
* [Inviarci un'email privatamente](mailto:[email protected])

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Responsabile

GitHub M

Prenotare

10/10/2024

Divulgazione

18/10/2024

Moderazione

accettato

CPE

pronto

EPSS

0.00371

KEV

no

Attività

molto basso

Fonti

Want to know what is going to be exploited?

We predict KEV entries!