You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
fix(deps): bump aws-smithy-json to 0.62.7 (GHSA-8ffr-xgwf-xj56) - #516
Moves aws-smithy-json to 0.62.7, the first release patched for GHSA-8ffr-xgwf-xj56 / CVE-2026-18140, a high-severity flaw: unbounded recursion when skipping unknown keys in deeply nested JSON exhausts the stack. Before this change, Cargo.lock resolved two vulnerable versions, 0.61.9 and 0.62.5.
Motivation & context
Re-opened from an upstream branch in place of #515 (same commit, 6954f4c), which was opened from a fork and stayed blocked on the code quality rule.
Resolves Dependabot alert #16. No GitHub issue is filed for it. cargo audit doesn't catch this one because RustSec has no advisory for it, so Dependabot is the only check that flags it.
Where the two vulnerable versions came from:
aws-sdk-s3 1.119.0 required aws-smithy-json ^0.61.9. No 0.61.x release has the fix.
aws-config 1.8.15 and the sso/ssooidc/sts clients required ^0.62.5, locked at 0.62.5.
Kind of change
Bug fix
Feature
Security fix
Docs
Tests / CI
Refactor (no behavior change)
Breaking or protocol change (issue required first)
What changed
Cargo.lock: 0.62.7 requires aws-smithy-runtime-api ^1.12.3, so the AWS SDK moves together. Each crate goes to its newest release that still builds on our 1.91 MSRV; those declare rust-version = 1.91.1, which the MSRV job's 1.91 toolchain is, and later releases need 1.94.1:
aws-config 1.8.15 → 1.8.18
aws-sdk-s3 1.119.0 → 1.137.0, which itself requires aws-smithy-json ^0.62.7
p256 0.11 → 0.13, through aws-sigv4. This drops crypto-bigint 0.4.9 and the elliptic-curve 0.12 stack.
New for aws-smithy-checksums: the digest 0.11 hash crates (sha1, sha2, md-5, hmac) and crc-fast 1.10.
lru 0.12.5 is no longer needed.
.cargo/audit.toml: two comment lines in the RUSTSEC-2026-0387 entry corrected, because crypto-bigint 0.4.9 and the p256 0.11 path are gone. The ignore is still needed for crypto-bigint 0.5.5, through alloy and aws-sigv4.
No manifest or source changes. Crate affected: gitlawb-node, through its aws-sdk-s3/aws-config dependencies (Tigris storage client).
cargo audit (0.22.2): exit 0, no vulnerabilities, 10 allowed warnings (down from 12).
scripts/check-gitlawb-core-deps.sh: OK.
cargo build --locked --release --workspace: pass.
cargo test --locked --workspace against a local Postgres 17: 1692 passed, 0 failed, 4 ignored.
docker build . plus a --version smoke run: pass (gitlawb-node 0.7.1).
Limitation: I didn't test against a real S3/Tigris endpoint. The S3 path (git/tigris.rs: head/put/get object and aws_config::load_defaults) is covered only by compilation and the existing workspace tests.
How the lockfile was produced, for anyone redoing it:
Temporarily set the workspace rust-version to 1.91.1.
Run CARGO_RESOLVER_INCOMPATIBLE_RUST_VERSIONS=fallback cargo update -p aws-sdk-s3 -p aws-config.
Revert Cargo.toml.
That resolver also switched hyper-util/quinn/quinn-udp from socket2 0.5.10 to 0.6.3, which has nothing to do with this fix. I restored those three edges, and cargo metadata --locked accepts the lockfile without changing it.
Before you request review
Scope is one logical change; no unrelated churn
cargo test --workspace passes locally
New behavior is covered by tests (required for fixes): N/A, dependency-only change with no behavior change in our code
cargo fmt --all and cargo clippy --workspace --all-targets -- -D warnings are clean
Commit titles use Conventional Commits (feat(...), fix(...), docs(...))
Docs / .env.example updated if behavior or config changed (or N/A)
Cargo.lock resolved aws-smithy-json 0.61.9 (via aws-sdk-s3 1.119.0) and
0.62.5 (via aws-config and the sso/ssooidc/sts clients). Both are in the
range affected by GHSA-8ffr-xgwf-xj56 / CVE-2026-18140 (<= 0.62.6):
uncontrolled recursion when skipping unknown keys in deeply nested JSON.
0.62.7 requires aws-smithy-runtime-api ^1.12.3, so the AWS SDK moves as
a set to the newest releases that still build on our 1.91 MSRV (they
declare rust-version 1.91.1; later releases need 1.94.1):
aws-config 1.8.18, aws-sdk-s3 1.137.0 (which itself requires
aws-smithy-json ^0.62.7), aws-sdk-sso 1.102.0, aws-sdk-ssooidc 1.104.0,
aws-sdk-sts 1.107.0, aws-sigv4 1.4.5, and matching aws-smithy-* crates.
aws-sigv4 1.4.5 moves to p256 0.13, which drops crypto-bigint 0.4.9 from
the lockfile. Update the RUSTSEC-2026-0387 note in .cargo/audit.toml to
match; the ignore is still needed for crypto-bigint 0.5.5.
Lockfile and audit-config comment only; no manifest or source changes.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
No actionable comments were generated in the recent review.
Walkthrough
The advisory comments in .cargo/audit.toml now identify crypto-bigint 0.5.5 and describe the SigV4a path through p256 0.13 and directly to version 0.5. Audit configuration values did not change.
Changes: Advisory comments
Layer / File(s)
Summary
Update SigV4a version path .cargo/audit.toml
The comments identify crypto-bigint 0.5.5 and replace the path through p256 0.11 and crypto-bigint 0.4 with the path through p256 0.13 and directly to version 0.5.
Twigpine/node#515: This PR updates the same advisory comments and also changes AWS crate entries in Cargo.lock.
Twigpine/node#514: This PR adds the advisory ignore and explanatory comments that this PR revises.
Suggested reviewers:beardthelion
Merge Risk: Minimal · up to 6954f
No actionable merge risk remains in this comment-only update.
Pre-merge checks: 5
Check name
Status
Explanation
Title check
The title names the main change: bumping aws-smithy-json to 0.62.7 to fix GHSA-8ffr-xgwf-xj56. The changeset is a Cargo.lock update that moves aws-smithy-json to 0.62.7 as part of the AWS SDK bump. Th…
Description check
The description follows the template closely. It has a Summary, Motivation & context with a Dependabot reference, Kind of change with Security fix checked, a detailed What changed section naming the a…
Docstring Coverage
No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentat…
Linked Issues check
Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check
Check skipped because no linked issues were found for this pull request.
Full details: Title check
Explanation
The title names the main change: bumping aws-smithy-json to 0.62.7 to fix GHSA-8ffr-xgwf-xj56. The changeset is a Cargo.lock update that moves aws-smithy-json to 0.62.7 as part of the AWS SDK bump. The title is specific and accurate, and it follows Conventional Commits.
Full details: Description check
Explanation
The description follows the template closely. It has a Summary, Motivation & context with a Dependabot reference, Kind of change with Security fix checked, a detailed What changed section naming the affected crates and the .cargo/audit.toml edit, a How a reviewer can verify section with commands and results, and a completed Before you request review checklist. The Protocol & signing impact block was removed, which the template allows when the change does not touch the protocol. The 'Closes #' issue line was replaced with an explanation that no GitHub issue exists, and the template's Notes for reviewers section is absent. Both are minor gaps.
Full details: Docstring Coverage
Explanation
No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 0 functions across 0 files. (1 skipped: 1 unsupported.)
Finishing Touches
Generate unit tests (beta)
Commit to this branch
Create a new PR
Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Recent review info
Run configuration
Source mode: Auto
Repository: Unavailable
Branch: Unavailable
File: No configuration file from this repository applied
Commit: Unavailable
Layers: defaults
Review profile: CHILL
Plan: Essentials
Run ID: 2e93a49e-281e-4f56-817f-1746cb1332b1
Commits
Reviewing files that changed from the base of the PR and between 4d024e0 and 6954f4c.
Files ignored due to path filters: 1
Cargo.lock is excluded by !**/*.lock
Files selected for processing: 1
.cargo/audit.toml
Included review availability: This review used your included allowance. 4 included reviews remain after this review. Your included PR review attempts over the past 7 days set your current allowance at 5 reviews per hour.
The reason will be displayed to describe this comment to others. Learn more.
🟢 Approval recommended
No active review issues are blocking the AWS dependency update.
No open issues 🎉
What changed in this PR
Updates the AWS dependency stack used by gitlawb-node’s S3/Tigris storage client to resolve the JSON stack-exhaustion vulnerability GHSA-8ffr-xgwf-xj56.
Changes:
Replaces both vulnerable aws-smithy-json versions with 0.62.7 and updates the related AWS SDK and transitive dependencies.
Corrects audit comments to reflect the remaining crypto-bigint dependency paths; advisory ignores are unchanged.
File
Description
Cargo.lock
Updates AWS dependencies to use patched JSON parsing and removes obsolete transitive versions.
.cargo/audit.toml
Updates comments describing the remaining accepted crypto-bigint risk.
The reason will be displayed to describe this comment to others. Learn more.
Approving at 6954f4c. The lock now resolves a single aws-smithy-json, 0.62.7; main has both 0.61.9 and 0.62.5. cargo metadata --locked accepts it and cargo audit exits 0.
crypto-bigint resolves only to 0.5.5, through aws-sigv4 and elliptic-curve 0.13, so the RUSTSEC-2026-0387 ignore is still needed and the corrected audit.toml comment matches the lock. The lock diff adds only registry crates with checksums, and the lines that look like downgrades (hybrid-array 0.4.10, ctutils 0.4.8) are new packages. MSRV and the tigris tests are green in CI on this head. The real S3/Tigris path is untested, as the description says.
Non-blocking, for a follow-up: audit-schedule.yml has a drift guard for the hickory ignores but none for the crypto-bigint one.
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
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
Moves
aws-smithy-jsonto 0.62.7, the first release patched for GHSA-8ffr-xgwf-xj56 / CVE-2026-18140, a high-severity flaw: unbounded recursion when skipping unknown keys in deeply nested JSON exhausts the stack. Before this change,Cargo.lockresolved two vulnerable versions, 0.61.9 and 0.62.5.Motivation & context
Re-opened from an upstream branch in place of #515 (same commit, 6954f4c), which was opened from a fork and stayed blocked on the code quality rule.
Resolves Dependabot alert #16. No GitHub issue is filed for it.
cargo auditdoesn't catch this one because RustSec has no advisory for it, so Dependabot is the only check that flags it.Where the two vulnerable versions came from:
aws-sdk-s31.119.0 requiredaws-smithy-json ^0.61.9. No 0.61.x release has the fix.aws-config1.8.15 and the sso/ssooidc/sts clients required^0.62.5, locked at 0.62.5.Kind of change
What changed
Cargo.lock: 0.62.7 requiresaws-smithy-runtime-api ^1.12.3, so the AWS SDK moves together. Each crate goes to its newest release that still builds on our 1.91 MSRV; those declarerust-version = 1.91.1, which the MSRV job's1.91toolchain is, and later releases need 1.94.1:aws-smithy-json ^0.62.7.cargo/audit.toml: two comment lines in the RUSTSEC-2026-0387 entry corrected, because crypto-bigint 0.4.9 and the p256 0.11 path are gone. The ignore is still needed for crypto-bigint 0.5.5, through alloy and aws-sigv4.No manifest or source changes. Crate affected: gitlawb-node, through its
aws-sdk-s3/aws-configdependencies (Tigris storage client).How a reviewer can verify
All local results are on 6954f4c, the PR head:
cargo fmt --all -- --check: pass.cargo +1.91 check --locked --workspace --all-targets(rustc 1.91.1): pass.cargo clippy --locked --workspace --all-targets -- -D warnings: pass.cargo audit(0.22.2): exit 0, no vulnerabilities, 10 allowed warnings (down from 12).scripts/check-gitlawb-core-deps.sh: OK.cargo build --locked --release --workspace: pass.cargo test --locked --workspaceagainst a local Postgres 17: 1692 passed, 0 failed, 4 ignored.docker build .plus a--versionsmoke run: pass (gitlawb-node 0.7.1).Limitation: I didn't test against a real S3/Tigris endpoint. The S3 path (
git/tigris.rs: head/put/get object andaws_config::load_defaults) is covered only by compilation and the existing workspace tests.How the lockfile was produced, for anyone redoing it:
rust-versionto1.91.1.CARGO_RESOLVER_INCOMPATIBLE_RUST_VERSIONS=fallback cargo update -p aws-sdk-s3 -p aws-config.Cargo.toml.cargo metadata --lockedaccepts the lockfile without changing it.Before you request review
cargo test --workspacepasses locallycargo fmt --allandcargo clippy --workspace --all-targets -- -D warningsare cleanfeat(...),fix(...),docs(...)).env.exampleupdated if behavior or config changed (or N/A)🤖 Generated with Claude Code
Summary by CodeRabbit
crypto-bigintversion paths associated with theaws-sigv4SigV4a flow, including the direct path and the path throughp256.p256andcrypto-bigintversions. No audit configuration values changed.