fix(qt): update py7zr to 1.1.3, closing six advisories the toolchain carried - #184
Merged
Conversation
…carried Locking the Qt closure made it visible to dependency review and OSV for the first time, and both failed on py7zr==1.0.0: GHSA-q6rc-2cgv-63h7 arbitrary file write GHSA-gjrg-mpp7-g774 decompression bomb (also PYSEC-2026-2972) GHSA-h4gh-22qq-72r7 O(n^2) complexity DoS (also PYSEC-2026-2973) PYSEC-2026-2974 All fixed in 1.1.3. The exposure was not introduced by locking. `uvx --with 'py7zr==1.0.0'` installed exactly that version, and an arbitrary-file-write flaw in the library aqtinstall uses to unpack Qt archives is the one that matters most. What changed is that an uninventoried closure cannot be scanned, and this one now is: 27 packages, zero advisories. Re-proven by fixture run 31856452245 before the ledger was updated.
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.
Follow-up to #183, found by the scanners that could finally see the closure.
What locking revealed
dependency-reviewandfixture / osv-scanboth failed on #183. Not on anything thePR introduced — on what the Qt toolchain had been installing all along:
All fixed in 1.1.3.
The exposure predates the lock.
uvx --with 'py7zr==1.0.0'installed exactly thatversion. What changed is that an uninventoried closure cannot be scanned: dependency
review and OSV had no manifest to read, so six advisories in the library aqtinstall
uses to unpack Qt archives — including arbitrary file write — went unreported.
That is the argument for locking, made by the locking.
After
requirements-qt.in→py7zr==1.1.3, recompiled with hashes. aqtinstall declarespy7zr>=0.22.0, so it is satisfied.qt-ci.yml's publishedLOCK_SHA256,catalog/tools.yml'slock_sha256andpin, andtests/fixtures/sdk-runtime-spec.yml'spy7zr_versionall moved together —check_qt_toolchain_lock.pyfails if they do not.Evidence
Run 31856452245:
The SDK byte manifest was regenerated through the launcher, and
proven_digestandlast_runupdated only after the run succeeded.Remaining, not fixed here
dependency-reviewalso warns thattexttablehas an OpenSSF Scorecard of 2.1 againstthis repository's threshold of 3. That is a warning rather than a failure, it is a
transitive dependency of aqtinstall with no alternative available, and swapping it is a
separate decision from patching a known-vulnerable package. Stated rather than left to
be rediscovered.
Verification
validate_all— all tiers OK withGH_TOKEN·actionlint— clean