Skip to content

fix(deps): clear the outstanding RUSTSEC advisories - #55

Merged
WomB0ComB0 merged 2 commits into
mainfrom
fix/osv-rustsec-advisories
Aug 3, 2026
Merged

fix(deps): clear the outstanding RUSTSEC advisories#55
WomB0ComB0 merged 2 commits into
mainfrom
fix/osv-rustsec-advisories

Conversation

@WomB0ComB0

@WomB0ComB0 WomB0ComB0 commented Aug 3, 2026

Copy link
Copy Markdown
Member

What

The osv-scanner step has been failing the security job. Unlike the other CI failures in this org, the scanner was working correctly — it was reporting four genuinely unpatched advisories:

Total 4 packages affected by 4 known vulnerabilities … 4 vulnerabilities can be fixed.

| https://osv.dev/RUSTSEC-2026-0190 | crates.io | anyhow          | 1.0.102 | 1.0.103 |
| https://osv.dev/RUSTSEC-2026-0204 | crates.io | crossbeam-epoch | 0.9.18  | 0.9.20  |
| https://osv.dev/RUSTSEC-2026-0186 | crates.io | memmap2         | 0.5.10  | 0.9.11  |
| https://osv.dev/RUSTSEC-2026-0186 | crates.io | memmap2         | 0.9.10  | 0.9.11  |
+ rc=1

So this is a dependency bump, not a workflow change.

Changes

Cargo.lock — four crates lifted onto fixed versions:

crate from to advisory
anyhow 1.0.102 1.0.104 RUSTSEC-2026-0190
crossbeam-epoch 0.9.18 0.9.20 RUSTSEC-2026-0204
memmap2 0.9.10 0.9.11 RUSTSEC-2026-0186
event-listener 5.4.1 5.4.2 RUSTSEC-2026-0221

event-listener was not in the original failure — that advisory was published after the last scan on 28 Jul, and would have turned the job red again on the next run regardless.

osv-scanner.toml — two corrections:

  1. Added RUSTSEC-2026-0186. memmap2 resolves twice. The 0.9.x path is genuinely fixed above. The 0.5.10 copy is reachable only through the vendored solana-program-test dev-dependency:

    memmap2 0.5.10
    └── solana-genesis-config 3.0.0
        └── agave-snapshots → solana-runtime → solana-banks-server
            └── solana-program-test (dev-dependencies)
    

    That chain pins the 0.5.x line, so cargo update cannot lift it without an upstream Solana bump. Filtered with a rationale, consistent with the seven existing entries for unfixable transitive advisories. The comment records that the entry covers only the dev-dep path and should be dropped when Solana moves off memmap2 0.5.

  2. Removed a duplicate RUSTSEC-2026-0173 block. The scanner was warning:

    warning: osv-scanner.toml has multiple ignores for RUSTSEC-2026-0173 - only the first will be used!
    osv-scanner.toml has unused ignores:
     - RUSTSEC-2026-0173
    

    The two blocks disagreed about the dependency path — one said "via anchor-lang derive macros", the other "via aquamarine → solana-runtime → solana-program-test". Kept the latter, which matches what the scanner actually reports.

Verification

$ osv-scanner scan source --lockfile Cargo.lock
Filtered 12 vulnerabilities from output
No issues found
$ echo $?
0
  • No multiple ignores or unused ignores warnings remain
  • cargo check --workspace — exit 0
  • No Cargo.toml changes; lockfile-only, all within existing semver ranges

Summary by CodeRabbit

  • Bug Fixes
    • Updated vulnerability scanning rules to narrowly address the affected memmap2 0.5.10 development dependency.
    • Continued detecting the advisory for other memmap2 versions.
    • Preserved scanning coverage for the fixed memmap2 0.9.11 release.
    • Added documentation clarifying the exception and its vendored dependency path.

osv-scanner has been failing the security job with four unpatched advisories.
Three lift cleanly with `cargo update`, and a fourth (event-listener) has been
published since the last run:

  anyhow          1.0.102 -> 1.0.104   RUSTSEC-2026-0190
  crossbeam-epoch  0.9.18 -> 0.9.20    RUSTSEC-2026-0204
  memmap2          0.9.10 -> 0.9.11    RUSTSEC-2026-0186
  event-listener    5.4.1 -> 5.4.2     RUSTSEC-2026-0221

