Pin and verify the optional Logitech release asset - #112
Blackspirits wants to merge 2 commits into
Conversation
Blackspirits
left a comment
There was a problem hiding this comment.
Independent adversarial re-check: the original SubtitleEdit#13875 trust boundary is replaced with a pinned tag + exact asset + SHA-256 verification, and the optional third-party fetch/upload occurs only after the first-party release exists, so outage or digest mismatch cannot block Subtitle Edit's own release. The v1.3.1 .lplug4 metadata says MIT but the package tree does not carry the full license text, so the final revision also attaches the exact MIT notice from the same tagged source. Full CI #34796895786 passed restore, build and the complete suite on the first run: SeConvTests 475/2/0, LibUiLogicTests 873/0/0, LibSETests 2008/0/0, UITests 5151/9/0. Retry was not used. No blocker identified. Keep draft; no merge performed.
Purpose
Current-base security hardening/replacement for upstream PR SubtitleEdit#13875.
SubtitleEdit#13875 downloads the latest
.lplug4release from an external repository during Subtitle Edit's official release job and attaches it without a pinned tag or content digest. That makes the bytes distributed from the official Subtitle Edit release page depend on whatever third-party release is "latest" at release time.The plugin author explicitly called out this trust decision in SubtitleEdit#13875 and offered a fixed tag + SHA-256 approach.
Trust boundary
The currently published plugin release is:
muaz978/subtitleedit-logi-pluginv1.3.1SubtitleEdit_1_3_1.lplug4sha256:ec5c6b5e28bfe6ed8b8cb4a919c1bb7dd512100523fba811c3c6b10c32a8ea54The GitHub release reports
immutable: false, so the digest remains necessary even with a fixed tag.Change
Instead of fetching an unpinned third-party binary inside
create-release:attach-logi-pluginjob runs afterwards;v1.3.1and the exact asset name;continue-on-error: true, so an outage or integrity failure cannot block the first-party release;call-seconvcontinues to depend only oncreate-release, not on the third-party asset;Maintenance
Updating the bundled plugin becomes an explicit review action: bump the tag, exact asset name and SHA-256 together after reviewing the new plugin release. A later "latest" release can never silently enter an already-approved Subtitle Edit workflow.
Validation
c77c4b428649ce7030e6cf218b4d7c384b955232962dbac0fe92dbdc371c957f54b7008acd6b3334.lplug4does not itself contain the full MIT license text, so the workflow also attachesSubtitleEdit-LogiOptionsPlus-Plugin-LICENSE.txtwith the exact v1.3.1 license noticeAI assistance: ChatGPT was used to audit the third-party release-asset trust boundary and design a pinned, digest-verified post-release attachment flow.