Набор от уязвимости с висока степен на сериозност в libssh2 би могъл да изложи клиентските приложения за SSH и SFTP на риск от повреждане на паметта, сривове и потенциално изпълнение на код при свързване със злонамерен сървър.
libssh2 е широко използвана C библиотека, която осигурява поддръжка за SSH2 протокола в различни приложения, включително инструменти за отдалечено администриране, трансфер на файлове, инструменти за автоматизирано внедряване, платформи за архивиране и SFTP клиенти.
Четири уязвимости бяха разкрити на 24 юли 2026 г., засягащи версии на libssh2 1.11.1 и по-ранни. Всяка уязвимост е коригирана в отделни промени (commits) в основния код.
Най-критичната уязвимост, проследявана като CVE-2026-66032, е грешка от тип двойно освобождаване на памет (double-free) във функцията sftp_open(), намираща се в src/sftp.c. Тя има CVSS резултат от 8.7 и е класифицирана като CWE-415.
Този дефект възниква, след като упълномощен клиент отвори SFTP сесия. Злонамерен SSH сървър може да отговори на заявка SSH_FXP_OPEN с манипулиран статус за успех. При определени условия на грешка libssh2 неволно освобождава един и същ буфер с данни за отговор два пъти.
При системи, използващи glibc алокатор за динамична памет (heap), това може да доведе до дублиране на tcache и застъпващи се разпределения на паметта. Даден атакуващ може да експлоатира това, за да повреди паметта на приложението и потенциално да презапише указатели към функции. Тази уязвимост е отстранена в commit 5e47761.
Вторият проблем, CVE-2026-66033, засяга функцията ssh2_cipher_crypt() в src/openssl.c. Тази уязвимост, възникваща преди удостоверяването (pre-authentication), има CVSS резултат от 8.7 и е свързана с недостиг при целочислени операции (integer underflow) и четене извън границите на буфера (out-of-bounds read).
Злонамерен сървър може да договори AES-GCM криптиране по време на установяването на SSH връзката (SSH handshake), което може да задейства недостиг при изчисляването на размера на пакета. Това може да причини четене извън границите и да извика функцията memcpy() с размер, близък до максималния, което води до незабавен срив на клиента преди удостоверяване. Корекцията за този проблем е налична в commit a2ed82d.
Две допълнителни уязвимости също биха могли да доведат до повреждане на паметта. CVE-2026-66034 засяга подсистемата за публични ключове, където злонамерен сървър може да предостави опасна стойност за дължина, караща парсера да чете отвъд заделения heap буфер. Пътят за обработка на грешки може също така да освободи неинициализиран указател. Този дефект е отстранен в commit a13bb6c.
CVE-2026-66035 е препълване на heap буфера преди удостоверяване, открито във функцията fullpacket() в src/transport.c. По време на договарянето на шифъра „Encrypt-then-MAC“, злонамерен сървър може да изпрати пакет, по-малък от договорения размер на шифровия блок. Това води до заделяне на недостатъчен буфер от библиотеката и копиране на повече данни, отколкото той може да побере. Тази уязвимост е адресирана в commit 42e33d8.
Организациите се насърчават да обновят libssh2 до версия, която включва и четирите корекции за сигурност, или да компилират отново библиотеката с посочените кръпки. Освен това екипите трябва да идентифицират софтуерни пакети, които статично интегрират libssh2, тъй като простото обновяване на пакета в операционната система може да не отстрани проблема за всички засегнати приложения.