Repository navigation
Conversation
…isories libp2p-dns 0.45 is the first release built on hickory 0.26, so it fixes GHSA-3v94-mw7p-v465 (hickory NSEC3 closest-encloser unbounded loop, RUSTSEC-2026-0118) and GHSA-5j98-2g5x-46v6 (hickory-resolver lookup() hides DNSSEC failures). It needs libp2p-core 0.44 and libp2p-identity 0.3, so the other libp2p crates and multiaddr move with it. libp2p-quic goes to 0.14, which includes the fix for GHSA-5hq8-qhww-jm7q (remote panic from a certificate-expiry race during the QUIC handshake). The RUSTSEC-2026-0118/0119 ignores in .cargo/audit.toml are removed, as their REMOVE condition asked. No source changes were needed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. Walkthrough
Merge Risk:
|
jatmn
left a comment
There was a problem hiding this comment.
Merge readiness
-
Overlapping open PR #518:
fix/hickory-serde-with-advisoriesapplies the same libp2p/hickory/audit.toml bump and additionally bumpsserde_withto 3.22 (Dependabot #14) and closes #76. Landing both would duplicate lockfile churn; prefer one coordinated PR or merge #518 and close #517 as superseded. -
Stacked work with #462: The PR notes that #462 touches
p2p/mod.rsIdentify→Kademlia address handling. Whichever merges second should rebase; no file overlap in this diff, but resolve order before relying on combined P2P behavior. -
CI: Confirm required jobs (
test (stable),test (beta),build --release, Docker smoke, remaining CodeQL) are green on the merge commit before merge. -
Issue tracking: This PR removes the hickory ignore block that referenced GitHub issue #76 but does not list
Closes #76in the body (unlike #518). Close or cross-link #76 when merging so tracking stays accurate.
Findings
🟢 Thanks for the contribution. I do not see any actionable issues from my review.
The dependency bump matches the documented removal condition for the hickory audit suppressions, resolves the stated Dependabot targets via lockfile versions (hickory-* 0.26.3, libp2p-quic 0.14.0), and leaves only the long-standing rsa/crypto-bigint ignores. No Rust source changed; compile and audit gates on head look consistent with a security-only dependency refresh.
There was a problem hiding this comment.
🔵 Needs a closer look
Maintainer runtime validation is still needed for cross-version signed Gossipsub ref-update propagation and Kademlia DID-record exchange, as reported mixed-version checks cover only QUIC and Identify.
No open issues 🎉
What changed in this PR
Updates gitlawb-node’s P2P dependencies to the libp2p-core 0.44 release line to address Hickory DNS and QUIC security advisories, without changing Rust source code.
Changes:
- Upgrades the coordinated libp2p crates and multiaddr.
- Locks Hickory to 0.26.3 and libp2p-quic to 0.14.0, with required transitive dependency updates.
- Removes the two obsolete Hickory audit exceptions while retaining unrelated exceptions.
| File | Description |
|---|---|
crates/gitlawb-node/Cargo.toml |
Updates libp2p and multiaddr version requirements. |
Cargo.lock |
Records upgraded P2P, DNS, cryptography, and runtime dependencies. |
.cargo/audit.toml |
Removes resolved Hickory advisory ignores and their explanatory comments. |
Review effort: Balanced
Summary
Moves gitlawb-node's libp2p dependencies to the libp2p-core 0.44 release line. This fixes three high-severity Dependabot alerts:
lookup()/lookup_ip()hide DNSSEC validation failures.Motivation & context
No GitHub issue is filed for these; they come from the Dependabot alerts above.
hickory 0.25.2 only enters the build through
libp2p-dns0.44, and no 0.44.x release moves to hickory 0.26.libp2p-dns0.45.0 (released 2026-09-11) is the first one on hickory 0.26. That is the trigger.cargo/audit.tomlnamed for dropping the RUSTSEC-2026-0118/0119 ignores ("REMOVE both once libp2p-dns ships a release using hickory 0.26").libp2p-dns0.45 requireslibp2p-core ^0.44andlibp2p-identity ^0.3, so the other libp2p crates andmultiaddrhave to move with it. That also takeslibp2p-quicto 0.14.0, which includes the #15 fix (patched in ≥ 0.13.1).Kind of change
What changed
Crate touched: gitlawb-node, manifest and lockfile only. No Rust source changes.
crates/gitlawb-node/Cargo.toml:Cargo.lock: hickory-proto and hickory-resolver go from 0.25.2 to 0.26.3, and hickory-net 0.26.3 is new. libp2p-quic goes to 0.14.0 and libp2p-tls to 0.7.0.cargo update --precise <old> --dry-run, and every revert is refused:wasm-bindgen-futures =0.4.58. These are wasm-only crates and aren't built for our targets..cargo/audit.toml: removes the RUSTSEC-2026-0118/0119 hickory ignores and the header paragraph about them. The scheduled audit's drift guard (audit-schedule.yml) passes again because the ignores are gone. The rsa and crypto-bigint ignores are unchanged.How a reviewer can verify
Local results, all on 46cb246 (this PR's head):
cargo fmt --all -- --check: pass.cargo clippy --locked --workspace --all-targets -- -D warnings: pass.cargo check --locked --workspace --all-targetson rustc 1.91.1: pass.cargo audit(0.22.2): exit 0, 9 allowed warnings.cargo auditwith no ignores applied: compared with main, the only advisories gone are RUSTSEC-2026-0118, RUSTSEC-2026-0119 and RUSTSEC-2026-0386 (tokio). No new advisories.scripts/check-gitlawb-core-deps.sh: OK.cargo build --locked --release --workspace: pass.docker build .plus a--versionsmoke run: pass (gitlawb-node 0.7.1).cargo test --locked --workspace --no-fail-fastagainst a local Postgres 16: 1688 passed, 4 failed, 4 ignored. None of the 4 failures comes from this change:api::ipfs::tests::get_by_cid_per_source_cap_sheds_same_source_admits_otherandtest_support::tests::git_receive_pack_not_shed_by_exhausted_read_poolfail every time on my machine, on main (151d688) too. CI on main is green, so this looks like something in my local environment.git::smart_http::tests::info_refs_times_out_a_hung_advertisementandtest_support::tests::sweep_backs_off_after_a_run_that_repairs_nothingfailed under full-suite load. They pass 3 of 3 runs in isolation on both main and this branch./dns4/localhost/udp/<port>/quic-v1/p2p/<peer>, so the dial goes through libp2p-dns/hickory into QUIC. Both sides logconnection establishedandidentify receivedin all three pairings:Limitations:
Before you request review
cargo test --workspacepasses locally: all but 4 tests pass. The 4 failures are local-environment issues or timing flakes, not caused by this change (see above).cargo fmt --allandcargo clippy --workspace --all-targets -- -D warningsare cleanfeat(...),fix(...),docs(...)).env.exampleupdated if behavior or config changed (or N/A)Protocol & signing impact
did:key, Ed25519 / RFC 9421 signatures, UCAN, ref certs, or P2P wire formats: the libp2p stack carries the P2P wire formats, but none of our message formats change.Notes for reviewers
#462 edits the Identify → Kademlia address handling in
p2p/mod.rs. Whichever of the two merges second may need a rebase, but they don't overlap in scope.🤖 Generated with Claude Code
Summary by CodeRabbit