build(deps): clear all 8 open dependabot alerts - #867

Open
moonming wants to merge 1 commit into
mainfrom
build/dependabot-security-sweep
Open

build(deps): clear all 8 open dependabot alerts#867
moonming wants to merge 1 commit into
mainfrom
build/dependabot-security-sweep

Conversation

@moonming

@moonmingmoonming commented Aug 3, 2026

Copy link
Copy Markdown
Member

What

Clears all 8 open dependabot alerts (2 high / 3 moderate / 3 low) on the default branch. They collapse into 4 distinct advisories; every one is fixed by upgrade — nothing is dismissed.

AlertsAdvisoryPackageFix
#2#10#11 (moderate)CVE-2026-25537 — type confusion with exp/nbf when not requiredjsonwebtoken 9.3.1 (runtime: inbound OIDC/JWT auth in aisix-proxy, SA token minting in aisix-provider-vertex)→ 10.4.0, aws_lc_rs backend
#6 (high)GHSA-82j2-j2ch-gfr8 — panic on malformed CRL BIT STRINGrustls-webpki 0.103.12→ 0.103.13 (lock bump)
#3#4 (low)GHSA-xgp8-3hg3-c2mh / GHSA-965h-392x-2mh5 — name-constraint bypasses, unpatched in the 0.101 linerustls-webpki 0.101.7 (via retired rustls 0.21 connector)eliminated from the tree (see below)
#1 (high)CVE-2025-62518 — tokio-tar PAX header desync, no patched tokio-tar releasetokio-tar 0.3.1 (dev-only: testcontainers in aisix-admin)testcontainers 0.23 → 0.27, which uses the patched astral-tokio-tar fork
#5 (low)GHSA-cq8v-f236-94qc — unsoundness with a custom loggerrand 0.8.5 (aisix-proxy + redis)→ 0.8.7 (lock bump)

Key decisions

jsonwebtoken 10 backend choice. v10 made the crypto backend an explicit feature. aws_lc_rs reuses the aws-lc-rs 1.16 already in the tree (process-wide rustls provider installed in main()), so this adds no second crypto stack. Our 9.x API usage (encode/decode/Validation/JwkSet/ErrorKind) is source-compatible with 10.4 — zero code changes; all JWT-auth unit tests (signature tampering, alg confusion, kid selection, claim enforcement) pass unchanged. Not 11.0.0: it landed 10 days ago with breaking API churn (non_exhaustive enums, Header.extras rework) and no security content beyond 10.3.0.

Legacy AWS connector removal (the real fix for the webpki 0.101 alerts). rustls-webpki 0.101.7 cannot be patched in place — the fixes only exist in 0.103. It entered via aws-sdk-bedrockruntime's legacy rustls feature → aws-smithy-runtime/tls-rustls → hyper 0.14 + rustls 0.21 connector. That connector is dead code here: every Bedrock client is built on upstream_tls::aws_http_client() (aws-smithy-http-client, rustls 0.23 / aws-lc), and upstream_http.rs carries a guard enforcing exactly that. Swapping the feature to default-https-client on aws-config + aws-sdk-bedrockruntime removes rustls 0.21, rustls-webpki 0.101.7, and hyper 0.14's TLS path from Cargo.lock entirely. On aws-config 1.8 the old rustls feature is already just an alias for the modern client, so that half is a no-op rename.

testcontainers is dev-only. tokio-tar never ships in the gateway binary ([dev-dependencies] of aisix-admin). Upgraded rather than dismissed because the patched fork is a drop-in via testcontainers ≥ 0.25.

Verification

  • cargo build --workspace --all-features — clean
  • cargo test --workspace --all-features — 1,300+ tests, 0 failed
  • cargo clippy --workspace --all-targets --all-features — no warnings; cargo fmt --check clean
  • Cargo.lock after: single rustls (0.23.38), single rustls-webpki (0.103.13), no tokio-tar, jsonwebtoken 10.4.0, testcontainers 0.27.3, rand 0.8.7
  • The one Docker-gated #[ignore] etcd roundtrip test compiles against 0.27; a local run failed only at docker pull (this machine currently can't reach Docker Hub) — before any testcontainers code path under test. CI ignores it by design.

After merge, the 8 alerts should auto-resolve on the next dependabot scan of main.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Maintenance
    • Updated security and networking components to newer implementations.
    • Improved compatibility and reliability across supported cloud integrations.
    • Refreshed testing infrastructure to support more consistent validation.
    • No user-facing API or feature changes were introduced.

Four distinct advisories behind the 8 alerts, all fixed by upgrade —
nothing dismissed:
- jsonwebtoken 9.3.1 -> 10.4.0 (3 moderate: CVE-2026-25537 type
confusion with exp/nbf when not required). Direct runtime dep of
aisix-proxy (inbound OIDC/JWT auth) and aisix-provider-vertex
(SA token minting). v10 requires choosing a crypto backend
explicitly; `aws_lc_rs` reuses the aws-lc-rs already in the tree
from rustls — no new crypto stack. The 9.x API we use (encode /
decode / Validation / JwkSet / ErrorKind) is source-compatible.
- rustls-webpki 0.103.12 -> 0.103.13 (1 high: GHSA-82j2-j2ch-gfr8,
panic on malformed CRL BIT STRING), and the parallel 0.101.7 copy
eliminated entirely (2 low: GHSA-xgp8-3hg3-c2mh / GHSA-965h-392x-2mh5
wildcard/URI name-constraint bypasses, unpatched in the 0.101 line).
0.101.7 came via the retired hyper 0.14 + rustls 0.21 connector that
aws-sdk-bedrockruntime's legacy `rustls` feature drags in; every
Bedrock client is built on `upstream_tls::aws_http_client()`
(rustls 0.23 / aws-lc), so the legacy connector was compiled in but
never used. Swapped the feature to `default-https-client` on
aws-config + aws-sdk-bedrockruntime; rustls 0.21 and webpki 0.101
are gone from Cargo.lock.
- testcontainers 0.23 -> 0.27 (1 high: CVE-2025-62518 tokio-tar PAX
header desync, no patched tokio-tar release). Dev-dependency of
aisix-admin only — never in the shipped binary. testcontainers
>= 0.25 replaced tokio-tar with the patched astral-tokio-tar fork;
the API surface we use is unchanged.
- rand 0.8.5 -> 0.8.7 (1 low: GHSA-cq8v-f236-94qc unsoundness with a
custom logger). Lock-only bump within semver.
Verified: cargo build/test --workspace --all-features green (1,300+
tests, 0 failed), clippy --all-targets clean, fmt clean. The one
Docker-gated #[ignore] etcd roundtrip test compiles against
testcontainers 0.27; running it locally failed only at image pull
(local network cannot reach Docker Hub), before any testcontainers
code path under test.
@coderabbitai

coderabbitaiBot 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: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: ab317c1f-43d4-4737-af6d-e473387fc5a6

📥 Commits

Reviewing files that changed from the base of the PR and between 1df7716 and 6405586.

⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (3)
  • Cargo.toml
  • crates/aisix-provider-vertex/Cargo.toml
  • crates/aisix-proxy/Cargo.toml

📝 Walkthrough

Walkthrough

The pull request updates AWS Bedrock HTTP client features, upgrades the testcontainers dependency, and changes jsonwebtoken to version 10 with aws_lc_rs in two crates.

Changes

Dependency updates

Layer / File(s)Summary
AWS and test dependency configuration
Cargo.toml
AWS Bedrock dependencies now use default-https-client. The testcontainers dependency now uses version 0.27.
JWT dependency configuration
crates/aisix-provider-vertex/Cargo.toml, crates/aisix-proxy/Cargo.toml
Both crates now use jsonwebtoken version 10 with the aws_lc_rs feature.

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

Suggested reviewers:jarvis9443

