Skip to content

fix(security): remediate 8 Dependabot advisories (rustls-webpki, rand, aws-lc-sys)#112

Merged
doublegate merged 2 commits into
mainfrom
fix/dependabot-security-bumps
Jun 26, 2026
Merged

fix(security): remediate 8 Dependabot advisories (rustls-webpki, rand, aws-lc-sys)#112
doublegate merged 2 commits into
mainfrom
fix/dependabot-security-bumps

Conversation

@doublegate

Copy link
Copy Markdown
Owner

Summary

Remediates all 8 open Dependabot alerts on main (3 high, 1 moderate, 4 low). All are transitive dependencies; the security fix is confined to Cargo.lock — no manifest constraint changes were needed (every bump is within the existing semver-compatible ranges).

A second, prerequisite commit fixes a pre-existing clippy::collapsible_match lint that current stable clippy (1.96.0, which CI pulls via dtolnay/rust-toolchain@stable) flags in router.rs — without it the CI clippy gate (-D warnings) would block this PR from going green. That fix is behavior-preserving (see below).

Advisories resolved

Package From → To Advisories Severity
rustls-webpki 0.103.9 → 0.103.13 GHSA-82j2-j2ch-gfr8, GHSA-pwjx-qhcg-rvj4, GHSA-965h-392x-2mh5, GHSA-xgp8-3hg3-c2mh high, medium, low, low
aws-lc-sys 0.38.0 → 0.41.0 GHSA-9f94-5g5w-gf6r, GHSA-394x-vwmw-crm3 high, high
rand 0.8.5 → 0.8.6 / 0.9.2 → 0.9.3 GHSA-cq8v-f236-94qc (both major lines) low

aws-lc-sys 0.38 → patched line required bumping its parent aws-lc-rs 1.16.1 → 1.17.0 (the only change beyond the four target packages), since aws-lc-rs 1.16.1 pinned aws-lc-sys ^0.38 and excluded the patched 0.39+ line.

Commits

  1. fix(core) — hoist the TOPIC handler's params.len() >= 2 check into a match guard ("TOPIC" if … =>). A short TOPIC message previously fell through the inner if as a no-op; it now fails the guard and falls through to the existing _ => {} arm — identical no-op, no behavior change.
  2. build(deps) — the Cargo.lock advisory bumps above.

Verification (local, rust 1.96.0)

  • cargo build --workspace: 0 errors
  • cargo clippy --all-targets --all-features -- -D warnings: clean
  • cargo test --workspace: 266 passed (18 suites)
  • No old vulnerable versions remain in Cargo.lock

🤖 Generated with Claude Code

doublegate and others added 2 commits June 26, 2026 17:10
Current stable clippy (rust 1.96.0, which CI pulls via
dtolnay/rust-toolchain@stable) flags `clippy::collapsible_match` on the
message router's TOPIC arm, where an inner `if message.params.len() >= 2`
was nested directly inside the `"TOPIC" =>` match arm. Under
`cargo clippy --all-targets --all-features -- -D warnings` this fails the
CI clippy gate on the default branch, which would otherwise block this PR
from going green.

Hoist the length guard into the match arm itself
(`"TOPIC" if message.params.len() >= 2 =>`). Behavior is unchanged: a TOPIC
message with fewer than 2 params previously fell through the inner `if`
doing nothing, and now fails the guard and falls through to the existing
`_ => {}` arm — identical no-op. The arm body is dedented one level.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…isories

Remediate all 8 open Dependabot alerts on the default branch. These are
transitive dependencies; the fix is confined to Cargo.lock (no manifest
constraint changes were required — all bumps are within the existing
semver-compatible ranges).

## Advisories resolved
- rustls-webpki 0.103.9 -> 0.103.13
  - GHSA-82j2-j2ch-gfr8 (high)
  - GHSA-pwjx-qhcg-rvj4 (medium)
  - GHSA-965h-392x-2mh5 (low)
  - GHSA-xgp8-3hg3-c2mh (low)
