The vulnerability is an out-of-bounds read in the LZ4 decompression logic, identified as CWE-125. The root cause is that the low-level, unsafe decompression functions (LZ4_uncompress_32 and LZ4_uncompress_64) did not receive the length of the compressed input buffer. As a result, they could be manipulated by a crafted payload to read past the buffer's boundary when parsing token and length fields, leading to a process crash (Denial of Service) or unintended memory disclosure.
The patch addresses this by modifying the public-facing MessagePack.LZ4.LZ4Codec.Decode function to pass the input buffer's length to the internal LZ4_uncompress_32 and LZ4_uncompress_64 functions. These internal functions were updated to accept the new length parameter and use it to perform explicit bounds checks before every read from the input buffer, thus preventing the out-of-bounds access. Any runtime profile capturing the exploitation of this vulnerability would show calls to these functions.