Severity by source
CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N/E:P/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Local attack with low privileges, no user interaction, low confidentiality impact, no integrity or availability impact.
Primary rating from Vendor (VulDB).
CVSS VectorVendor: VulDB
Lifecycle Timeline
4DescriptionCVE.org
A vulnerability has been found in ggml-org whisper.cpp 1.8.4-58. This impacts the function log_mel_spectrogram of the file src/whisper.cpp. The manipulation leads to out-of-bounds read. The attack needs to be performed locally. The pull request to fix this issue awaits acceptance.
AnalysisAI
Local attackers with low privileges can trigger an out-of-bounds read in whisper.cpp 1.8.4-58 by supplying a very short audio sample to the log_mel_spectrogram function. This heap read overflow may leak sensitive information but does not allow code execution or system compromise. No public exploit or active exploitation has been reported.
Technical ContextAI
The vulnerability resides in the log_mel_spectrogram function within src/whisper.cpp, which performs reflective padding on input audio samples before computing a mel spectrogram. The code reads samples[1..stage_2_pad] without checking that the input length (n_samples) meets the minimum requirement (stage_2_pad + 1, which equals WHISPER_N_FFT/2 + 1 = 201 samples for typical FFT sizes). This omission allows an out-of-bounds read (CWE-125) when processing audio shorter than 201 samples. The CPE cpe:2.3:a:ggml-org:whisper.cpp:*:*:*:*:*:*:*:* indicates all versions are potentially affected. The attack vector is local (AV:L), requires low privileges (PR:L), and no user interaction (UI:N), but only low confidentiality impact is possible (VC:L).
RemediationAI
The primary fix is to apply the changes from pull request #3925 (https://github.com/ggml-org/whisper.cpp/pull/3925) pending its merge into the main branch. This adds a length check that rejects audio samples shorter than stage_2_pad + 1 (201 samples for standard FFT). Until a patched release is made, users can mitigate the issue by ensuring that any audio input to whisper.cpp has a minimum length of 201 samples; this can be enforced at the application level by padding short inputs with zeros or dropping them. The trade-off is that extremely short audio (e.g., sub-201-sample clips) will be rejected, which may affect applications that process bursts of very short audio segments. No other workaround for the root cause exists.
More in Whisper Cpp
View allNull pointer dereference in whisper.cpp up to version 1.8.2 allows a local authenticated attacker to crash the applicati
Local denial of service in ggml-org whisper.cpp 95ea8f9b via reachable assertion in ggml_ftype_to_ggml_type function. A
Same weakness CWE-125 – Out-of-bounds Read
View allSame technique Buffer Overflow
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-49189
GHSA-pw32-mv59-2r66