Fail closed on unverified TTS voice packs - #80
Draft
Blackspirits wants to merge 3 commits into
Draft
Conversation
Blackspirits
commented
Sep 13, 2026
Blackspirits
left a comment
Owner
Author
There was a problem hiding this comment.
Independent adversarial re-check: all eight current voice-pack catalog digests were reconfirmed against the two official SubtitleEdit/support-files releases; missing SHA-256 and non-seekable streams now fail before HTTP, empty/tampered payloads fail before InstallPack, and verified streams are rewound for the existing ZIP import flow. Full CI run #34760450344 passed restore/build/full tests on the first run with no retry. No blocker identified. Keep draft; no merge/promotion performed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The new TTS Voice Manager downloads catalogued voice-pack ZIPs and verifies SHA-256 when a digest is present, but the downloader currently returns successfully when the digest is empty or the downloaded stream is empty. That turns a future catalog omission into an unauthenticated install path.
This change:
VoicePackcontract comment to make SHA-256 mandatoryValidation
sha256:asset digests published bySubtitleEdit/support-filesreleasetts-voice-packs-2026-09; all seven matchvoices.zipasset digest published bySubtitleEdit/support-filesreleaseqwen3-tts-cpp-2026-5; it matchesInstallPackafterDownloadPackcompletes successfully, so integrity failure blocks extraction/import7c8aaudit branch onto the current review base9c0f6bdd77bc12bafff66f748b97c8b3d3a2d5b7; the two intervening commits modify onlyTurkish.jsonand do not touch the Voice Manager/voice-pack pathBase is upstream
4771a22765acdbdf5bd5b8a1c02f378c15e73ac9.AI assistance: ChatGPT was used to audit the newly introduced Voice Manager download/install path, verify all current catalog digests against official support-files release metadata, strengthen fail-closed verification, and add focused regression coverage.