memmap2 also resolves a second time at 0.5.10, reached only through the
vendored solana-program-test dev-dependency. That chain pins the 0.5.x line,
so it cannot be lifted without an upstream Solana bump — filtered with a
rationale, matching how the other unfixable transitive advisories are handled.
The first-order 0.9.x path is genuinely fixed, not filtered.

Also drop a duplicate RUSTSEC-2026-0173 block. osv-scanner was warning
"multiple ignores ... only the first will be used" and reporting the second as
an unused ignore; the two rationales disagreed about the dependency path, and
the retained one matches what the scanner actually reports.
@gemini-code-assist

Copy link
Copy Markdown

Caution

The consumer version of Gemini Code Assist on GitHub has been sunset. All code review activity has officially ceased.

@coderabbitai

coderabbitai Bot commented Aug 3, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: c23f51de-274d-4b1f-a85b-caccc9167e63

📥 Commits

Reviewing files that changed from the base of the PR and between f9f28d1 and 4ebcd23.

📒 Files selected for processing (1)
  • osv-scanner.toml
🚧 Files skipped from review as they are similar to previous changes (1)
  • osv-scanner.toml

📝 Walkthrough

Walkthrough

The PR updates osv-scanner.toml to replace a broad advisory ignore with a version-scoped exception for memmap2 0.5.10 in the vendored Solana development dependency chain. Other memmap2 versions remain subject to advisory detection.

Changes

Advisory configuration

Layer / File(s) Summary
Update memmap2 advisory handling
osv-scanner.toml
The configuration removes the RUSTSEC-2026-0173 ignore entry and adds a PackageOverrides exception for memmap2 0.5.10. The fixed memmap2 0.9.11 path and other versions remain detected.

Estimated code review effort: 2 (Simple) | ~5 minutes

Possibly related issues

  • resq-software/resQ issue 569 — Both changes update osv-scanner.toml with targeted Rust advisory exceptions.

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the dependency and scanner changes that address the outstanding RUSTSEC advisories.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/osv-rustsec-advisories

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@osv-scanner.toml`:
- Around line 73-83: Scope the RUSTSEC-2026-0186 exception in [[IgnoredVulns]]
to memmap2 version 0.5.10 and its documented dev-dependency/vendor path, using
the supported version-scoped override or an ignoreUntil date tied to the
expected Solana upgrade. Ensure future affected versions or non-dev dependency
paths are still reported, while preserving the existing 0.9.11 fix.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: d505c531-8d9f-4212-87f0-a7969dd45c06

📥 Commits

Reviewing files that changed from the base of the PR and between 85b4acd and f9f28d1.

⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (1)
  • osv-scanner.toml

Comment thread osv-scanner.toml Outdated
@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown

Audit passed. The dependency updates correctly address several RUSTSEC advisories, including the update of memmap2 to 0.9.11 which resolves RUSTSEC-2026-0186. The addition of the ignore rule for memmap2 0.5.10 is well-justified as it is a transitive dev-dependency pinned by upstream Solana. Additionally, the PR correctly cleaned up a duplicate entry for RUSTSEC-2026-0173 in osv-scanner.toml.

Warning

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • localhost

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "localhost"

See Network Configuration for more information.

Generated by ai-auditor for issue #55 ·

Addresses review feedback on the RUSTSEC-2026-0186 entry.

IgnoredVulns matches by advisory ID alone, so the previous block suppressed
the advisory across the whole scan. A future regression onto an affected
memmap2 version — including on a non-dev path — would have been silently
swallowed, which is not what the rationale claimed the exception covered.

Switch to a version-scoped PackageOverrides pinned to memmap2 0.5.10, the
only copy that cannot be lifted (dev-dep-only, via vendored
solana-program-test).

Verified: the scan still reports "No issues found", and the filter line now
reads "Package crates.io/memmap2/0.5.10 has been filtered out" rather than
naming the advisory. Repointing the override at an absent version makes
RUSTSEC-2026-0186 fire on 0.5.10 again, confirming the scoping is real.
@WomB0ComB0
WomB0ComB0 merged commit bb59724 into main Aug 3, 2026
19 checks passed
@WomB0ComB0
WomB0ComB0 deleted the fix/osv-rustsec-advisories branch August 3, 2026 08:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant