CVE-2026-128088 json
russh try_sign: asynchronous confirmation can sign after agent lock
published yesterday modified yesterday also GHSA-736f-c93q-9fwx , EUVD-2026-125722
- cvss
- 2.2
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.1%
- EPSS 0.1% chance of exploitation in 30 days, percentile 1%
- public exploits
- 0
- none known
Summary
russh is a Rust SSH client and server library that includes an SSH agent protocol implementation. Prior to version 0.65.1, try_sign() captures an Arc<PrivateKey> before awaiting Agent::confirm() and does not revalidate the shared lock state or key presence after the await. This is a distinct residual defect in the remediation for CVE-2026-116794. A peer, including a remote SSH server using agent forwarding, can begin a confirmation-constrained signature request while the agent is unlocked and receive the signature after another connection locks the agent if the stale confirmation returns true. New post-lock requests are rejected and private key material is not disclosed, but the pending operation bypasses the current lock state. This issue is fixed in version 0.65.1.
Patch / fix
- crates.io russh 0.65.1
- github.com/Eugeny/russh@43a46d6 commit
- github.com/Eugeny/russh#808 pull request
- github.com/Eugeny/russh/releases/tag/v0.65.1 release
Is CVE-2026-128088 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerVendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2026-128088 updated cvss 2.2
russh: russh: SSH agent lock bypass via unverified state during confirmation
-
Red Hat Hardened Images openshell 0.1.8-0.1.hum1affected: workaround, no fix available
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
Exploit prediction
0.11% chance of exploitation in the next 30 days, higher than 1% of all scored CVEs (FIRST EPSS, 2026-11-14).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 2.2 | CVSS:3.1/AV:L/AC:H/PR:L/UI:R/S:U/C:N/I:L/A:N |
| GitHub | 3.1 | 2.2 | CVSS:3.1/AV:L/AC:H/PR:L/UI:R/S:U/C:N/I:L/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| crates.io | russh | >=0.65.0, <0.65.1 |
0.65.1 |
Affected products
- Eugeny russh
Classification
References
Sources
- CVE List CVE-2026-128088
- GitHub Advisory GHSA-736f-c93q-9fwx
- NVD CVE-2026-128088
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.