CVE-2026-66034: libssh2 Heap Out-of-Bounds Read via publickey subsystem
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 libssh2publickeylistfetch(), the version 1 response parser reads a server-controlled commentlen 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.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
libssh2to a version that resolves this vulnerability.Fixed in 1.11.1Patch a13bb6c
Event History
Frequently Asked Questions
What is the severity of CVE-2026-66034?
CVE-2026-66034 has a high severity rating of 7.5.
How do I fix CVE-2026-66034?
To mitigate CVE-2026-66034, update libssh2 to version 1.11.2 or later, as the vulnerability has been fixed in the mentioned commit.
What systems are affected by CVE-2026-66034?
CVE-2026-66034 affects libssh2 versions up to and including 1.11.1.
What is the impact of CVE-2026-66034?
CVE-2026-66034 can lead to an arbitrary-length heap out-of-bounds read and the potential freeing of an uninitialized pointer.
How can CVE-2026-66034 be exploited?
CVE-2026-66034 can be exploited by a malicious SSH server via the publickey subsystem, which can manipulate the vulnerable function.