Impact
MessagePack for Java deserializes .msgpack files and is vulnerable to a denial‑of‑service in versions before 0.9.11. An attacker can supply a valid EXT32 object whose declared payload length far exceeds the file size. The library lazily parses the header but later trusts that length when allocating a byte array. Because no upper bound is enforced, a small malicious file can force the library to allocate an enormous buffer, exhausting the JVM heap, triggering frequent garbage collection, or causing the process to terminate with an OutOfMemoryError.
Affected Systems
Vulnerable packages are msgpack:msgpack-java 0.9.10 and earlier. The affected components are the MessagePack‑Java serializer used during model loading, for example in machine‑learning inference services, model registries, CI/CD pipelines, and cloud‑based hosting platforms that consume .msgpack artifacts. The vulnerability exists in the core extension handling code of the library, specifically the ExtensionValue.getData() method after the lazy header parse.
Risk and Exploitability
CVSS base score is 7.5 with no malicious payload required beyond a syntactically valid .msgpack file, making exploitation trivial once an untrusted file can be processed. EPSS is less than 1 %, suggesting the vulnerability has not yet been widely exploited, and it is not catalogued in KEV. Because the attack occurs during deserialization, any application that imports or loads model files without validating the source is exposed. The risk is high for services that expose a file‑upload interface or fetch artifacts from external repositories; once triggered, the service becomes completely unavailable.
OpenCVE Enrichment
Github GHSA