Skip to content

fix[notask]: bump whisper-cpp from 1.7.5.1 to 1.7.6 to address CVE-2025-14569#1087

Closed
sharmaraju352 wants to merge 1 commit into
mainfrom
fix/whispercpp-bump-whisper-cpp-1.7.6
Closed

fix[notask]: bump whisper-cpp from 1.7.5.1 to 1.7.6 to address CVE-2025-14569#1087
sharmaraju352 wants to merge 1 commit into
mainfrom
fix/whispercpp-bump-whisper-cpp-1.7.6

Conversation

@sharmaraju352

Copy link
Copy Markdown
Contributor

Summary

  • Bump whisper-cpp vcpkg dependency from 1.7.5.1 to 1.7.6 (latest available in the private registry)
  • Adapt WhisperHandlers.cpp for API change: whisper_full_params.seed was removed in 1.7.6

Problem

CVE-2025-14569 documents a use-after-free vulnerability in whisper.cpp's read_audio_data function (CVSS 4.8). While the vulnerability is in CLI example code (not the libwhisper library we link), staying on an outdated version misses general stability and security fixes.

Solution

vcpkg.json:

- "version": "1.7.5.1"
+ "version": "1.7.6"

WhisperHandlers.cpp: The seed field was removed from whisper_full_params in 1.7.6. Updated the handler to a no-op:

{"seed",
 []([[maybe_unused]] whisper_full_params& params,
    [[maybe_unused]] const JSValueVariant& value) {
   // whisper_full_params.seed was removed in whisper.cpp >= 1.7.6
 }},

Note on Issue #7 (ONNX Runtime OOB read): The private vcpkg registry currently only has onnxruntime 1.21.0. The fix requires > 1.23.2 — this needs a registry-level port update and is tracked separately.

How was it tested?

  • Full rebuild: Clean bare-make generate && bare-make build && bare-make install with 1.7.6 — compiles and links successfully (OpenMP dependency resolved via libomp)
  • Unit tests (before & after): 24/24 pass, 90/90 assertions
  • SDK integration (before & after): whispercpp-filesystem.ts produces identical transcription output (Alice in Wonderland passage)

Made with Cursor

…25-14569

CVE-2025-14569 is a use-after-free in whisper.cpp read_audio_data
affecting versions up to 1.8.2. While the vulnerability is in the CLI
examples (not the library we link), upgrading to the latest available
registry version (1.7.6) picks up general stability and security fixes.

The seed field was removed from whisper_full_params in 1.7.6, so the
seed handler is updated to a no-op for forward compatibility.

Made-with: Cursor
@sharmaraju352 sharmaraju352 requested review from a team as code owners March 23, 2026 11:02
params.seed = seed;
[]([[maybe_unused]] whisper_full_params& params,
[[maybe_unused]] const JSValueVariant& value) {
// whisper_full_params.seed was removed in whisper.cpp >= 1.7.6

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not correct as seed is not present in any upstream whisper version but instead in our fork

{
"name": "whisper-cpp",
"version": "1.7.5.1"
"version": "1.7.6"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The correct way to bump version in whisper is by updating qvac-ext-lib-whisper.cpp as we discussed in call. I think we can close this PR for now and bump the whisper version directly to 1.8.* according to the pitch

@github-actions

github-actions Bot commented Mar 23, 2026

Copy link
Copy Markdown
Contributor

Tier-based Approval Status

**PR Tier:** TIER1

**Current Status:** ❌ PENDING

**Requirements:**
- 1 Team Member approval ❌ (0/1)
- 1 Team Lead OR Management approval ❌ (0/1)



---
*This comment is automatically updated when reviews change.*

@ogad-tether ogad-tether left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I do not think we can silently turn into a no-op. Existing tests and callers already pass under , so this changes reproducibility behavior without any API migration. I would either map that user-facing field onto the still-supported internal seed path, or reject it explicitly and update the docs/tests/callers in the same PR.

@ogad-tether

Copy link
Copy Markdown
Contributor

Clarifying my review summary: the user-facing field I am concerned about is whisperConfig.seed. Existing tests and callers already set seed there, so turning that path into a silent no-op would be a behavior regression unless the field is remapped or rejected explicitly.

@ogad-tether

Copy link
Copy Markdown
Contributor

whisperConfig.seed becomes a silent no-op, which looks like a behavior regression because existing callers/tests already use that field.

@sharmaraju352 sharmaraju352 deleted the fix/whispercpp-bump-whisper-cpp-1.7.6 branch March 30, 2026 12:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants