The vulnerability is an unbounded memory allocation issue in the Zserio Java runtime library. Several functions responsible for deserializing data from a bitstream are affected. These functions read a size or length value from the stream and directly use it to allocate memory for arrays or buffers without proper validation. An attacker can craft a malicious payload with a large size value in just a few bytes, tricking the deserializer into attempting a massive memory allocation (e.g., up to 16 GB). This leads to an Out-Of-Memory (OOM) error, causing a Denial of Service (DoS) by crashing the application. The provided patch addresses this by adding checks in the vulnerable functions. Before allocating memory, the patched code now verifies if the requested size is consistent with the number of bytes remaining in the input stream. If the claimed size exceeds the available data, an IOException is thrown, preventing the excessive memory allocation.