- aws-lc-sys 0.38.0 -> 0.41.0 (via aws-lc-rs 1.16.1 -> 1.17.0, whose
  aws-lc-sys ^0.38 requirement otherwise excluded the patched line)
  - GHSA-9f94-5g5w-gf6r (high)
  - GHSA-394x-vwmw-crm3 (high)
- rand 0.8.5 -> 0.8.6 and rand 0.9.2 -> 0.9.3
  - GHSA-cq8v-f236-94qc (low, both major lines)

## Verification
- cargo build --workspace: 0 errors
- cargo clippy --all-targets --all-features -- -D warnings: clean
  (after the preceding router.rs lint fix)
- cargo test --workspace: 266 passed (18 suites)
- No old vulnerable versions remain in Cargo.lock

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings June 26, 2026 21:11
@github-actions

Copy link
Copy Markdown

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

OpenSSF Scorecard

PackageVersionScoreDetails
cargo/aws-lc-rs 1.17.0 UnknownUnknown
cargo/aws-lc-sys 0.41.0 UnknownUnknown
cargo/rand 0.8.6 🟢 6.3
Details
CheckScoreReason
Maintained🟢 1021 commit(s) and 8 issue activity found in the last 90 days -- score normalized to 10
Code-Review🟢 10all changesets reviewed
Security-Policy🟢 10security policy file detected
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Pinned-Dependencies⚠️ 0dependency not pinned by hash detected -- score normalized to 0
Binary-Artifacts🟢 10no binaries found in the repo
Fuzzing⚠️ 0project is not fuzzed
License🟢 9license file detected
Signed-Releases⚠️ -1no releases found
Packaging🟢 10packaging workflow detected
Branch-Protection🟢 5branch protection is not maximal on development and all release branches
SAST⚠️ 0SAST tool is not run on all commits -- score normalized to 0
cargo/rand 0.9.3 🟢 6.3
Details
CheckScoreReason
Maintained🟢 1021 commit(s) and 8 issue activity found in the last 90 days -- score normalized to 10
Code-Review🟢 10all changesets reviewed
Security-Policy🟢 10security policy file detected
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Pinned-Dependencies⚠️ 0dependency not pinned by hash detected -- score normalized to 0
Binary-Artifacts🟢 10no binaries found in the repo
Fuzzing⚠️ 0project is not fuzzed
License🟢 9license file detected
Signed-Releases⚠️ -1no releases found
Packaging🟢 10packaging workflow detected
Branch-Protection🟢 5branch protection is not maximal on development and all release branches
SAST⚠️ 0SAST tool is not run on all commits -- score normalized to 0
cargo/rustls-webpki 0.103.13 UnknownUnknown

Scanned Files

  • Cargo.lock

@gemini-code-assist gemini-code-assist 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.

Code Review

This pull request updates several dependencies in Cargo.lock, including aws-lc-rs, aws-lc-sys, rand, and rustls-webpki. Additionally, it refactors the "TOPIC" message handling in crates/rustirc-core/src/router.rs to use a match guard instead of an inner if condition, simplifying the nesting structure. There are no review comments, and I have no additional feedback to provide.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR remediates Dependabot security advisories by updating vulnerable transitive Rust dependencies via Cargo.lock, and includes a small, behavior-preserving refactor in the core message router to satisfy clippy::collapsible_match under current stable Clippy.

Changes:

  • Refactor TOPIC message handling in ChannelHandler to use a match guard instead of an inner if (no-op behavior preserved for short TOPIC messages).
  • Update Cargo.lock to bump rustls-webpki, aws-lc-sys (and required aws-lc-rs), and both rand major lines to patched versions addressing advisories.

Reviewed changes

Copilot reviewed 1 out of 2 changed files in this pull request and generated no comments.

File Description
crates/rustirc-core/src/router.rs Uses a match guard for TOPIC handling to satisfy Clippy without changing runtime behavior.
Cargo.lock Updates transitive dependency versions to patched releases that resolve 8 Dependabot alerts.

@doublegate doublegate merged commit 5cc273e into main Jun 26, 2026
21 checks passed
@doublegate doublegate deleted the fix/dependabot-security-bumps branch June 26, 2026 21:39
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.

2 participants