---
id: "CVE-2026-114613"
kind: "vulnerability"
aliases: ["CVE-2026-114613"]
title: "msgpack-python: rejected map keys leak memory, enabling denial of service"
severity: "high"
cvss: 7.5
epss: 0.00339
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["api-servers", "msgpack", "package", "python"]
not_affected_if: ["pure-python-fallback", "trusted-input-only"]
published_at: "2026-10-22T19:17:37+00:00"
first_seen_at: "2026-10-23T21:57:31+00:00"
updated_at: "2026-10-25T03:15:09+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-114613", "first_seen_at": "2026-10-23T21:57:31+00:00"}, {"source": "epss", "url": "https://api.first.org/data/v1/epss?cve=CVE-2026-114613", "first_seen_at": "2026-10-24T07:15:51+00:00"}]
---

# msgpack-python: rejected map keys leak memory, enabling denial of service

Prior to 1.2.3, the msgpack-python C extension leaks a decoded map value when strict_map_key=True rejects a key, which is the default. Repeated malformed MessagePack input makes process memory grow without bound, causing denial of service in applications that deserialize attacker-controlled data.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Run `python -c "import msgpack; print(msgpack.version)"` and compare against `1.2.3`
- Check lockfiles (requirements.txt, poetry.lock, uv.lock) for the msgpack pin
- Confirm whether the C extension is in use: `python -c "import msgpack._cmsgpack"` succeeds when it is installed

## Fix

- Upgrade the msgpack Python package to `1.2.3` or later
- Rebuild and redeploy containers or virtualenvs so the new version is actually loaded

## Timeline

- 2026-10-23T21:57:31+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-114613
- 2026-10-24T07:15:51+00:00 epss https://api.first.org/data/v1/epss?cve=CVE-2026-114613

## From the sources

MessagePack is the serializer implementation for Python msgpack.org. Prior to 1.2.3, the msgpack-python C extension (msgpack._cmsgpack) leaks a decoded map value when deserialization rejects a key with strict_map_key=True (the default). Repeated malformed inputs can cause unbounded process memory growth and denial of service in applications that deserialize attacker-controlled MessagePack data. Both unpackb() and the streaming Unpacker API are affected. The pure-Python fallback does not exhibit this leak in the reported tests. This issue is fixed in version 1.2.3.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
