The vulnerability exists in the ParquetSharp library, where the DecimalConverter.ReadDecimal function uses stackalloc to allocate memory on the stack. The size of this allocation is based on the Length of a ByteArray object, which is derived from the metadata of a Parquet file. An attacker can craft a malicious Parquet file with a decimal column that specifies an excessively large width. When ParquetSharp attempts to read this file, it calls ReadDecimal, which in turn attempts a huge stack allocation. This allocation exceeds the available stack space, causing a stack overflow and leading to a denial of service by crashing the process. The patch, identified in commit 6824d297f9c7a798222fa6cfc693f0f954a2b08f, mitigates this by checking the requested allocation size. If the size exceeds a predefined threshold (MaxStackAllocSize), the allocation is performed on the heap using ArrayPool<byte>.Shared.Rent() instead of the stack, thus preventing the overflow. The same vulnerability pattern and fix were also applied to the DecimalConverter.WriteDecimal function.