Repository navigation
fix(archive): validate 7z entry paths before extraction - #1226
Merged
Merged
Conversation
loonghao
force-pushed
the
fix/archive-sevenz-path-validation
branch
from
October 16, 2026 03:40
2e1e0dc to
84812e3
Compare
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.
Path-safety fix
vx-runtime-archiveextractor writes them, addressing the unsafe default extraction pattern in RUSTSEC-2026-0245.extended-formats, zero-test failures, and retries disabled.Integration follow-ups
Rebased onto
mainat5a85987d9c77a73a0e67f9141d1df19a5ad8ac06. Current head:bedcf849cf178235012a1b58bbc915facd0d0b2a.workspace-hackfeature line: syn 3 gainsvisit-mut, as required by async-trait 0.1.92. This is the exact hakari-generated delta; Cargo.lock is unchanged. The previous PR job only warned about this drift, while postmerge main failed, so the new run must show no generated drift rather than merely a green check.test_where_alias_imagemagickusing an isolated managed fixture and explicit fixture version. Both alias and canonical requests must succeed and return the exact expected JSON path/version/source. This replaces the host-dependent boolean comparison, which also allowed both commands to fail. No production alias behavior, retries, or skips are changed.Validation
2e1e0dc, real new archive regressions passed Linux 22/22, Windows 20/20, and macOS 22/22, with zero skips and retries disabled.84812e3, archive regressions again passed Linux 22/22, Windows 20/20, and macOS 22/22. Code Quality reported both "no changes detected" and "no operations to perform" for hakari. Full Linux 4289/4289 and macOS 4292/4292 passed with no retry-absorbed failures.store/magickwith native backslashes, while vx returned the correct native path. The follow-up constructs each path component with a separatejoin; it preserves the complete JSON assertion and changes no production code. Independent review approved this one-line correction.bedcf849cf178235012a1b58bbc915facd0d0b2a: 41 successful checks, 17 conditionally skipped, no failed/pending checks. Full Linux passed 4289/4289 (128 existing skips), full macOS passed 4292/4292 (128 existing skips), and full Windows passed 4313/4313 (130 existing skips). All three logs report zero retry-absorbed failures, including first-attempt success for the ImageMagick alias fixture.5a85987d9c77a73a0e67f9141d1df19a5ad8ac06; there are no review threads or outstanding review requests. The independent reviews above remain applicable. Separate compatible dependency patch work is tracked in fix(deps): patch four compatible locked dependencies #1227.Boundaries
vx-runtime-archiveis an optional-feature public API; current CLI production crates no longer depend on it. CLI HTTP/installer 7z callbacks already validate entry paths. Existing-link preflight checks are not an atomic guarantee against concurrent symlink replacement. This patch does not remove unmaintained sevenz-rust, add advisory ignores, change audit settings, or claim the workspace audit is clean. Dependency migration and existing audit failure suppression remain separate work.The 84812e3 audit log reports 10 vulnerabilities and 10 denied warnings, despite a green job. Its preceding lock regeneration failed because all matching zip 8.x releases were yanked; the errors are suppressed by the existing recipe. These findings apply to inherited dependencies in the committed lock. Earlier 3/7 results followed successful lock regeneration and must not be used as the committed-lock total. This PR does not change Cargo.lock or use that audit job's green status as evidence of security clearance.