Repository navigation
security(desktop): bump updater to 2.14.1 and align Rust 1.90 - #8039
Conversation
…26-115905 zip 4.6.1 (critical Zip Cloaking / arbitrary file overwrite) reached the Windows update-extraction path via tauri-plugin-updater 2.9.0, which requires zip ^4. The fix needs updater >=2.14.1 (zip ^9) and tauri ^2.12, so the exact-pin chain moves together: tauri 2.12.5, tauri-build 2.7.4, tauri-utils 2.10.2. Lockfile regenerated; zip resolves to 9.1.3 and the refresh also picks up rustls 0.23.46 (dependabot alerts #5-#8). Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
No actionable comments were generated in the recent review. Walkthrough
Merge Risk:
|
|
✅ Deterministic PR hygiene checks passed. |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
The account paying for this security review has reached its Codex usage limits. The payer can check the Codex usage dashboard. For personal accounts, using credits requires enabling “Use credits for security reviews” in Code review settings. If you do not manage the paying account, contact this repository's admins. |
Ingwannu
left a comment
There was a problem hiding this comment.
Scoped maintainer triage for exact head 9ccd9b313b6a5d6650e71ede2336cd1a329f3333.
The actual PR comparison is three files (Cargo manifest/lock and the owning desktop doc); a raw two-tip comparison with the newer dev version line is not this feature's delta. The dependency/MSRV change is explicit, and upstream Cross-platform run 41176633675 is green, including the Linux desktop-shell job. These results do not certify Windows updater installation or close Dependabot alerts.
The description correctly retains the incomplete automated review as incomplete, and distinguishes unsigned local Windows artifacts from a signed update. Independent dependency/updater-boundary acceptance remains pending as stated; I have not added a sponsorship waiver or claimed to complete that review. Keep signed feed discovery/extraction/install/restart acceptance as a release requirement, rather than requesting a new per-PR cross-platform dispatch. No native install, release, scan or alert closure was performed by this triage.
|
Windows signed-updater acceptance evidence on the PR head (9ccd9b3, tauri-plugin-updater 2.14.1), run in a Windows Sandbox VM on 2026-11-02 — Path A from the acceptance plan (candidate 2.95.0 → official 2.96.0 over the real feed, no feed or key changes). Verdict: PASS. The candidate app detected the official update, downloaded it, Ed25519-verified the signature, installed the MSI, and restarted as the official 2.96.0 build. Receipt chain:
Environment note: the Sandbox base image ships without WebView2 Runtime, so the app ran with a copied runtime folder + WEBVIEW2_BROWSER_EXECUTABLE_FOLDER. The WebView2 error on update-restart is a sandbox artifact (the relaunched process does not inherit the env var), not a candidate defect. Operator actions were limited to approving the 2.96.0 version prompt and clicking install in the app UI. Scope honestly bounded: this proves the PR''s updater 2.14.1 performs the real official-feed download + signature verify + MSI install + restart on Windows end to end. It does not prove the release/signing pipeline for a future patched build (Path C, maintainer-owned) or tamper/wrong-key rejection (Path B test-key harness). Evidence files retained locally under C:\CodexHot\ocx-8039-acceptance. |
|
Maintainer integration into security(desktop): bump the Tauri updater to 2.14.1 and align Rust 1.90. The lockfile move brings
Thanks for the fix. |
Summary
This updates the Windows updater dependency chain for the zip advisory tracked in source PR luvs01/opencodex#790 and aligns the declared Rust minimum with the selected Tauri crates. The original dependency work and unchanged source head
9ccd9b313b6a5d6650e71ede2336cd1a329f3333are preserved.tauri-plugin-updater =2.14.1,tauri =2.12.5,tauri-build =2.7.4, andtauri-utils =2.10.2. The lockfile resolves the original zip advisory withzip 9.1.3.devatc618c77b1e81aa8952422e2d3657439ed6d5f8fe, retaining patchedrustls 0.23.46already landed through upstream build(deps): bump rustls from 0.23.45 to 0.23.46 in /desktop/src-tauri #7942. The original dependency update is preserved; no dependency was downgraded to reduce the diff. The delta against the recorded dev snapshot63de499eis three files.Verification
Current source head:
9ccd9b313b6a5d6650e71ede2336cd1a329f3333.Exact upstream Cross-platform CI 41176633675 passed (9 successful jobs / 12 scope or platform skips), as did Service lifecycle 41176633694. The desktop job completed Rust fmt/clippy/tests, Linux AppImage and deb builds, packaged keyring verification and Linux packaged-shell E2E. Skipped platforms and these Linux checks do not replace the signed Windows updater acceptance below.
Windows x64, exact isolated Rust 1.90.0:
cargo check --manifest-path desktop/src-tauri/Cargo.toml --lockedpassed with the actual prepared Windows sidecar, keyring and GUI resources.Native unit coverage: updater 16, CLI command construction 8, autostart command construction 3, plus registry recovery 1 and private ACL 5 under Windows BasicUser: 33 distinct passing tests. The elevated-token registry attempt was refused by the existing owner guard because its default owner was Administrators; the same test binary passed as BasicUser. The guard and ACL policy were not weakened.
Official unsigned local build,
bun desktop/scripts/build-local.ts -- -- --locked, produced both Windows release bundles below with Rust 1.90. The committed updater public key, endpoint andcreateUpdaterArtifacts: trueremain unchanged; the official helper disables updater artifacts for this local invocation only.bun check --no-script --noEmit: 2,253 files; structure, privacy and file-size gates passed. Source and lockfile digests remained unchanged through the native build.Exact-head Cross-platform CI: 41156255102 passed on this exact head (14 successful jobs / 10 policy skips). Policy skips do not establish native Windows/macOS acceptance. Catalog async contracts 41156254959 passed. A full local proxy suite was not repeated for this dependency/MSRV change; focused native validation and current CI cover the changed path.
OpenCodex_2.95.0_x64_en-US.msi9525687bd086c8a65dbac73d3795b2fe29ac4b50aed22f64a790fcd11fffc9caOpenCodex_2.95.0_x64-setup.exe461dccc77d4288d1710b4757189849a0c039a5311da1aa4389adf5c91508f779Validation limits: build output passed, but the runner required controlled cleanup and its final receipt is not a clean native-job pass. These are unsigned local bundles, not a signed updater archive. No installed app was replaced or launched. Signed update discovery, extraction, installation and restart still require an approved signed test artifact/feed and an isolated Windows user or VM before release. Maintainer/security acceptance and Dependabot alert closure are separate.
Checklist
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Summary by CodeRabbit