Submit #1004713: Praat  Praat commit b753a09ba0f4c2385735f08dacd2086088094d69 Out-of-bounds Writeinfo

TitelPraat  Praat commit b753a09ba0f4c2385735f08dacd2086088094d69 Out-of-bounds Write
BeschreibungA vulnerability was found in Praat commit b753a09ba0f4c2385735f08dacd2086088094d69 and classified as high 7.8. Affected is the whisper_model_load function of the vendored whisper.cpp model loader component (external/whispercpp/whisper.cpp:1874 and 1883-1887). The manipulation of the argument n_dims of a legacy-GGML Whisper model tensor record leads to an out-of-bounds write on the stack. User interaction is required because the victim must install a crafted community Whisper model file into <preferences folder>/models/whispercpp/ (the location Praat's own dialog instructs) and run the "Create SpeechRecognizer..." command on it. Technical Details - Affected file/function: external/whispercpp/whisper.cpp / whisper_model_load() - Vulnerable parameter: int32 n_dims field of a per-tensor record, read raw from the model file at whisper.cpp:1874 and used as the loop bound that writes ne[n_dims] int32 values into the fixed four-element stack array int32_t ne[4] (whisper.cpp:1883-1887); no range check exists anywhere in the translation unit (upstream whisper.cpp added "if (n_dims < 0 || n_dims > 4)" at its line 1894 - the vendored copy tracks ~v1.8.3 and never picked it up) - Attack vector: Local (the model file typically arrives from a model-sharing site, but the vulnerable operation is a local user opening a local file) - Privileges required: None - Trigger condition: a legacy .bin model whose tensor record declares n_dims = 1024; AddressSanitizer reports stack-buffer-overflow, WRITE of size 4, one byte past 'ne' (line 1883) at frame offset 2800 of whisper_model_load; a negative control differing in exactly that one int32 produces zero sanitizer reports. Memory corruption was demonstrated under AddressSanitizer in an instrumented build; code execution was not demonstrated and the shipped build keeps -fstack-protector-strong. Impact - Confidentiality: High (attacker-controlled stack write primitive) - Integrity: High (attacker-chosen bytes written past the array) - Availability: High (process aborts inside the loader) CVSS v3.1 Score: 7.8 (High) Vector: CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H Timeline - Discovered: 2026-09-20 - Vendor notified: [pending] - Patch released: [pending] - Public disclosure: [pending] Countermeasure Add upstream's guard (if (n_dims < 0 || n_dims > 4) return false;) immediately after read_safe(loader, n_dims) at whisper.cpp:1874, re-sync the vendored external/whispercpp/ tree with current upstream whisper.cpp, and fix the same unbounded pattern in the Silero VAD loader at whisper.cpp:5036-5050. Until patched, do not install third-party .bin Whisper models into the Praat preferences folder.
Quelle⚠️ https://github.com/praat/praat.github.io/issues/3348
Benutzer
 Dem00000 (UID 98563)
Einreichung29.09.2026 05:40 (vor 16 Tagen)
Moderieren14.10.2026 16:13 (15 days later)
StatusAkzeptiert
VulDB Eintrag419892 [Praat bis 7.0.02 Model Loader whisper.cpp whisper_model_load n_dims Pufferüberlauf]
Punkte20

Want to know what is going to be exploited?

We predict KEV entries!