Description
Russh is a Rust SSH client and server library. Prior to 0.63.1, a connection configured to permit mac=none can negotiate it with a MAC-requiring CTR or CBC block cipher because the selection logic validates needs_mac() only when MAC selection fails. A remote peer can then send a packet with a decrypted length of zero, causing russh/src/cipher/mod.rs to shrink the previously read block before indexing buffer.buffer[16..], which panics and terminates the connection task. This issue is fixed in version 0.63.1.
Published: 2026-09-29
Score: 3.7 Low
EPSS: < 1% Very Low
KEV: No
Impact: Denial of Service
Action: Patch
AI Analysis

Impact

Russh, a Rust library that implements SSH clients and servers, contains an index‑out‑of‑range bug that is triggered when a connection permits the MAC setting "none" yet negotiates a CTR or CBC block cipher that requires a MAC. The selection logic validates the need for a MAC only when MAC selection fails, allowing the insecure cipher to be chosen. When a remote party then transmits a packet that decrypts to a zero‑length payload, Russh attempts to slice its buffer twice and panics, terminating the connection task. The flaw result is a denial of service on the SSH session or the overall SSH service but does not grant code execution or data exfiltration.

Affected Systems

The vulnerability affects implementations of Russh released by the vendor Eugeny in versions earlier than 0.63.1. Any deployment that uses the library and allows the mac=none configuration while negotiable ciphers include CTR or CBC is subject to the attack.

Risk and Exploitability

The CVSS score of 3.7 indicates low severity, and an EPSS score is not available. The vulnerability is not listed in CISA’s KEV catalog. The likely attack vector is a remote connection that establishes an SSH session with mac=none enabled and sends a crafted zero‑length packet. The exploit only causes a panic that terminates the process, requiring a restart to restore service and providing no opportunity for code execution or data theft.

Generated by OpenCVE AI on September 30, 2026 at 08:49 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Apply the vendor’s patch to version 0.63.1 or later.
  • Disable the mac=none configuration or enforce the use of only MAC‑protected ciphers.
  • Monitor SSH logs for panic events and configure automated process restarts to maintain service availability.

Generated by OpenCVE AI on September 30, 2026 at 08:49 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-p8qx-h547-fjw9 russh: negotiating a MAC-requiring block cipher (CTR/CBC) with mac=none causes a slice-index-out-of-range panic
History

Wed, 30 Sep 2026 00:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-125
References
Metrics threat_severity

None

threat_severity

Low


Tue, 29 Sep 2026 21:45:00 +0000

Type Values Removed Values Added
First Time appeared Eugeny
Eugeny russh
Vendors & Products Eugeny
Eugeny russh

Tue, 29 Sep 2026 20:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Tue, 29 Sep 2026 18:30:00 +0000

Type Values Removed Values Added
Description Russh is a Rust SSH client and server library. Prior to 0.63.1, a connection configured to permit mac=none can negotiate it with a MAC-requiring CTR or CBC block cipher because the selection logic validates needs_mac() only when MAC selection fails. A remote peer can then send a packet with a decrypted length of zero, causing russh/src/cipher/mod.rs to shrink the previously read block before indexing buffer.buffer[16..], which panics and terminates the connection task. This issue is fixed in version 0.63.1.
Title russh: negotiating a MAC-requiring block cipher (CTR/CBC) with mac=none causes a slice-index-out-of-range panic
Weaknesses CWE-129
References
Metrics cvssV3_1

{'score': 3.7, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-09-29T19:53:30.291Z

Reserved: 2026-09-29T17:25:25.265Z

Link: CVE-2026-102822

cve-icon Vulnrichment

Updated: 2026-09-29T19:53:25.330Z

cve-icon NVD

Status : Deferred

Published: 2026-09-29T19:17:24.190

Modified: 2026-09-29T20:17:17.673

Link: CVE-2026-102822

cve-icon Redhat

Severity : Low

Publid Date: 2026-09-29T18:23:28Z

Links: CVE-2026-102822 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-09-30T09:00:07Z

Weaknesses
  • CWE-125

    Out-of-bounds Read

  • CWE-129

    Improper Validation of Array Index