Repository navigation
fix(deps): drop the re-added vendor lockfile and clear root RUSTSEC advisories - #90
Open
WomB0ComB0 wants to merge 1 commit into
Open
WomB0ComB0 wants to merge 1 commit into
WomB0ComB0 wants to merge 1 commit into
Conversation
…dvisories The security workflow's osv-scanner job has been red on main since 2026-09-29. Two causes, both reintroduced by the monorepo sync in #79: 1. vendor/solana-program-test/Cargo.lock is back. #33 deleted it because solana-program-test is a [patch.crates-io] path dependency: cargo resolves it through the root Cargo.lock and never reads the nested one. osv-scanner still scans it as a separate project, and the root osv-scanner.toml does not apply to it, so it produced 52 of the 62 findings. Delete it again, which is what the root osv-scanner.toml already documents ("that nested lockfile ... was removed"). 2. memmap2 went back to 0.9.10 (RUSTSEC-2026-0186) after #55 had moved it to 0.9.11. Two more advisories have since landed against the root lock: quinn-proto 0.11.15 (RUSTSEC-2026-0338..0342, fixed in 0.11.18) and rustls 0.23.45 (RUSTSEC-2026-0346..0349, fixed in 0.23.46). All three lift with a semver-compatible cargo update: memmap2 0.9.10 -> 0.9.11 quinn-proto 0.11.15 -> 0.11.18 (adds chacha20 0.10.2, rand_pcg 0.10.2) rustls 0.23.45 -> 0.23.46 All three are dev-only: `cargo tree -e normal,build --target all -i <crate>` prints nothing for each, so none of them reach the on-chain programs. Lockfile-only change: no manifest, source or osv-scanner.toml edits.
|
Important Review skippedReview was skipped due to path filters ⛔ Files ignored due to path filters: 2
CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including ⚙️ Run configuration
You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
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
security / scan / osv-scannerhas been red onmainsince 2026-09-29. The monorepo sync in #79 undid two earlier fixes: it re-addedvendor/solana-program-test/Cargo.lock, which #33 had deleted, and it movedmemmap2back to 0.9.10, which #55 had fixed. Since then, two new advisories have landed against the root lock. This PR deletes the nested lockfile again and moves memmap2, quinn-proto and rustls to their patched versions. It changes only lockfiles.Before (osv-scanner v2.3.5,
scan source --recursive ./, the same command the reusable job runs):After:
Why the nested lockfile is unused
solana-program-testcomes in through[patch.crates-io]as a path dependency, and the vendored crate is not a workspace member. Cargo resolves it through the rootCargo.lockand never readsvendor/solana-program-test/Cargo.lock:cargo metadata --lockedlists the workspace root as the repo root, the members asresq-delivery,resq-airspaceandresq-gating, andsolana-program-test 3.1.10withsource = nullandmanifest_path = vendor/solana-program-test/Cargo.toml.cargo tree --locked -i solana-program-testprintssolana-program-test v3.1.10 (.../vendor/solana-program-test)under[dev-dependencies]of the three programs.openssl 0.10.80,tar 0.4.46andtime 0.3.47, while the nested lock pinsopenssl 0.10.74,tar 0.4.44andtime 0.3.9.cargo metadata --lockedstill succeeds and the rootCargo.lockis byte-for-byte unchanged (same sha256).osv-scanner treats the nested lock as a separate project, and the root
osv-scanner.tomlfilters do not reach it:RUSTSEC-2025-0141,im 15.1.0andmemmap2 0.5.10are filtered in the root and still reported against the vendor lock. The rootosv-scanner.tomlalready documents the lockfile as removed, to matchvendor/solana-invokeandvendor/solana-keypair, which ship none. So this PR deletes the lockfile again rather than adding a second config.Root lock bumps
memmap2quinn-protorustlsThese are semver-compatible
cargo update -p <crate> --precise <ver>bumps. quinn-proto 0.11.18 also addschacha20 0.10.2andrand_pcg 0.10.2. Package count goes from 803 to 805.memmap2 0.5.10stays: the existing version-scoped override covers it, and its comment ("0.9.x path already updated to the fixed 0.9.11") is accurate again.All three are dev-only.
cargo tree --locked -e normal,build --target all -i <crate>prints nothing for each, so none of them reach the on-chain programs. They come in only through the vendoredsolana-program-testdev-dependency.Type of change
fix— bug fixbuild— build system or external dependencyTest plan
Local, Rust 1.99.0 stable, with the same flags as the reusable
rust-ci.yml:cargo fmt --all --check: cleancargo clippy --locked --all-targets --all-features -- -D warnings: cleancargo test --locked --all-features --workspace: 59 passed, 0 failed. This includes thesolana-program-testintegration suites for airspace (17 + 1), delivery (9) and gating (4).cargo-build-sbf(Solana 3.1.10 platform tools, matching the pinnedsolana-program-test 3.1.10): all three programs build and the root lock is unchanged afterwards.osv-scanner scan source --recursive ./with v2.3.5:No issues foundresq pre-commit: copyright, large files, debug statements, secrets and audit all passanchor buildwith the installed anchor-cli 1.1.2 fails withError: String is the wrong size, and it fails the same way on unchangedmain. The CLI rejects the placeholder program IDs inAnchor.tomlbefore it compiles anything, so the failure is unrelated to this change.Breaking changes
None.
Checklist
commit-msghook will reject otherwise)pre-pushhook will reject otherwise)resq pre-commit/resq format --checkclean locallyosv-scanner.tomlalready describes this stateFollow-up
The next sync from the monorepo will bring both regressions back unless the monorepo copy of this crate also drops
vendor/solana-program-test/Cargo.lockand takes these lock bumps.