CVE-2026-128088
Deferred Deferred - Pending Action

Authentication Bypass in Russh SSH Agent Library

Vulnerability report for CVE-2026-128088, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-11-13

Last updated on: 2026-11-13

Assigner: GitHub, Inc.

Description

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.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-11-13
Last Modified
2026-11-13
Generated
2026-11-13
AI Q&A
2026-11-13
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Currently, no data is known.

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-863 The product performs an authorization check when an actor attempts to access a resource or perform an action, but it does not correctly perform the check.
CWE-367 The product checks the state of a resource before using that resource, but the resource's state can change between the check and the use in a way that invalidates the results of the check.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

This vulnerability in the russh SSH library (CVE-2026-128088) involves a race condition in the try_sign function. It allows a signature request initiated while the SSH agent is unlocked to complete even after the agent is locked by another connection. The flaw occurs because the function captures a private key before awaiting user confirmation and fails to revalidate the agent's lock state afterward.

Detection Guidance

This vulnerability is specific to the russh SSH library version 0.65.0. To detect it, check the installed version of russh on your system using commands like 'cargo list' if installed via Rust, or inspect the library version in your project's dependency files. If you are using a vulnerable version, update to version 0.65.1 or later immediately.

Impact Analysis

An attacker with agent forwarding access could exploit this to obtain a signature after the agent is locked, bypassing intended security controls. This weakens emergency locking mechanisms and may allow unauthorized actions if the signature is used for authentication or authorization.

Mitigation Strategies

Immediately update the russh library to version 0.65.1 or later to address the vulnerability. If updating is not possible, disable agent forwarding in your SSH configuration to prevent potential exploitation. Additionally, monitor for unauthorized SSH agent usage or unexpected signature requests.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-128088. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart

Security Radar

News mentioning this vulnerability
Loading related security news...