Description
KissFFT versions prior to the fix commit 1b083165 contain an integer overflow in kiss_fft_alloc() in kiss_fft.c on platforms where size_t is 32-bit. The nfft parameter is not validated before being used in a size calculation (sizeof(kiss_fft_cpx) * (nfft - 1)), which can wrap to a small value when nfft is large. As a result, malloc() allocates an undersized buffer and the subsequent twiddle-factor initialization loop writes nfft elements, causing a heap buffer overflow. This vulnerability only affects 32-bit architectures.
Problem types
CWE-190 Integer Overflow or Wraparound
Product status
Any version before commit 1b083165
Credits
Sajeeb Lohani of Bugcrowd Security Innovation Lab
References
github.com/...ommit/1b08316582049c3716154caefc0deab8758506e3
github.com/mborgerding/kissfft/issues/120
www.vulncheck.com/...t-integer-overflow-heap-buffer-overflow