CVE-2026-58051
MediumCVSS 6.5Exploitation Probability (EPSS)
Low risk20th percentile - higher than 20% of all known CVEs
Summary
In libssh2 up to version 1.11.1, when growing the publickey list with SSH2_REALLOC, new entries are not zero-initialized before parsing populates them. A parse failure reaching the cleanup path causes libssh2_publickey_list_free to operate on an uninitialized entry, potentially freeing an attacker-influenceable attrs pointer.
Risk Assessment
A malicious SSH server offering the publickey subsystem can exploit this vulnerability to trigger a use-after-free or double-free condition in the libssh2 client, potentially leading to remote code execution or application crash.
Recommendation
Immediately upgrade libssh2 to version 1.11.2 or later, which includes a fix that zero-initializes new entries before use. If an upgrade is not possible, restrict trust to SSH servers offering the publickey subsystem.
Other vulnerabilities in libssh2
See all- CVE-2026-55200High
libssh2 1.11.1, fixed in commit 97acf3d, contains an out-of-bounds write vulnerability in ssh2_transport_read() that fails to enforce upper bounds on the packet_length field. Remote attackers can send crafted SSH packets with excessively large packet_length values to corrupt heap memory and achieve remote code execution.
- CVE-2019-3861Medium
An out of bounds read flaw was discovered in libssh2 before 1.8.1 in the way SSH packets with a padding length value greater than the packet length are parsed. A remote attacker who compromises a SSH server may be able to cause a Denial of Service or read data in the client memory.
- CVE-2019-3860Medium
An out of bounds read flaw was discovered in libssh2 before 1.8.1 in the way SFTP packets with empty payloads are parsed. A remote attacker who compromises a SSH server may be able to cause a Denial of Service or read data in the client memory.
- CVE-2019-3857High
In libssh2 before 1.8.1, an integer overflow flaw which could lead to an out of bounds write was discovered in the way SSH_MSG_CHANNEL_REQUEST packets with an exit signal are parsed. A remote attacker who compromises a SSH server may be able to execute code on the client system when a user connects to the server.
- CVE-2019-3856High
In libssh2 before 1.8.1, an integer overflow flaw, which could lead to an out of bounds write, was discovered in the way keyboard prompt requests are parsed. A remote attacker who compromises a SSH server may be able to execute code on the client system when a user connects to the server.
- CVE-2019-3858Medium
An out of bounds read flaw was discovered in libssh2 before 1.8.1 when a specially crafted SFTP packet is received from the server. A remote attacker who compromises a SSH server may be able to cause a Denial of Service or read data in the client memory.
- CVE-2019-3855High
An integer overflow flaw leading to an out-of-bounds write was discovered in libssh2 before 1.8.1 in the way packets are read from the server. A remote attacker who compromises an SSH server may execute code on the client system when a user connects.
- CVE-2019-3862High
An out-of-bounds read flaw was discovered in libssh2 before 1.8.1 in the way SSH_MSG_CHANNEL_REQUEST packets with an exit status message and no payload are parsed. A remote attacker who compromises an SSH server may cause a Denial of Service or read data from client memory.
- CVE-2019-3859Critical
An out of bounds read flaw was discovered in libssh2 before 1.8.1 in the _libssh2_packet_require and _libssh2_packet_requirev functions. A remote attacker who compromises a SSH server may be able to cause a Denial of Service or read data in the client memory.
- CVE-2026-66035High
Pre-authentication heap buffer overflow in libssh2 up to 1.11.1, allowing a malicious SSH server to corrupt client heap metadata by sending a packet with packet_length smaller than cipher block size during Encrypt-then-MAC negotiation.
Original NVD description (English source)
libssh2 through 1.11.1 grows its publickey list with SSH2_REALLOC but does not zero-initialize new entries before parsing populates them, so a parse failure reaching the cleanup path leaves libssh2_publickey_list_free operating on an uninitialized entry. A malicious SSH server offering the publickey subsystem can use a malformed response to make cleanup free an uninitialized, attacker-influenceable attrs pointer in a connecting libssh2 client.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

