Description
libssh2 through 1.11.1, fixed in commit a13bb6c, contains a missing bounds check vulnerability that allows a malicious SSH server to trigger an arbitrary-length heap out-of-bounds read and a free of an uninitialized pointer via the publickey subsystem. In libssh2_publickey_list_fetch(), the version 1 response parser reads a server-controlled comment_len value and advances the parse pointer without verifying sufficient bytes remain in the buffer, causing the out-of-bounds read to leak heap pointers from adjacent allocations defeating ASLR, followed by heap allocator state corruption when the error cleanup path frees an uninitialized pointer from a non-zeroed realloc() region.
Published: 2026-07-24
Score: 7.7 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability is a missing bounds check in the publickey subsystem of libssh2. A malicious SSH server can cause the client to read an arbitrary number of bytes beyond the end of a buffer, leaking heap pointers from nearby allocations. This out-of-bounds read defeats ASLR protection and can lead to heap allocator corruption when the error cleanup path frees an uninitialized pointer from a non-zeroed realloc region. The weaknesses correspond to CWE-125 and CWE-908.

Affected Systems

The flaw exists in libssh2 up to version 1.11.1. All builds of libssh2 before the commit a13bb6c773f0d55ad1628cede57e99803cd898d9 are affected.

Risk and Exploitability

The CVSS score of 7.7 indicates a high impact. An EPSS score of less than 1% shows that exploitation chances are currently low, and the vulnerability is not listed in CISA's KEV catalog. The attack requires a remote attacker to act as an SSH server, so the threat surface is limited to environments that allow an attacker to impersonate a server or compromise an authenticated SSH session. Because the bug is triggered by specially crafted server messages, automated exploitation is possible, but a successful exploit would need network reach to the vulnerable client.

Generated by OpenCVE AI on August 3, 2026 at 19:49 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update libssh2 to a fixed version containing commit a13bb6c773f0d55ad1628cede57e99803cd898d9 or later.
  • If an upgrade cannot be performed immediately, restrict or disable the publickey subsystem for the vulnerable client or protect the SSH client with network segmentation to block malicious servers.
  • Monitor SSH client logs for abnormal publickey requests or repeated authentication failures, which can indicate attempts exploiting the flaw.

Generated by OpenCVE AI on August 3, 2026 at 19:49 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 28 Jul 2026 01:30:00 +0000

Type Values Removed Values Added
CPEs cpe:2.3:a:libssh2:libssh2:*:*:*:*:*:*:*:*

Tue, 28 Jul 2026 00:15:00 +0000

Type Values Removed Values Added
First Time appeared Redhat
Redhat hummingbird
CPEs cpe:/a:redhat:hummingbird:1
Vendors & Products Redhat
Redhat hummingbird
References
Metrics threat_severity

None

threat_severity

Moderate


Sat, 25 Jul 2026 05:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Fri, 24 Jul 2026 23:00:00 +0000

Type Values Removed Values Added
First Time appeared Libssh2
Libssh2 libssh2
Vendors & Products Libssh2
Libssh2 libssh2

Fri, 24 Jul 2026 18:30:00 +0000

Type Values Removed Values Added
Description libssh2 through 1.11.1, fixed in commit a13bb6c, contains a missing bounds check vulnerability that allows a malicious SSH server to trigger an arbitrary-length heap out-of-bounds read and a free of an uninitialized pointer via the publickey subsystem. In libssh2_publickey_list_fetch(), the version 1 response parser reads a server-controlled comment_len value and advances the parse pointer without verifying sufficient bytes remain in the buffer, causing the out-of-bounds read to leak heap pointers from adjacent allocations defeating ASLR, followed by heap allocator state corruption when the error cleanup path frees an uninitialized pointer from a non-zeroed realloc() region.
Title libssh2 Heap Out-of-Bounds Read via publickey subsystem
Weaknesses CWE-125
CWE-908
References
Metrics cvssV3_1

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

cvssV4_0

{'score': 7.7, 'vector': 'CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N'}


Subscriptions

Libssh2 Libssh2
Redhat Hummingbird
cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-07-28T01:06:26.204Z

Reserved: 2026-07-23T20:45:17.816Z

Link: CVE-2026-66034

cve-icon Vulnrichment

Updated: 2026-07-24T17:31:12.343Z

cve-icon NVD

Status : Analyzed

Published: 2026-07-24T17:17:35.407

Modified: 2026-07-30T15:44:38.170

Link: CVE-2026-66034

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-07-24T16:42:18Z

Links: CVE-2026-66034 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-03T20:00:12Z

Weaknesses