Uh oh!
There was an error while loading. Please reload this page.
fix(deps): bump russh, jsonwebtoken, tar and npm lint deps - #2617
Open
alangou wants to merge 1 commit into
Open
Conversation
alangou
requested review from
a team, derekwaynecarr, maxamillion and mrunalp
as code ownersAugust 5, 2026 12:12
alangouforce-pushed
the
alangou/fix-security-deps-russh-jsonwebtoken-npm
branch
from
August 5, 2026 12:32
a490184 to
cfd0aeaCompareSigned-off-by: Adrien Langou <alangou@nvidia.com>
alangouforce-pushed
the
alangou/fix-security-deps-russh-jsonwebtoken-npm
branch
from
August 5, 2026 14:11
cfd0aea to
929c667CompareLabel |
SDAChess
approved these changes
Aug 5, 2026
github-merge-queueBot
removed this pull request from the merge queue due to a conflict with the base branch
Aug 5, 2026
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
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
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
Bumps
russh,jsonwebtoken,tarand the npm packages used by the mermaid docs linter to patched releases. Therusshbump changed the channel-open authorization contract, so the sandbox SSH handler is ported and the forwarding policy is now covered by tests.Related Issue
No issue required: mechanical dependency remediation.
Changes
russhjsonwebtokentaruuid(lint-mermaid)form-data(lint-mermaid)ws(lint-mermaid)mermaid(lint-mermaid)Notes for review:
jsonwebtoken10.x requires selecting a crypto backend.aws_lc_rsis chosen because it succeeds theringbackend 9.x used and is already in the tree viarussh, so no new build constraint. This also collapses a duplicate 9.3.1/10.3.0 pair into a single version shared withoci-client.russh0.62 moves channel-open authorization from a returnedboolto a reply handle.channel_open_direct_tcpipused that return value to confine forwarding to loopback destinations and to reject out-of-range ports, so both denial paths now callreply.reject(...)explicitly, and the accept is ordered before the relay task is spawned. Dropping the handle without replying rejects by default, so the handler fails closed.russh0.62 also relaxes the exact release-candidate pins carried by 0.61, soed25519-dalek,curve25519-dalek,elliptic-curve,p256/p384/p521andssh-encodingleave release-candidate status. That accounts for most of theCargo.lockdiff.package.jsonis unchanged andnpm auditreports zero vulnerabilities.Tests added:
russh::server::Handlerover an in-memory duplex, covering non-loopback rejection, out-of-range port rejection and loopback relay. The existingloopback_host_*tests only covered the predicate, not the wiring that applies it, so a mis-ported handler would have passed every test.JwksCache::new+validate_tokenagainst a mock issuer serving a real JWKS. That path had no coverage, which mattered because this changes the backend that verifies every user bearer token.Testing
mise run pre-commitpassesFull unit suite passes;
openshell-servergoes from 1233 to 1240 tests andopenshell-supervisor-processfrom 197 to 200.No new e2e tests, but the Docker-backed suite was run against a live gateway:
gateway_smokeandport_forward_echoboth pass. The latter drives a real systemssh -Lthrough the sandbox, so it exercises the migrated accept path end to end.Both new test groups were validated by mutation rather than just observed green. Turning each denial into an acceptance, dropping the reply handle, disabling signature validation, and disabling the issuer/audience/expiry checks each failed exactly the corresponding test and no others.
Checklist