Summary
MessagePack for Python (the `msgpack` package) has an out-of-bounds read in versions up to and including 1.2.0. If an `Unpacker` is reused after it has raised and caught an error, it can read out of bounds and crash the process with a segmentation fault. Code that streams untrusted MessagePack through a single long-lived `Unpacker` can therefore be crashed on demand, a denial-of-service risk.
How to fix it
- Upgrade `msgpack` to 1.2.1 or later, which fixes the out-of-bounds read.
- Until you can upgrade, never reuse an `Unpacker` after it has raised an error: discard it and create a new one.
- Treat any stream that has already hit an unpacking error as untrustworthy and stop reading from it.
How to avoid it in your code
- Create a fresh deserializer per message (or at least per error) when parsing untrusted binary input; do not carry a stateful parser across an error boundary.
- Put size and resource limits around deserialization of untrusted data, and isolate it so a crash cannot take down a shared process.
- Keep serialization libraries patched and subscribe to advisories for any format you parse at a network boundary.
References
Related vulnerabilities
All Supply chain →- HIGHCVE-2026-69244
AIOHTTP: Out-of-bounds heap read in C HTTP response parser error path (malformed chunked response)
- MEDIUMCVE-2026-55406
Buffa has a Use-After-Free in OwnedView via Unsound 'static Lifetime Promotion in Deref
- MEDIUMGHSA-3gjw-f78c-vvpw
tokio-postgres: Panic on a `DataRow` with fewer fields than columns allows denial of service
- MEDIUMGHSA-mc9m-6fm9-pghc#kcl-lib
Zoo Design Studio: Memory-corruption in memory handling of lib-kcl
- MEDIUMGHSA-mc9m-6fm9-pghc#zoo-kcl
Zoo Design Studio: Memory-corruption in memory handling of lib-kcl
- CRITICALCVE-2026-55211
surfio has an out-of-bounds read