🚥 Pre-merge checks | ✅ 6
✅ Passed checks (6 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title clearly states that the pull request updates dependencies to resolve all eight open Dependabot alerts.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.
E2e Test Quality Review✅ PassedDependency-only diff; existing JWT and Bedrock E2E suites cover gateway flows, and the real-etcd round trip covers testcontainers. No test changes or hidden ordering were introduced.
Security Check✅ PassedThe PR changes only dependency manifests and Cargo.lock; no logging, storage, authorization, ownership, secret-resolution, or handler code changed. TLS and JWT paths remain secured.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch build/dependabot-security-sweep

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.

membphis added a commit that referenced this pull request Aug 12, 2026
Supersedes the conflicted #867; its analysis was re-verified against
current main and re-landed:
- jsonwebtoken 9.3.1 -> 10.4.0 on the aws_lc_rs backend in aisix-proxy
(inbound OIDC/JWT auth) and aisix-provider-vertex (SA token minting).
Fixes the exp/nbf type-confusion advisory; the API surface in use is
source-compatible, zero code changes.
- aws-config / aws-sdk-bedrockruntime: swap the legacy rustls feature
for default-https-client, removing the retired hyper 0.14 +
rustls 0.21 connector (and rustls-webpki 0.101.7) from the tree.
Every Bedrock client is built on upstream_tls::aws_http_client(),
enforced by an existing guard test, so the connector was dead code.
- testcontainers 0.23 -> 0.28 (dev-only): replaces the unpatched
tokio-tar with the fixed astral-tokio-tar fork.
- Cargo.lock: rustls-webpki 0.103.12 -> 0.103.13 (CRL panic fix),
rand 0.8.5 -> 0.8.7 (custom-logger unsoundness fix).
Independent audit: 0 HIGH / 0 MEDIUM / 4 LOW, all dispositioned on the
PR. CI 12/12 green including both e2e serving modes.
Sign up for freeto 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

@moonming
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

build(deps): clear all 8 open dependabot alerts - #867

Open
moonming wants to merge 1 commit into
mainfrom
build/dependabot-security-sweep
Open

build(deps): clear all 8 open dependabot alerts#867
moonming wants to merge 1 commit into
mainfrom
build/dependabot-security-sweep

Conversation

@moonming

@moonmingmoonming commented Aug 3, 2026

Copy link
Copy Markdown
Member

What

Clears all 8 open dependabot alerts (2 high / 3 moderate / 3 low) on the default branch. They collapse into 4 distinct advisories; every one is fixed by upgrade — nothing is dismissed.

AlertsAdvisoryPackageFix
#2#10#11 (moderate)CVE-2026-25537 — type confusion with exp/nbf when not requiredjsonwebtoken 9.3.1 (runtime: inbound OIDC/JWT auth in aisix-proxy, SA token minting in aisix-provider-vertex)→ 10.4.0, aws_lc_rs backend
#6 (high)GHSA-82j2-j2ch-gfr8 — panic on malformed CRL BIT STRINGrustls-webpki 0.103.12→ 0.103.13 (lock bump)
#3#4 (low)GHSA-xgp8-3hg3-c2mh / GHSA-965h-392x-2mh5 — name-constraint bypasses, unpatched in the 0.101 linerustls-webpki 0.101.7 (via retired rustls 0.21 connector)eliminated from the tree (see below)
#1 (high)CVE-2025-62518 — tokio-tar PAX header desync, no patched tokio-tar releasetokio-tar 0.3.1 (dev-only: testcontainers in aisix-admin)testcontainers 0.23 → 0.27, which uses the patched astral-tokio-tar fork
#5 (low)GHSA-cq8v-f236-94qc — unsoundness with a custom loggerrand 0.8.5 (aisix-proxy + redis)→ 0.8.7 (lock bump)

Key decisions

jsonwebtoken 10 backend choice. v10 made the crypto backend an explicit feature. aws_lc_rs reuses the aws-lc-rs 1.16 already in the tree (process-wide rustls provider installed in main()), so this adds no second crypto stack. Our 9.x API usage (encode/decode/Validation/JwkSet/ErrorKind) is source-compatible with 10.4 — zero code changes; all JWT-auth unit tests (signature tampering, alg confusion, kid selection, claim enforcement) pass unchanged. Not 11.0.0: it landed 10 days ago with breaking API churn (non_exhaustive enums, Header.extras rework) and no security content beyond 10.3.0.

Legacy AWS connector removal (the real fix for the webpki 0.101 alerts). rustls-webpki 0.101.7 cannot be patched in place — the fixes only exist in 0.103. It entered via aws-sdk-bedrockruntime's legacy rustls feature → aws-smithy-runtime/tls-rustls → hyper 0.14 + rustls 0.21 connector. That connector is dead code here: every Bedrock client is built on upstream_tls::aws_http_client() (aws-smithy-http-client, rustls 0.23 / aws-lc), and upstream_http.rs carries a guard enforcing exactly that. Swapping the feature to default-https-client on aws-config + aws-sdk-bedrockruntime removes rustls 0.21, rustls-webpki 0.101.7, and hyper 0.14's TLS path from Cargo.lock entirely. On aws-config 1.8 the old rustls feature is already just an alias for the modern client, so that half is a no-op rename.

testcontainers is dev-only. tokio-tar never ships in the gateway binary ([dev-dependencies] of aisix-admin). Upgraded rather than dismissed because the patched fork is a drop-in via testcontainers ≥ 0.25.

Verification

  • cargo build --workspace --all-features — clean
  • cargo test --workspace --all-features — 1,300+ tests, 0 failed
  • cargo clippy --workspace --all-targets --all-features — no warnings; cargo fmt --check clean
  • Cargo.lock after: single rustls (0.23.38), single rustls-webpki (0.103.13), no tokio-tar, jsonwebtoken 10.4.0, testcontainers 0.27.3, rand 0.8.7
  • The one Docker-gated #[ignore] etcd roundtrip test compiles against 0.27; a local run failed only at docker pull (this machine currently can't reach Docker Hub) — before any testcontainers code path under test. CI ignores it by design.

After merge, the 8 alerts should auto-resolve on the next dependabot scan of main.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Maintenance
    • Updated security and networking components to newer implementations.
    • Improved compatibility and reliability across supported cloud integrations.
    • Refreshed testing infrastructure to support more consistent validation.
    • No user-facing API or feature changes were introduced.

Four distinct advisories behind the 8 alerts, all fixed by upgrade —
nothing dismissed:
- jsonwebtoken 9.3.1 -> 10.4.0 (3 moderate: CVE-2026-25537 type
confusion with exp/nbf when not required). Direct runtime dep of
aisix-proxy (inbound OIDC/JWT auth) and aisix-provider-vertex
(SA token minting). v10 requires choosing a crypto backend
explicitly; `aws_lc_rs` reuses the aws-lc-rs already in the tree
from rustls — no new crypto stack. The 9.x API we use (encode /
decode / Validation / JwkSet / ErrorKind) is source-compatible.
- rustls-webpki 0.103.12 -> 0.103.13 (1 high: GHSA-82j2-j2ch-gfr8,
panic on malformed CRL BIT STRING), and the parallel 0.101.7 copy
eliminated entirely (2 low: GHSA-xgp8-3hg3-c2mh / GHSA-965h-392x-2mh5
wildcard/URI name-constraint bypasses, unpatched in the 0.101 line).
0.101.7 came via the retired hyper 0.14 + rustls 0.21 connector that
aws-sdk-bedrockruntime's legacy `rustls` feature drags in; every
Bedrock client is built on `upstream_tls::aws_http_client()`
(rustls 0.23 / aws-lc), so the legacy connector was compiled in but
never used. Swapped the feature to `default-https-client` on
aws-config + aws-sdk-bedrockruntime; rustls 0.21 and webpki 0.101
are gone from Cargo.lock.
- testcontainers 0.23 -> 0.27 (1 high: CVE-2025-62518 tokio-tar PAX
header desync, no patched tokio-tar release). Dev-dependency of
aisix-admin only — never in the shipped binary. testcontainers
>= 0.25 replaced tokio-tar with the patched astral-tokio-tar fork;
the API surface we use is unchanged.
- rand 0.8.5 -> 0.8.7 (1 low: GHSA-cq8v-f236-94qc unsoundness with a
custom logger). Lock-only bump within semver.
Verified: cargo build/test --workspace --all-features green (1,300+
tests, 0 failed), clippy --all-targets clean, fmt clean. The one
Docker-gated #[ignore] etcd roundtrip test compiles against
testcontainers 0.27; running it locally failed only at image pull
(local network cannot reach Docker Hub), before any testcontainers
code path under test.
@coderabbitai

coderabbitaiBot 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: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: ab317c1f-43d4-4737-af6d-e473387fc5a6

📥 Commits

Reviewing files that changed from the base of the PR and between 1df7716 and 6405586.

⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (3)
  • Cargo.toml
  • crates/aisix-provider-vertex/Cargo.toml
  • crates/aisix-proxy/Cargo.toml

📝 Walkthrough

Walkthrough

The pull request updates AWS Bedrock HTTP client features, upgrades the testcontainers dependency, and changes jsonwebtoken to version 10 with aws_lc_rs in two crates.

Changes

Dependency updates

Layer / File(s)Summary
AWS and test dependency configuration
Cargo.toml
AWS Bedrock dependencies now use default-https-client. The testcontainers dependency now uses version 0.27.
JWT dependency configuration
crates/aisix-provider-vertex/Cargo.toml, crates/aisix-proxy/Cargo.toml
Both crates now use jsonwebtoken version 10 with the aws_lc_rs feature.

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

Suggested reviewers:jarvis9443

🚥 Pre-merge checks | ✅ 6
✅ Passed checks (6 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title clearly states that the pull request updates dependencies to resolve all eight open Dependabot alerts.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.
E2e Test Quality Review✅ PassedDependency-only diff; existing JWT and Bedrock E2E suites cover gateway flows, and the real-etcd round trip covers testcontainers. No test changes or hidden ordering were introduced.
Security Check✅ PassedThe PR changes only dependency manifests and Cargo.lock; no logging, storage, authorization, ownership, secret-resolution, or handler code changed. TLS and JWT paths remain secured.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch build/dependabot-security-sweep

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.

membphis added a commit that referenced this pull request Aug 12, 2026
Supersedes the conflicted #867; its analysis was re-verified against
current main and re-landed:
- jsonwebtoken 9.3.1 -> 10.4.0 on the aws_lc_rs backend in aisix-proxy
(inbound OIDC/JWT auth) and aisix-provider-vertex (SA token minting).
Fixes the exp/nbf type-confusion advisory; the API surface in use is
source-compatible, zero code changes.
- aws-config / aws-sdk-bedrockruntime: swap the legacy rustls feature
for default-https-client, removing the retired hyper 0.14 +
rustls 0.21 connector (and rustls-webpki 0.101.7) from the tree.
Every Bedrock client is built on upstream_tls::aws_http_client(),
enforced by an existing guard test, so the connector was dead code.
- testcontainers 0.23 -> 0.28 (dev-only): replaces the unpatched
tokio-tar with the fixed astral-tokio-tar fork.
- Cargo.lock: rustls-webpki 0.103.12 -> 0.103.13 (CRL panic fix),
rand 0.8.5 -> 0.8.7 (custom-logger unsoundness fix).
Independent audit: 0 HIGH / 0 MEDIUM / 4 LOW, all dispositioned on the
PR. CI 12/12 green including both e2e serving modes.
Sign up for freeto 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

@moonming
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

build(deps): clear all 8 open dependabot alerts - #867

Open
moonming wants to merge 1 commit into
mainfrom
build/dependabot-security-sweep
Open

build(deps): clear all 8 open dependabot alerts#867
moonming wants to merge 1 commit into
mainfrom
build/dependabot-security-sweep

Conversation

@moonming

@moonmingmoonming commented Aug 3, 2026

Copy link
Copy Markdown
Member

What

Clears all 8 open dependabot alerts (2 high / 3 moderate / 3 low) on the default branch. They collapse into 4 distinct advisories; every one is fixed by upgrade — nothing is dismissed.

AlertsAdvisoryPackageFix
#2#10#11 (moderate)CVE-2026-25537 — type confusion with exp/nbf when not requiredjsonwebtoken 9.3.1 (runtime: inbound OIDC/JWT auth in aisix-proxy, SA token minting in aisix-provider-vertex)→ 10.4.0, aws_lc_rs backend
#6 (high)GHSA-82j2-j2ch-gfr8 — panic on malformed CRL BIT STRINGrustls-webpki 0.103.12→ 0.103.13 (lock bump)
#3#4 (low)GHSA-xgp8-3hg3-c2mh / GHSA-965h-392x-2mh5 — name-constraint bypasses, unpatched in the 0.101 linerustls-webpki 0.101.7 (via retired rustls 0.21 connector)eliminated from the tree (see below)
#1 (high)CVE-2025-62518 — tokio-tar PAX header desync, no patched tokio-tar releasetokio-tar 0.3.1 (dev-only: testcontainers in aisix-admin)testcontainers 0.23 → 0.27, which uses the patched astral-tokio-tar fork
#5 (low)GHSA-cq8v-f236-94qc — unsoundness with a custom loggerrand 0.8.5 (aisix-proxy + redis)→ 0.8.7 (lock bump)

Key decisions

jsonwebtoken 10 backend choice. v10 made the crypto backend an explicit feature. aws_lc_rs reuses the aws-lc-rs 1.16 already in the tree (process-wide rustls provider installed in main()), so this adds no second crypto stack. Our 9.x API usage (encode/decode/Validation/JwkSet/ErrorKind) is source-compatible with 10.4 — zero code changes; all JWT-auth unit tests (signature tampering, alg confusion, kid selection, claim enforcement) pass unchanged. Not 11.0.0: it landed 10 days ago with breaking API churn (non_exhaustive enums, Header.extras rework) and no security content beyond 10.3.0.

Legacy AWS connector removal (the real fix for the webpki 0.101 alerts). rustls-webpki 0.101.7 cannot be patched in place — the fixes only exist in 0.103. It entered via aws-sdk-bedrockruntime's legacy rustls feature → aws-smithy-runtime/tls-rustls → hyper 0.14 + rustls 0.21 connector. That connector is dead code here: every Bedrock client is built on upstream_tls::aws_http_client() (aws-smithy-http-client, rustls 0.23 / aws-lc), and upstream_http.rs carries a guard enforcing exactly that. Swapping the feature to default-https-client on aws-config + aws-sdk-bedrockruntime removes rustls 0.21, rustls-webpki 0.101.7, and hyper 0.14's TLS path from Cargo.lock entirely. On aws-config 1.8 the old rustls feature is already just an alias for the modern client, so that half is a no-op rename.

testcontainers is dev-only. tokio-tar never ships in the gateway binary ([dev-dependencies] of aisix-admin). Upgraded rather than dismissed because the patched fork is a drop-in via testcontainers ≥ 0.25.

Verification

  • cargo build --workspace --all-features — clean
  • cargo test --workspace --all-features — 1,300+ tests, 0 failed
  • cargo clippy --workspace --all-targets --all-features — no warnings; cargo fmt --check clean
  • Cargo.lock after: single rustls (0.23.38), single rustls-webpki (0.103.13), no tokio-tar, jsonwebtoken 10.4.0, testcontainers 0.27.3, rand 0.8.7
  • The one Docker-gated #[ignore] etcd roundtrip test compiles against 0.27; a local run failed only at docker pull (this machine currently can't reach Docker Hub) — before any testcontainers code path under test. CI ignores it by design.

After merge, the 8 alerts should auto-resolve on the next dependabot scan of main.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Maintenance
    • Updated security and networking components to newer implementations.
    • Improved compatibility and reliability across supported cloud integrations.
    • Refreshed testing infrastructure to support more consistent validation.
    • No user-facing API or feature changes were introduced.

Four distinct advisories behind the 8 alerts, all fixed by upgrade —
nothing dismissed:
- jsonwebtoken 9.3.1 -> 10.4.0 (3 moderate: CVE-2026-25537 type
confusion with exp/nbf when not required). Direct runtime dep of
aisix-proxy (inbound OIDC/JWT auth) and aisix-provider-vertex
(SA token minting). v10 requires choosing a crypto backend
explicitly; `aws_lc_rs` reuses the aws-lc-rs already in the tree
from rustls — no new crypto stack. The 9.x API we use (encode /
decode / Validation / JwkSet / ErrorKind) is source-compatible.
- rustls-webpki 0.103.12 -> 0.103.13 (1 high: GHSA-82j2-j2ch-gfr8,
panic on malformed CRL BIT STRING), and the parallel 0.101.7 copy
eliminated entirely (2 low: GHSA-xgp8-3hg3-c2mh / GHSA-965h-392x-2mh5
wildcard/URI name-constraint bypasses, unpatched in the 0.101 line).
0.101.7 came via the retired hyper 0.14 + rustls 0.21 connector that
aws-sdk-bedrockruntime's legacy `rustls` feature drags in; every
Bedrock client is built on `upstream_tls::aws_http_client()`
(rustls 0.23 / aws-lc), so the legacy connector was compiled in but
never used. Swapped the feature to `default-https-client` on
aws-config + aws-sdk-bedrockruntime; rustls 0.21 and webpki 0.101
are gone from Cargo.lock.
- testcontainers 0.23 -> 0.27 (1 high: CVE-2025-62518 tokio-tar PAX
header desync, no patched tokio-tar release). Dev-dependency of
aisix-admin only — never in the shipped binary. testcontainers
>= 0.25 replaced tokio-tar with the patched astral-tokio-tar fork;
the API surface we use is unchanged.
- rand 0.8.5 -> 0.8.7 (1 low: GHSA-cq8v-f236-94qc unsoundness with a
custom logger). Lock-only bump within semver.
Verified: cargo build/test --workspace --all-features green (1,300+
tests, 0 failed), clippy --all-targets clean, fmt clean. The one
Docker-gated #[ignore] etcd roundtrip test compiles against
testcontainers 0.27; running it locally failed only at image pull
(local network cannot reach Docker Hub), before any testcontainers
code path under test.
@coderabbitai

coderabbitaiBot 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: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: ab317c1f-43d4-4737-af6d-e473387fc5a6

📥 Commits

Reviewing files that changed from the base of the PR and between 1df7716 and 6405586.

⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (3)
  • Cargo.toml
  • crates/aisix-provider-vertex/Cargo.toml
  • crates/aisix-proxy/Cargo.toml

📝 Walkthrough

Walkthrough

The pull request updates AWS Bedrock HTTP client features, upgrades the testcontainers dependency, and changes jsonwebtoken to version 10 with aws_lc_rs in two crates.

Changes

Dependency updates

Layer / File(s)Summary
AWS and test dependency configuration
Cargo.toml
AWS Bedrock dependencies now use default-https-client. The testcontainers dependency now uses version 0.27.
JWT dependency configuration
crates/aisix-provider-vertex/Cargo.toml, crates/aisix-proxy/Cargo.toml
Both crates now use jsonwebtoken version 10 with the aws_lc_rs feature.

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

Suggested reviewers:jarvis9443

🚥 Pre-merge checks | ✅ 6
✅ Passed checks (6 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title clearly states that the pull request updates dependencies to resolve all eight open Dependabot alerts.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.
E2e Test Quality Review✅ PassedDependency-only diff; existing JWT and Bedrock E2E suites cover gateway flows, and the real-etcd round trip covers testcontainers. No test changes or hidden ordering were introduced.
Security Check✅ PassedThe PR changes only dependency manifests and Cargo.lock; no logging, storage, authorization, ownership, secret-resolution, or handler code changed. TLS and JWT paths remain secured.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch build/dependabot-security-sweep

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.

membphis added a commit that referenced this pull request Aug 12, 2026
Supersedes the conflicted #867; its analysis was re-verified against
current main and re-landed:
- jsonwebtoken 9.3.1 -> 10.4.0 on the aws_lc_rs backend in aisix-proxy
(inbound OIDC/JWT auth) and aisix-provider-vertex (SA token minting).
Fixes the exp/nbf type-confusion advisory; the API surface in use is
source-compatible, zero code changes.
- aws-config / aws-sdk-bedrockruntime: swap the legacy rustls feature
for default-https-client, removing the retired hyper 0.14 +
rustls 0.21 connector (and rustls-webpki 0.101.7) from the tree.
Every Bedrock client is built on upstream_tls::aws_http_client(),
enforced by an existing guard test, so the connector was dead code.
- testcontainers 0.23 -> 0.28 (dev-only): replaces the unpatched
tokio-tar with the fixed astral-tokio-tar fork.
- Cargo.lock: rustls-webpki 0.103.12 -> 0.103.13 (CRL panic fix),
rand 0.8.5 -> 0.8.7 (custom-logger unsoundness fix).
Independent audit: 0 HIGH / 0 MEDIUM / 4 LOW, all dispositioned on the
PR. CI 12/12 green including both e2e serving modes.
Sign up for freeto 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

@moonming
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

build(deps): clear all 8 open dependabot alerts - #867

Open
moonming wants to merge 1 commit into
mainfrom
build/dependabot-security-sweep
Open

build(deps): clear all 8 open dependabot alerts#867
moonming wants to merge 1 commit into
mainfrom
build/dependabot-security-sweep

Conversation

@moonming

@moonmingmoonming commented Aug 3, 2026

Copy link
Copy Markdown
Member

What

Clears all 8 open dependabot alerts (2 high / 3 moderate / 3 low) on the default branch. They collapse into 4 distinct advisories; every one is fixed by upgrade — nothing is dismissed.

AlertsAdvisoryPackageFix
#2#10#11 (moderate)CVE-2026-25537 — type confusion with exp/nbf when not requiredjsonwebtoken 9.3.1 (runtime: inbound OIDC/JWT auth in aisix-proxy, SA token minting in aisix-provider-vertex)→ 10.4.0, aws_lc_rs backend
#6 (high)GHSA-82j2-j2ch-gfr8 — panic on malformed CRL BIT STRINGrustls-webpki 0.103.12→ 0.103.13 (lock bump)
#3#4 (low)GHSA-xgp8-3hg3-c2mh / GHSA-965h-392x-2mh5 — name-constraint bypasses, unpatched in the 0.101 linerustls-webpki 0.101.7 (via retired rustls 0.21 connector)eliminated from the tree (see below)
#1 (high)CVE-2025-62518 — tokio-tar PAX header desync, no patched tokio-tar releasetokio-tar 0.3.1 (dev-only: testcontainers in aisix-admin)testcontainers 0.23 → 0.27, which uses the patched astral-tokio-tar fork
#5 (low)GHSA-cq8v-f236-94qc — unsoundness with a custom loggerrand 0.8.5 (aisix-proxy + redis)→ 0.8.7 (lock bump)

Key decisions

jsonwebtoken 10 backend choice. v10 made the crypto backend an explicit feature. aws_lc_rs reuses the aws-lc-rs 1.16 already in the tree (process-wide rustls provider installed in main()), so this adds no second crypto stack. Our 9.x API usage (encode/decode/Validation/JwkSet/ErrorKind) is source-compatible with 10.4 — zero code changes; all JWT-auth unit tests (signature tampering, alg confusion, kid selection, claim enforcement) pass unchanged. Not 11.0.0: it landed 10 days ago with breaking API churn (non_exhaustive enums, Header.extras rework) and no security content beyond 10.3.0.

Legacy AWS connector removal (the real fix for the webpki 0.101 alerts). rustls-webpki 0.101.7 cannot be patched in place — the fixes only exist in 0.103. It entered via aws-sdk-bedrockruntime's legacy rustls feature → aws-smithy-runtime/tls-rustls → hyper 0.14 + rustls 0.21 connector. That connector is dead code here: every Bedrock client is built on upstream_tls::aws_http_client() (aws-smithy-http-client, rustls 0.23 / aws-lc), and upstream_http.rs carries a guard enforcing exactly that. Swapping the feature to default-https-client on aws-config + aws-sdk-bedrockruntime removes rustls 0.21, rustls-webpki 0.101.7, and hyper 0.14's TLS path from Cargo.lock entirely. On aws-config 1.8 the old rustls feature is already just an alias for the modern client, so that half is a no-op rename.

testcontainers is dev-only. tokio-tar never ships in the gateway binary ([dev-dependencies] of aisix-admin). Upgraded rather than dismissed because the patched fork is a drop-in via testcontainers ≥ 0.25.

Verification

  • cargo build --workspace --all-features — clean
  • cargo test --workspace --all-features — 1,300+ tests, 0 failed
  • cargo clippy --workspace --all-targets --all-features — no warnings; cargo fmt --check clean
  • Cargo.lock after: single rustls (0.23.38), single rustls-webpki (0.103.13), no tokio-tar, jsonwebtoken 10.4.0, testcontainers 0.27.3, rand 0.8.7
  • The one Docker-gated #[ignore] etcd roundtrip test compiles against 0.27; a local run failed only at docker pull (this machine currently can't reach Docker Hub) — before any testcontainers code path under test. CI ignores it by design.

After merge, the 8 alerts should auto-resolve on the next dependabot scan of main.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Maintenance
    • Updated security and networking components to newer implementations.
    • Improved compatibility and reliability across supported cloud integrations.
    • Refreshed testing infrastructure to support more consistent validation.
    • No user-facing API or feature changes were introduced.

Four distinct advisories behind the 8 alerts, all fixed by upgrade —
nothing dismissed:
- jsonwebtoken 9.3.1 -> 10.4.0 (3 moderate: CVE-2026-25537 type
confusion with exp/nbf when not required). Direct runtime dep of
aisix-proxy (inbound OIDC/JWT auth) and aisix-provider-vertex
(SA token minting). v10 requires choosing a crypto backend
explicitly; `aws_lc_rs` reuses the aws-lc-rs already in the tree
from rustls — no new crypto stack. The 9.x API we use (encode /
decode / Validation / JwkSet / ErrorKind) is source-compatible.
- rustls-webpki 0.103.12 -> 0.103.13 (1 high: GHSA-82j2-j2ch-gfr8,
panic on malformed CRL BIT STRING), and the parallel 0.101.7 copy
eliminated entirely (2 low: GHSA-xgp8-3hg3-c2mh / GHSA-965h-392x-2mh5
wildcard/URI name-constraint bypasses, unpatched in the 0.101 line).
0.101.7 came via the retired hyper 0.14 + rustls 0.21 connector that
aws-sdk-bedrockruntime's legacy `rustls` feature drags in; every
Bedrock client is built on `upstream_tls::aws_http_client()`
(rustls 0.23 / aws-lc), so the legacy connector was compiled in but
never used. Swapped the feature to `default-https-client` on
aws-config + aws-sdk-bedrockruntime; rustls 0.21 and webpki 0.101
are gone from Cargo.lock.
- testcontainers 0.23 -> 0.27 (1 high: CVE-2025-62518 tokio-tar PAX
header desync, no patched tokio-tar release). Dev-dependency of
aisix-admin only — never in the shipped binary. testcontainers
>= 0.25 replaced tokio-tar with the patched astral-tokio-tar fork;
the API surface we use is unchanged.
- rand 0.8.5 -> 0.8.7 (1 low: GHSA-cq8v-f236-94qc unsoundness with a
custom logger). Lock-only bump within semver.
Verified: cargo build/test --workspace --all-features green (1,300+
tests, 0 failed), clippy --all-targets clean, fmt clean. The one
Docker-gated #[ignore] etcd roundtrip test compiles against
testcontainers 0.27; running it locally failed only at image pull
(local network cannot reach Docker Hub), before any testcontainers
code path under test.
@coderabbitai

coderabbitaiBot 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: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: ab317c1f-43d4-4737-af6d-e473387fc5a6

📥 Commits

Reviewing files that changed from the base of the PR and between 1df7716 and 6405586.

⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (3)
  • Cargo.toml
  • crates/aisix-provider-vertex/Cargo.toml
  • crates/aisix-proxy/Cargo.toml

📝 Walkthrough

Walkthrough

The pull request updates AWS Bedrock HTTP client features, upgrades the testcontainers dependency, and changes jsonwebtoken to version 10 with aws_lc_rs in two crates.

Changes

Dependency updates

Layer / File(s)Summary
AWS and test dependency configuration
Cargo.toml
AWS Bedrock dependencies now use default-https-client. The testcontainers dependency now uses version 0.27.
JWT dependency configuration
crates/aisix-provider-vertex/Cargo.toml, crates/aisix-proxy/Cargo.toml
Both crates now use jsonwebtoken version 10 with the aws_lc_rs feature.

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

Suggested reviewers:jarvis9443

🚥 Pre-merge checks | ✅ 6
✅ Passed checks (6 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title clearly states that the pull request updates dependencies to resolve all eight open Dependabot alerts.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.
E2e Test Quality Review✅ PassedDependency-only diff; existing JWT and Bedrock E2E suites cover gateway flows, and the real-etcd round trip covers testcontainers. No test changes or hidden ordering were introduced.
Security Check✅ PassedThe PR changes only dependency manifests and Cargo.lock; no logging, storage, authorization, ownership, secret-resolution, or handler code changed. TLS and JWT paths remain secured.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch build/dependabot-security-sweep

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.

membphis added a commit that referenced this pull request Aug 12, 2026
Supersedes the conflicted #867; its analysis was re-verified against
current main and re-landed:
- jsonwebtoken 9.3.1 -> 10.4.0 on the aws_lc_rs backend in aisix-proxy
(inbound OIDC/JWT auth) and aisix-provider-vertex (SA token minting).
Fixes the exp/nbf type-confusion advisory; the API surface in use is
source-compatible, zero code changes.
- aws-config / aws-sdk-bedrockruntime: swap the legacy rustls feature
for default-https-client, removing the retired hyper 0.14 +
rustls 0.21 connector (and rustls-webpki 0.101.7) from the tree.
Every Bedrock client is built on upstream_tls::aws_http_client(),
enforced by an existing guard test, so the connector was dead code.
- testcontainers 0.23 -> 0.28 (dev-only): replaces the unpatched
tokio-tar with the fixed astral-tokio-tar fork.
- Cargo.lock: rustls-webpki 0.103.12 -> 0.103.13 (CRL panic fix),
rand 0.8.5 -> 0.8.7 (custom-logger unsoundness fix).
Independent audit: 0 HIGH / 0 MEDIUM / 4 LOW, all dispositioned on the
PR. CI 12/12 green including both e2e serving modes.
Sign up for freeto 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

@moonming
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

build(deps): clear all 8 open dependabot alerts - #867

Open
moonming wants to merge 1 commit into
mainfrom
build/dependabot-security-sweep
Open

build(deps): clear all 8 open dependabot alerts#867
moonming wants to merge 1 commit into
mainfrom
build/dependabot-security-sweep

Conversation

@moonming

@moonmingmoonming commented Aug 3, 2026

Copy link
Copy Markdown
Member

What

Clears all 8 open dependabot alerts (2 high / 3 moderate / 3 low) on the default branch. They collapse into 4 distinct advisories; every one is fixed by upgrade — nothing is dismissed.

AlertsAdvisoryPackageFix
#2#10#11 (moderate)CVE-2026-25537 — type confusion with exp/nbf when not requiredjsonwebtoken 9.3.1 (runtime: inbound OIDC/JWT auth in aisix-proxy, SA token minting in aisix-provider-vertex)→ 10.4.0, aws_lc_rs backend
#6 (high)GHSA-82j2-j2ch-gfr8 — panic on malformed CRL BIT STRINGrustls-webpki 0.103.12→ 0.103.13 (lock bump)
#3#4 (low)GHSA-xgp8-3hg3-c2mh / GHSA-965h-392x-2mh5 — name-constraint bypasses, unpatched in the 0.101 linerustls-webpki 0.101.7 (via retired rustls 0.21 connector)eliminated from the tree (see below)
#1 (high)CVE-2025-62518 — tokio-tar PAX header desync, no patched tokio-tar releasetokio-tar 0.3.1 (dev-only: testcontainers in aisix-admin)testcontainers 0.23 → 0.27, which uses the patched astral-tokio-tar fork
#5 (low)GHSA-cq8v-f236-94qc — unsoundness with a custom loggerrand 0.8.5 (aisix-proxy + redis)→ 0.8.7 (lock bump)

Key decisions

jsonwebtoken 10 backend choice. v10 made the crypto backend an explicit feature. aws_lc_rs reuses the aws-lc-rs 1.16 already in the tree (process-wide rustls provider installed in main()), so this adds no second crypto stack. Our 9.x API usage (encode/decode/Validation/JwkSet/ErrorKind) is source-compatible with 10.4 — zero code changes; all JWT-auth unit tests (signature tampering, alg confusion, kid selection, claim enforcement) pass unchanged. Not 11.0.0: it landed 10 days ago with breaking API churn (non_exhaustive enums, Header.extras rework) and no security content beyond 10.3.0.

Legacy AWS connector removal (the real fix for the webpki 0.101 alerts). rustls-webpki 0.101.7 cannot be patched in place — the fixes only exist in 0.103. It entered via aws-sdk-bedrockruntime's legacy rustls feature → aws-smithy-runtime/tls-rustls → hyper 0.14 + rustls 0.21 connector. That connector is dead code here: every Bedrock client is built on upstream_tls::aws_http_client() (aws-smithy-http-client, rustls 0.23 / aws-lc), and upstream_http.rs carries a guard enforcing exactly that. Swapping the feature to default-https-client on aws-config + aws-sdk-bedrockruntime removes rustls 0.21, rustls-webpki 0.101.7, and hyper 0.14's TLS path from Cargo.lock entirely. On aws-config 1.8 the old rustls feature is already just an alias for the modern client, so that half is a no-op rename.

testcontainers is dev-only. tokio-tar never ships in the gateway binary ([dev-dependencies] of aisix-admin). Upgraded rather than dismissed because the patched fork is a drop-in via testcontainers ≥ 0.25.

Verification

  • cargo build --workspace --all-features — clean
  • cargo test --workspace --all-features — 1,300+ tests, 0 failed
  • cargo clippy --workspace --all-targets --all-features — no warnings; cargo fmt --check clean
  • Cargo.lock after: single rustls (0.23.38), single rustls-webpki (0.103.13), no tokio-tar, jsonwebtoken 10.4.0, testcontainers 0.27.3, rand 0.8.7
  • The one Docker-gated #[ignore] etcd roundtrip test compiles against 0.27; a local run failed only at docker pull (this machine currently can't reach Docker Hub) — before any testcontainers code path under test. CI ignores it by design.

After merge, the 8 alerts should auto-resolve on the next dependabot scan of main.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Maintenance
    • Updated security and networking components to newer implementations.
    • Improved compatibility and reliability across supported cloud integrations.
    • Refreshed testing infrastructure to support more consistent validation.
    • No user-facing API or feature changes were introduced.

Four distinct advisories behind the 8 alerts, all fixed by upgrade —
nothing dismissed:
- jsonwebtoken 9.3.1 -> 10.4.0 (3 moderate: CVE-2026-25537 type
confusion with exp/nbf when not required). Direct runtime dep of
aisix-proxy (inbound OIDC/JWT auth) and aisix-provider-vertex
(SA token minting). v10 requires choosing a crypto backend
explicitly; `aws_lc_rs` reuses the aws-lc-rs already in the tree
from rustls — no new crypto stack. The 9.x API we use (encode /
decode / Validation / JwkSet / ErrorKind) is source-compatible.
- rustls-webpki 0.103.12 -> 0.103.13 (1 high: GHSA-82j2-j2ch-gfr8,
panic on malformed CRL BIT STRING), and the parallel 0.101.7 copy
eliminated entirely (2 low: GHSA-xgp8-3hg3-c2mh / GHSA-965h-392x-2mh5
wildcard/URI name-constraint bypasses, unpatched in the 0.101 line).
0.101.7 came via the retired hyper 0.14 + rustls 0.21 connector that
aws-sdk-bedrockruntime's legacy `rustls` feature drags in; every
Bedrock client is built on `upstream_tls::aws_http_client()`
(rustls 0.23 / aws-lc), so the legacy connector was compiled in but
never used. Swapped the feature to `default-https-client` on
aws-config + aws-sdk-bedrockruntime; rustls 0.21 and webpki 0.101
are gone from Cargo.lock.
- testcontainers 0.23 -> 0.27 (1 high: CVE-2025-62518 tokio-tar PAX
header desync, no patched tokio-tar release). Dev-dependency of
aisix-admin only — never in the shipped binary. testcontainers
>= 0.25 replaced tokio-tar with the patched astral-tokio-tar fork;
the API surface we use is unchanged.
- rand 0.8.5 -> 0.8.7 (1 low: GHSA-cq8v-f236-94qc unsoundness with a
custom logger). Lock-only bump within semver.
Verified: cargo build/test --workspace --all-features green (1,300+
tests, 0 failed), clippy --all-targets clean, fmt clean. The one
Docker-gated #[ignore] etcd roundtrip test compiles against
testcontainers 0.27; running it locally failed only at image pull
(local network cannot reach Docker Hub), before any testcontainers
code path under test.
@coderabbitai

coderabbitaiBot 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: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: ab317c1f-43d4-4737-af6d-e473387fc5a6

📥 Commits

Reviewing files that changed from the base of the PR and between 1df7716 and 6405586.

⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (3)
  • Cargo.toml
  • crates/aisix-provider-vertex/Cargo.toml
  • crates/aisix-proxy/Cargo.toml

📝 Walkthrough

Walkthrough

The pull request updates AWS Bedrock HTTP client features, upgrades the testcontainers dependency, and changes jsonwebtoken to version 10 with aws_lc_rs in two crates.

Changes

Dependency updates

Layer / File(s)Summary
AWS and test dependency configuration
Cargo.toml
AWS Bedrock dependencies now use default-https-client. The testcontainers dependency now uses version 0.27.
JWT dependency configuration
crates/aisix-provider-vertex/Cargo.toml, crates/aisix-proxy/Cargo.toml
Both crates now use jsonwebtoken version 10 with the aws_lc_rs feature.

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

Suggested reviewers:jarvis9443

🚥 Pre-merge checks | ✅ 6
✅ Passed checks (6 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title clearly states that the pull request updates dependencies to resolve all eight open Dependabot alerts.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.
E2e Test Quality Review✅ PassedDependency-only diff; existing JWT and Bedrock E2E suites cover gateway flows, and the real-etcd round trip covers testcontainers. No test changes or hidden ordering were introduced.
Security Check✅ PassedThe PR changes only dependency manifests and Cargo.lock; no logging, storage, authorization, ownership, secret-resolution, or handler code changed. TLS and JWT paths remain secured.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch build/dependabot-security-sweep

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.

membphis added a commit that referenced this pull request Aug 12, 2026
Supersedes the conflicted #867; its analysis was re-verified against
current main and re-landed:
- jsonwebtoken 9.3.1 -> 10.4.0 on the aws_lc_rs backend in aisix-proxy
(inbound OIDC/JWT auth) and aisix-provider-vertex (SA token minting).
Fixes the exp/nbf type-confusion advisory; the API surface in use is
source-compatible, zero code changes.
- aws-config / aws-sdk-bedrockruntime: swap the legacy rustls feature
for default-https-client, removing the retired hyper 0.14 +
rustls 0.21 connector (and rustls-webpki 0.101.7) from the tree.
Every Bedrock client is built on upstream_tls::aws_http_client(),
enforced by an existing guard test, so the connector was dead code.
- testcontainers 0.23 -> 0.28 (dev-only): replaces the unpatched
tokio-tar with the fixed astral-tokio-tar fork.
- Cargo.lock: rustls-webpki 0.103.12 -> 0.103.13 (CRL panic fix),
rand 0.8.5 -> 0.8.7 (custom-logger unsoundness fix).
Independent audit: 0 HIGH / 0 MEDIUM / 4 LOW, all dispositioned on the
PR. CI 12/12 green including both e2e serving modes.
Sign up for freeto 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

@moonming
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

build(deps): clear all 8 open dependabot alerts - #867

Open
moonming wants to merge 1 commit into
mainfrom
build/dependabot-security-sweep
Open

build(deps): clear all 8 open dependabot alerts#867
moonming wants to merge 1 commit into
mainfrom
build/dependabot-security-sweep

Conversation

@moonming

@moonmingmoonming commented Aug 3, 2026

Copy link
Copy Markdown
Member

What

Clears all 8 open dependabot alerts (2 high / 3 moderate / 3 low) on the default branch. They collapse into 4 distinct advisories; every one is fixed by upgrade — nothing is dismissed.

AlertsAdvisoryPackageFix
#2#10#11 (moderate)CVE-2026-25537 — type confusion with exp/nbf when not requiredjsonwebtoken 9.3.1 (runtime: inbound OIDC/JWT auth in aisix-proxy, SA token minting in aisix-provider-vertex)→ 10.4.0, aws_lc_rs backend
#6 (high)GHSA-82j2-j2ch-gfr8 — panic on malformed CRL BIT STRINGrustls-webpki 0.103.12→ 0.103.13 (lock bump)
#3#4 (low)GHSA-xgp8-3hg3-c2mh / GHSA-965h-392x-2mh5 — name-constraint bypasses, unpatched in the 0.101 linerustls-webpki 0.101.7 (via retired rustls 0.21 connector)eliminated from the tree (see below)
#1 (high)CVE-2025-62518 — tokio-tar PAX header desync, no patched tokio-tar releasetokio-tar 0.3.1 (dev-only: testcontainers in aisix-admin)testcontainers 0.23 → 0.27, which uses the patched astral-tokio-tar fork
#5 (low)GHSA-cq8v-f236-94qc — unsoundness with a custom loggerrand 0.8.5 (aisix-proxy + redis)→ 0.8.7 (lock bump)

Key decisions

jsonwebtoken 10 backend choice. v10 made the crypto backend an explicit feature. aws_lc_rs reuses the aws-lc-rs 1.16 already in the tree (process-wide rustls provider installed in main()), so this adds no second crypto stack. Our 9.x API usage (encode/decode/Validation/JwkSet/ErrorKind) is source-compatible with 10.4 — zero code changes; all JWT-auth unit tests (signature tampering, alg confusion, kid selection, claim enforcement) pass unchanged. Not 11.0.0: it landed 10 days ago with breaking API churn (non_exhaustive enums, Header.extras rework) and no security content beyond 10.3.0.

Legacy AWS connector removal (the real fix for the webpki 0.101 alerts). rustls-webpki 0.101.7 cannot be patched in place — the fixes only exist in 0.103. It entered via aws-sdk-bedrockruntime's legacy rustls feature → aws-smithy-runtime/tls-rustls → hyper 0.14 + rustls 0.21 connector. That connector is dead code here: every Bedrock client is built on upstream_tls::aws_http_client() (aws-smithy-http-client, rustls 0.23 / aws-lc), and upstream_http.rs carries a guard enforcing exactly that. Swapping the feature to default-https-client on aws-config + aws-sdk-bedrockruntime removes rustls 0.21, rustls-webpki 0.101.7, and hyper 0.14's TLS path from Cargo.lock entirely. On aws-config 1.8 the old rustls feature is already just an alias for the modern client, so that half is a no-op rename.

testcontainers is dev-only. tokio-tar never ships in the gateway binary ([dev-dependencies] of aisix-admin). Upgraded rather than dismissed because the patched fork is a drop-in via testcontainers ≥ 0.25.

Verification

  • cargo build --workspace --all-features — clean
  • cargo test --workspace --all-features — 1,300+ tests, 0 failed
  • cargo clippy --workspace --all-targets --all-features — no warnings; cargo fmt --check clean
  • Cargo.lock after: single rustls (0.23.38), single rustls-webpki (0.103.13), no tokio-tar, jsonwebtoken 10.4.0, testcontainers 0.27.3, rand 0.8.7
  • The one Docker-gated #[ignore] etcd roundtrip test compiles against 0.27; a local run failed only at docker pull (this machine currently can't reach Docker Hub) — before any testcontainers code path under test. CI ignores it by design.

After merge, the 8 alerts should auto-resolve on the next dependabot scan of main.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Maintenance
    • Updated security and networking components to newer implementations.
    • Improved compatibility and reliability across supported cloud integrations.
    • Refreshed testing infrastructure to support more consistent validation.
    • No user-facing API or feature changes were introduced.

Four distinct advisories behind the 8 alerts, all fixed by upgrade —
nothing dismissed:
- jsonwebtoken 9.3.1 -> 10.4.0 (3 moderate: CVE-2026-25537 type
confusion with exp/nbf when not required). Direct runtime dep of
aisix-proxy (inbound OIDC/JWT auth) and aisix-provider-vertex
(SA token minting). v10 requires choosing a crypto backend
explicitly; `aws_lc_rs` reuses the aws-lc-rs already in the tree
from rustls — no new crypto stack. The 9.x API we use (encode /
decode / Validation / JwkSet / ErrorKind) is source-compatible.
- rustls-webpki 0.103.12 -> 0.103.13 (1 high: GHSA-82j2-j2ch-gfr8,
panic on malformed CRL BIT STRING), and the parallel 0.101.7 copy
eliminated entirely (2 low: GHSA-xgp8-3hg3-c2mh / GHSA-965h-392x-2mh5
wildcard/URI name-constraint bypasses, unpatched in the 0.101 line).
0.101.7 came via the retired hyper 0.14 + rustls 0.21 connector that
aws-sdk-bedrockruntime's legacy `rustls` feature drags in; every
Bedrock client is built on `upstream_tls::aws_http_client()`
(rustls 0.23 / aws-lc), so the legacy connector was compiled in but
never used. Swapped the feature to `default-https-client` on
aws-config + aws-sdk-bedrockruntime; rustls 0.21 and webpki 0.101
are gone from Cargo.lock.
- testcontainers 0.23 -> 0.27 (1 high: CVE-2025-62518 tokio-tar PAX
header desync, no patched tokio-tar release). Dev-dependency of
aisix-admin only — never in the shipped binary. testcontainers
>= 0.25 replaced tokio-tar with the patched astral-tokio-tar fork;
the API surface we use is unchanged.
- rand 0.8.5 -> 0.8.7 (1 low: GHSA-cq8v-f236-94qc unsoundness with a
custom logger). Lock-only bump within semver.
Verified: cargo build/test --workspace --all-features green (1,300+
tests, 0 failed), clippy --all-targets clean, fmt clean. The one
Docker-gated #[ignore] etcd roundtrip test compiles against
testcontainers 0.27; running it locally failed only at image pull
(local network cannot reach Docker Hub), before any testcontainers
code path under test.
@coderabbitai

coderabbitaiBot 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: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: ab317c1f-43d4-4737-af6d-e473387fc5a6

📥 Commits

Reviewing files that changed from the base of the PR and between 1df7716 and 6405586.

⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (3)
  • Cargo.toml
  • crates/aisix-provider-vertex/Cargo.toml
  • crates/aisix-proxy/Cargo.toml

📝 Walkthrough

Walkthrough

The pull request updates AWS Bedrock HTTP client features, upgrades the testcontainers dependency, and changes jsonwebtoken to version 10 with aws_lc_rs in two crates.

Changes

Dependency updates

Layer / File(s)Summary
AWS and test dependency configuration
Cargo.toml
AWS Bedrock dependencies now use default-https-client. The testcontainers dependency now uses version 0.27.
JWT dependency configuration
crates/aisix-provider-vertex/Cargo.toml, crates/aisix-proxy/Cargo.toml
Both crates now use jsonwebtoken version 10 with the aws_lc_rs feature.

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

Suggested reviewers:jarvis9443

🚥 Pre-merge checks | ✅ 6
✅ Passed checks (6 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title clearly states that the pull request updates dependencies to resolve all eight open Dependabot alerts.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.
E2e Test Quality Review✅ PassedDependency-only diff; existing JWT and Bedrock E2E suites cover gateway flows, and the real-etcd round trip covers testcontainers. No test changes or hidden ordering were introduced.
Security Check✅ PassedThe PR changes only dependency manifests and Cargo.lock; no logging, storage, authorization, ownership, secret-resolution, or handler code changed. TLS and JWT paths remain secured.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch build/dependabot-security-sweep

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.

membphis added a commit that referenced this pull request Aug 12, 2026
Supersedes the conflicted #867; its analysis was re-verified against
current main and re-landed:
- jsonwebtoken 9.3.1 -> 10.4.0 on the aws_lc_rs backend in aisix-proxy
(inbound OIDC/JWT auth) and aisix-provider-vertex (SA token minting).
Fixes the exp/nbf type-confusion advisory; the API surface in use is
source-compatible, zero code changes.
- aws-config / aws-sdk-bedrockruntime: swap the legacy rustls feature
for default-https-client, removing the retired hyper 0.14 +
rustls 0.21 connector (and rustls-webpki 0.101.7) from the tree.
Every Bedrock client is built on upstream_tls::aws_http_client(),
enforced by an existing guard test, so the connector was dead code.
- testcontainers 0.23 -> 0.28 (dev-only): replaces the unpatched
tokio-tar with the fixed astral-tokio-tar fork.
- Cargo.lock: rustls-webpki 0.103.12 -> 0.103.13 (CRL panic fix),
rand 0.8.5 -> 0.8.7 (custom-logger unsoundness fix).
Independent audit: 0 HIGH / 0 MEDIUM / 4 LOW, all dispositioned on the
PR. CI 12/12 green including both e2e serving modes.
Sign up for freeto 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

@moonming
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

build(deps): clear all 8 open dependabot alerts - #867

Open
moonming wants to merge 1 commit into
mainfrom
build/dependabot-security-sweep
Open

build(deps): clear all 8 open dependabot alerts#867
moonming wants to merge 1 commit into
mainfrom
build/dependabot-security-sweep

Conversation

@moonming

@moonmingmoonming commented Aug 3, 2026

Copy link
Copy Markdown
Member

What

Clears all 8 open dependabot alerts (2 high / 3 moderate / 3 low) on the default branch. They collapse into 4 distinct advisories; every one is fixed by upgrade — nothing is dismissed.

AlertsAdvisoryPackageFix
#2#10#11 (moderate)CVE-2026-25537 — type confusion with exp/nbf when not requiredjsonwebtoken 9.3.1 (runtime: inbound OIDC/JWT auth in aisix-proxy, SA token minting in aisix-provider-vertex)→ 10.4.0, aws_lc_rs backend
#6 (high)GHSA-82j2-j2ch-gfr8 — panic on malformed CRL BIT STRINGrustls-webpki 0.103.12→ 0.103.13 (lock bump)
#3#4 (low)GHSA-xgp8-3hg3-c2mh / GHSA-965h-392x-2mh5 — name-constraint bypasses, unpatched in the 0.101 linerustls-webpki 0.101.7 (via retired rustls 0.21 connector)eliminated from the tree (see below)
#1 (high)CVE-2025-62518 — tokio-tar PAX header desync, no patched tokio-tar releasetokio-tar 0.3.1 (dev-only: testcontainers in aisix-admin)testcontainers 0.23 → 0.27, which uses the patched astral-tokio-tar fork
#5 (low)GHSA-cq8v-f236-94qc — unsoundness with a custom loggerrand 0.8.5 (aisix-proxy + redis)→ 0.8.7 (lock bump)

Key decisions

jsonwebtoken 10 backend choice. v10 made the crypto backend an explicit feature. aws_lc_rs reuses the aws-lc-rs 1.16 already in the tree (process-wide rustls provider installed in main()), so this adds no second crypto stack. Our 9.x API usage (encode/decode/Validation/JwkSet/ErrorKind) is source-compatible with 10.4 — zero code changes; all JWT-auth unit tests (signature tampering, alg confusion, kid selection, claim enforcement) pass unchanged. Not 11.0.0: it landed 10 days ago with breaking API churn (non_exhaustive enums, Header.extras rework) and no security content beyond 10.3.0.

Legacy AWS connector removal (the real fix for the webpki 0.101 alerts). rustls-webpki 0.101.7 cannot be patched in place — the fixes only exist in 0.103. It entered via aws-sdk-bedrockruntime's legacy rustls feature → aws-smithy-runtime/tls-rustls → hyper 0.14 + rustls 0.21 connector. That connector is dead code here: every Bedrock client is built on upstream_tls::aws_http_client() (aws-smithy-http-client, rustls 0.23 / aws-lc), and upstream_http.rs carries a guard enforcing exactly that. Swapping the feature to default-https-client on aws-config + aws-sdk-bedrockruntime removes rustls 0.21, rustls-webpki 0.101.7, and hyper 0.14's TLS path from Cargo.lock entirely. On aws-config 1.8 the old rustls feature is already just an alias for the modern client, so that half is a no-op rename.

testcontainers is dev-only. tokio-tar never ships in the gateway binary ([dev-dependencies] of aisix-admin). Upgraded rather than dismissed because the patched fork is a drop-in via testcontainers ≥ 0.25.

Verification

  • cargo build --workspace --all-features — clean
  • cargo test --workspace --all-features — 1,300+ tests, 0 failed
  • cargo clippy --workspace --all-targets --all-features — no warnings; cargo fmt --check clean
  • Cargo.lock after: single rustls (0.23.38), single rustls-webpki (0.103.13), no tokio-tar, jsonwebtoken 10.4.0, testcontainers 0.27.3, rand 0.8.7
  • The one Docker-gated #[ignore] etcd roundtrip test compiles against 0.27; a local run failed only at docker pull (this machine currently can't reach Docker Hub) — before any testcontainers code path under test. CI ignores it by design.

After merge, the 8 alerts should auto-resolve on the next dependabot scan of main.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Maintenance
    • Updated security and networking components to newer implementations.
    • Improved compatibility and reliability across supported cloud integrations.
    • Refreshed testing infrastructure to support more consistent validation.
    • No user-facing API or feature changes were introduced.

Four distinct advisories behind the 8 alerts, all fixed by upgrade —
nothing dismissed:
- jsonwebtoken 9.3.1 -> 10.4.0 (3 moderate: CVE-2026-25537 type
confusion with exp/nbf when not required). Direct runtime dep of
aisix-proxy (inbound OIDC/JWT auth) and aisix-provider-vertex
(SA token minting). v10 requires choosing a crypto backend
explicitly; `aws_lc_rs` reuses the aws-lc-rs already in the tree
from rustls — no new crypto stack. The 9.x API we use (encode /
decode / Validation / JwkSet / ErrorKind) is source-compatible.
- rustls-webpki 0.103.12 -> 0.103.13 (1 high: GHSA-82j2-j2ch-gfr8,
panic on malformed CRL BIT STRING), and the parallel 0.101.7 copy
eliminated entirely (2 low: GHSA-xgp8-3hg3-c2mh / GHSA-965h-392x-2mh5
wildcard/URI name-constraint bypasses, unpatched in the 0.101 line).
0.101.7 came via the retired hyper 0.14 + rustls 0.21 connector that
aws-sdk-bedrockruntime's legacy `rustls` feature drags in; every
Bedrock client is built on `upstream_tls::aws_http_client()`
(rustls 0.23 / aws-lc), so the legacy connector was compiled in but
never used. Swapped the feature to `default-https-client` on
aws-config + aws-sdk-bedrockruntime; rustls 0.21 and webpki 0.101
are gone from Cargo.lock.
- testcontainers 0.23 -> 0.27 (1 high: CVE-2025-62518 tokio-tar PAX
header desync, no patched tokio-tar release). Dev-dependency of
aisix-admin only — never in the shipped binary. testcontainers
>= 0.25 replaced tokio-tar with the patched astral-tokio-tar fork;
the API surface we use is unchanged.
- rand 0.8.5 -> 0.8.7 (1 low: GHSA-cq8v-f236-94qc unsoundness with a
custom logger). Lock-only bump within semver.
Verified: cargo build/test --workspace --all-features green (1,300+
tests, 0 failed), clippy --all-targets clean, fmt clean. The one
Docker-gated #[ignore] etcd roundtrip test compiles against
testcontainers 0.27; running it locally failed only at image pull
(local network cannot reach Docker Hub), before any testcontainers
code path under test.
@coderabbitai

coderabbitaiBot 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: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: ab317c1f-43d4-4737-af6d-e473387fc5a6

📥 Commits

Reviewing files that changed from the base of the PR and between 1df7716 and 6405586.

⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (3)
  • Cargo.toml
  • crates/aisix-provider-vertex/Cargo.toml
  • crates/aisix-proxy/Cargo.toml

📝 Walkthrough

Walkthrough

The pull request updates AWS Bedrock HTTP client features, upgrades the testcontainers dependency, and changes jsonwebtoken to version 10 with aws_lc_rs in two crates.

Changes

Dependency updates

Layer / File(s)Summary
AWS and test dependency configuration
Cargo.toml
AWS Bedrock dependencies now use default-https-client. The testcontainers dependency now uses version 0.27.
JWT dependency configuration
crates/aisix-provider-vertex/Cargo.toml, crates/aisix-proxy/Cargo.toml
Both crates now use jsonwebtoken version 10 with the aws_lc_rs feature.

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

Suggested reviewers:jarvis9443

🚥 Pre-merge checks | ✅ 6
✅ Passed checks (6 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title clearly states that the pull request updates dependencies to resolve all eight open Dependabot alerts.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.
E2e Test Quality Review✅ PassedDependency-only diff; existing JWT and Bedrock E2E suites cover gateway flows, and the real-etcd round trip covers testcontainers. No test changes or hidden ordering were introduced.
Security Check✅ PassedThe PR changes only dependency manifests and Cargo.lock; no logging, storage, authorization, ownership, secret-resolution, or handler code changed. TLS and JWT paths remain secured.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch build/dependabot-security-sweep

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.

membphis added a commit that referenced this pull request Aug 12, 2026
Supersedes the conflicted #867; its analysis was re-verified against
current main and re-landed:
- jsonwebtoken 9.3.1 -> 10.4.0 on the aws_lc_rs backend in aisix-proxy
(inbound OIDC/JWT auth) and aisix-provider-vertex (SA token minting).
Fixes the exp/nbf type-confusion advisory; the API surface in use is
source-compatible, zero code changes.
- aws-config / aws-sdk-bedrockruntime: swap the legacy rustls feature
for default-https-client, removing the retired hyper 0.14 +
rustls 0.21 connector (and rustls-webpki 0.101.7) from the tree.
Every Bedrock client is built on upstream_tls::aws_http_client(),
enforced by an existing guard test, so the connector was dead code.
- testcontainers 0.23 -> 0.28 (dev-only): replaces the unpatched
tokio-tar with the fixed astral-tokio-tar fork.
- Cargo.lock: rustls-webpki 0.103.12 -> 0.103.13 (CRL panic fix),
rand 0.8.5 -> 0.8.7 (custom-logger unsoundness fix).
Independent audit: 0 HIGH / 0 MEDIUM / 4 LOW, all dispositioned on the
PR. CI 12/12 green including both e2e serving modes.
Sign up for freeto 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

@moonming
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

build(deps): clear all 8 open dependabot alerts - #867

Open
moonming wants to merge 1 commit into
mainfrom
build/dependabot-security-sweep
Open

build(deps): clear all 8 open dependabot alerts#867
moonming wants to merge 1 commit into
mainfrom
build/dependabot-security-sweep

Conversation

@moonming

@moonmingmoonming commented Aug 3, 2026

Copy link
Copy Markdown
Member

What

Clears all 8 open dependabot alerts (2 high / 3 moderate / 3 low) on the default branch. They collapse into 4 distinct advisories; every one is fixed by upgrade — nothing is dismissed.

AlertsAdvisoryPackageFix
#2#10#11 (moderate)CVE-2026-25537 — type confusion with exp/nbf when not requiredjsonwebtoken 9.3.1 (runtime: inbound OIDC/JWT auth in aisix-proxy, SA token minting in aisix-provider-vertex)→ 10.4.0, aws_lc_rs backend
#6 (high)GHSA-82j2-j2ch-gfr8 — panic on malformed CRL BIT STRINGrustls-webpki 0.103.12→ 0.103.13 (lock bump)
#3#4 (low)GHSA-xgp8-3hg3-c2mh / GHSA-965h-392x-2mh5 — name-constraint bypasses, unpatched in the 0.101 linerustls-webpki 0.101.7 (via retired rustls 0.21 connector)eliminated from the tree (see below)
#1 (high)CVE-2025-62518 — tokio-tar PAX header desync, no patched tokio-tar releasetokio-tar 0.3.1 (dev-only: testcontainers in aisix-admin)testcontainers 0.23 → 0.27, which uses the patched astral-tokio-tar fork
#5 (low)GHSA-cq8v-f236-94qc — unsoundness with a custom loggerrand 0.8.5 (aisix-proxy + redis)→ 0.8.7 (lock bump)

Key decisions

jsonwebtoken 10 backend choice. v10 made the crypto backend an explicit feature. aws_lc_rs reuses the aws-lc-rs 1.16 already in the tree (process-wide rustls provider installed in main()), so this adds no second crypto stack. Our 9.x API usage (encode/decode/Validation/JwkSet/ErrorKind) is source-compatible with 10.4 — zero code changes; all JWT-auth unit tests (signature tampering, alg confusion, kid selection, claim enforcement) pass unchanged. Not 11.0.0: it landed 10 days ago with breaking API churn (non_exhaustive enums, Header.extras rework) and no security content beyond 10.3.0.

Legacy AWS connector removal (the real fix for the webpki 0.101 alerts). rustls-webpki 0.101.7 cannot be patched in place — the fixes only exist in 0.103. It entered via aws-sdk-bedrockruntime's legacy rustls feature → aws-smithy-runtime/tls-rustls → hyper 0.14 + rustls 0.21 connector. That connector is dead code here: every Bedrock client is built on upstream_tls::aws_http_client() (aws-smithy-http-client, rustls 0.23 / aws-lc), and upstream_http.rs carries a guard enforcing exactly that. Swapping the feature to default-https-client on aws-config + aws-sdk-bedrockruntime removes rustls 0.21, rustls-webpki 0.101.7, and hyper 0.14's TLS path from Cargo.lock entirely. On aws-config 1.8 the old rustls feature is already just an alias for the modern client, so that half is a no-op rename.

testcontainers is dev-only. tokio-tar never ships in the gateway binary ([dev-dependencies] of aisix-admin). Upgraded rather than dismissed because the patched fork is a drop-in via testcontainers ≥ 0.25.

Verification

  • cargo build --workspace --all-features — clean
  • cargo test --workspace --all-features — 1,300+ tests, 0 failed
  • cargo clippy --workspace --all-targets --all-features — no warnings; cargo fmt --check clean
  • Cargo.lock after: single rustls (0.23.38), single rustls-webpki (0.103.13), no tokio-tar, jsonwebtoken 10.4.0, testcontainers 0.27.3, rand 0.8.7
  • The one Docker-gated #[ignore] etcd roundtrip test compiles against 0.27; a local run failed only at docker pull (this machine currently can't reach Docker Hub) — before any testcontainers code path under test. CI ignores it by design.

After merge, the 8 alerts should auto-resolve on the next dependabot scan of main.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Maintenance
    • Updated security and networking components to newer implementations.
    • Improved compatibility and reliability across supported cloud integrations.
    • Refreshed testing infrastructure to support more consistent validation.
    • No user-facing API or feature changes were introduced.

Four distinct advisories behind the 8 alerts, all fixed by upgrade —
nothing dismissed:
- jsonwebtoken 9.3.1 -> 10.4.0 (3 moderate: CVE-2026-25537 type
confusion with exp/nbf when not required). Direct runtime dep of
aisix-proxy (inbound OIDC/JWT auth) and aisix-provider-vertex
(SA token minting). v10 requires choosing a crypto backend
explicitly; `aws_lc_rs` reuses the aws-lc-rs already in the tree
from rustls — no new crypto stack. The 9.x API we use (encode /
decode / Validation / JwkSet / ErrorKind) is source-compatible.
- rustls-webpki 0.103.12 -> 0.103.13 (1 high: GHSA-82j2-j2ch-gfr8,
panic on malformed CRL BIT STRING), and the parallel 0.101.7 copy
eliminated entirely (2 low: GHSA-xgp8-3hg3-c2mh / GHSA-965h-392x-2mh5
wildcard/URI name-constraint bypasses, unpatched in the 0.101 line).
0.101.7 came via the retired hyper 0.14 + rustls 0.21 connector that
aws-sdk-bedrockruntime's legacy `rustls` feature drags in; every
Bedrock client is built on `upstream_tls::aws_http_client()`
(rustls 0.23 / aws-lc), so the legacy connector was compiled in but
never used. Swapped the feature to `default-https-client` on
aws-config + aws-sdk-bedrockruntime; rustls 0.21 and webpki 0.101
are gone from Cargo.lock.
- testcontainers 0.23 -> 0.27 (1 high: CVE-2025-62518 tokio-tar PAX
header desync, no patched tokio-tar release). Dev-dependency of
aisix-admin only — never in the shipped binary. testcontainers
>= 0.25 replaced tokio-tar with the patched astral-tokio-tar fork;
the API surface we use is unchanged.
- rand 0.8.5 -> 0.8.7 (1 low: GHSA-cq8v-f236-94qc unsoundness with a
custom logger). Lock-only bump within semver.
Verified: cargo build/test --workspace --all-features green (1,300+
tests, 0 failed), clippy --all-targets clean, fmt clean. The one
Docker-gated #[ignore] etcd roundtrip test compiles against
testcontainers 0.27; running it locally failed only at image pull
(local network cannot reach Docker Hub), before any testcontainers
code path under test.
@coderabbitai

coderabbitaiBot 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: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: ab317c1f-43d4-4737-af6d-e473387fc5a6

📥 Commits

Reviewing files that changed from the base of the PR and between 1df7716 and 6405586.

⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (3)
  • Cargo.toml
  • crates/aisix-provider-vertex/Cargo.toml
  • crates/aisix-proxy/Cargo.toml

📝 Walkthrough

Walkthrough

The pull request updates AWS Bedrock HTTP client features, upgrades the testcontainers dependency, and changes jsonwebtoken to version 10 with aws_lc_rs in two crates.

Changes

Dependency updates

Layer / File(s)Summary
AWS and test dependency configuration
Cargo.toml
AWS Bedrock dependencies now use default-https-client. The testcontainers dependency now uses version 0.27.
JWT dependency configuration
crates/aisix-provider-vertex/Cargo.toml, crates/aisix-proxy/Cargo.toml
Both crates now use jsonwebtoken version 10 with the aws_lc_rs feature.

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

Suggested reviewers:jarvis9443

🚥 Pre-merge checks | ✅ 6
✅ Passed checks (6 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title clearly states that the pull request updates dependencies to resolve all eight open Dependabot alerts.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.
E2e Test Quality Review✅ PassedDependency-only diff; existing JWT and Bedrock E2E suites cover gateway flows, and the real-etcd round trip covers testcontainers. No test changes or hidden ordering were introduced.
Security Check✅ PassedThe PR changes only dependency manifests and Cargo.lock; no logging, storage, authorization, ownership, secret-resolution, or handler code changed. TLS and JWT paths remain secured.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch build/dependabot-security-sweep

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.

membphis added a commit that referenced this pull request Aug 12, 2026
Supersedes the conflicted #867; its analysis was re-verified against
current main and re-landed:
- jsonwebtoken 9.3.1 -> 10.4.0 on the aws_lc_rs backend in aisix-proxy
(inbound OIDC/JWT auth) and aisix-provider-vertex (SA token minting).
Fixes the exp/nbf type-confusion advisory; the API surface in use is
source-compatible, zero code changes.
- aws-config / aws-sdk-bedrockruntime: swap the legacy rustls feature
for default-https-client, removing the retired hyper 0.14 +
rustls 0.21 connector (and rustls-webpki 0.101.7) from the tree.
Every Bedrock client is built on upstream_tls::aws_http_client(),
enforced by an existing guard test, so the connector was dead code.
- testcontainers 0.23 -> 0.28 (dev-only): replaces the unpatched
tokio-tar with the fixed astral-tokio-tar fork.
- Cargo.lock: rustls-webpki 0.103.12 -> 0.103.13 (CRL panic fix),
rand 0.8.5 -> 0.8.7 (custom-logger unsoundness fix).
Independent audit: 0 HIGH / 0 MEDIUM / 4 LOW, all dispositioned on the
PR. CI 12/12 green including both e2e serving modes.
Sign up for freeto 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

@moonming