The vulnerability lies in the ParquetSharp.DecimalConverter.ReadDecimal method, which is responsible for converting decimal values from the Parquet format. The core issue, as identified in commit 6824d297f9c7a798222fa6cfc693f0f954a2b08f, is the use of stackalloc to create a temporary buffer. The size of this buffer is determined by byteArray.Length, a value that is read from the Parquet file's metadata. A malicious actor can create a Parquet file with an unusually large typeWidth for a decimal column. When ParquetSharp attempts to read this column, it calls ReadDecimal, which then tries to allocate an excessively large buffer on the stack. This leads to a StackOverflowException, crashing the application. The patch mitigates this by introducing a size limit (MaxStackAllocSize). If the required buffer size is below this limit, it safely uses stackalloc; otherwise, it falls back to a heap-based allocation using ArrayPool<byte>.Shared.Rent(), which is not subject to the same size constraints as the stack. The WriteDecimal function was also patched as it contained the same vulnerable stackalloc pattern.