Executive brief
libssh2 is a widely used library that allows applications to communicate securely using the SSH protocol. A vulnerability in how the library handles public key lists allows a malicious SSH server to crash an application or potentially steal sensitive information from its memory. This could lead to a loss of data confidentiality or a complete service outage for software relying on this library.
Technical details
A vulnerability exists in the libssh2_publickey_list_fetch() function within the publickey subsystem. The version 1 response parser fails to validate a server-controlled 'comment_len' value against the remaining buffer size before advancing the parse pointer. This leads to an arbitrary-length heap out-of-bounds read, which can be used to leak heap pointers and bypass ASLR. Additionally, the error cleanup path may attempt to free an uninitialized pointer from a non-zeroed realloc() region, resulting in heap corruption. Exploitation requires a user to connect to a malicious SSH server. The issue is fixed in commit a13bb6c.
Affected products
- libssh2 libssh2 through 1.11.1
Timeline
- 2026-07-04: patched: Fix submitted via GitHub pull request 2202
- 2026-07-24: disclosed: CVE-2026-66034 published