Executive brief
libssh2 is a widely used library that allows applications to communicate securely using the SSH protocol. A vulnerability in this library allows a malicious server to crash any application that attempts to connect to it. This occurs before the user even logs in, potentially leading to a widespread denial-of-service for tools and services that rely on libssh2 for automated data transfers or remote management.
Technical details
An integer underflow vulnerability exists in the `ssh2_cipher_crypt()` function within `src/openssl.c` of libssh2. The flaw is triggered during the SSH handshake when a malicious server negotiates the use of AES-GCM ciphers. The root cause is an unchecked expression calculating the encryption length (`blocksize - aadlen - authenticationtag`), which can underflow to a large positive value. This leads to an out-of-bounds read and a subsequent `memcpy` call with a length argument near `SIZE_MAX`, resulting in an immediate process crash. The vulnerability is pre-authentication and requires no user interaction beyond the initial connection attempt. A fix is available in commit a2ed82d which introduces runtime bounds checks.
Affected products
- libssh2 libssh2 through 1.11.1
Timeline
- 2026-07-23: patched: Fix merged in pull request 2401 and commit a2ed82d
- 2026-07-24: disclosed: CVE-2026-66033 published