Advisories

KissFFT Integer Overflow Heap Buffer Overflow via kiss_fft_alloc

Go Back
severity
high
date
Affecting
  • mborgerding/kissfft < commit 1b083165

CWE
  • CWE-190 Integer Overflow or Wraparound
CVSS
8.6
CVSS V4 Vector
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Credit
Sajeeb Lohani of Bugcrowd Security Innovation Lab
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.