Biblioteka libssh2 w wersjach do 1.11.1 włącznie zawiera podatność typu out-of-bounds write w funkcji ssh2_transport_read(), umożliwiającą zdalnemu atakującemu wykonanie dowolnego kodu. Podatność jest krytyczna, ponieważ nie wymaga uwierzytelnienia ani interakcji użytkownika.
▸ Pokaż oryginał (EN)
libssh2 through 1.11.1, fixed in commit 7acf3df contains an out-of-bounds write vulnerability in ssh2_transport_read() that fails to enforce upper bounds on 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.
Funkcja ssh2_transport_read() nie weryfikuje górnej granicy wartości pola packet_length w odbieranych pakietach SSH. Zdalny atakujący może wysłać spreparowany pakiet SSH z nadmiernie dużą wartością packet_length, co prowadzi do zapisu danych poza przydzielonym obszarem pamięci sterty (heap). Skutkiem jest uszkodzenie struktury pamięci (heap corruption), które przy odpowiednim spreparowaniu payloadu może doprowadzić do przejęcia kontroli nad przepływem wykonania programu i uzyskania możliwości wykonania dowolnego kodu.
Atakujący może uzyskać zdalne wykonanie kodu (RCE) na systemie przetwarzającym połączenia SSH z użyciem podatnej biblioteki libssh2, potencjalnie prowadząc do pełnego przejęcia kontroli nad hostem. Podatność umożliwia atak bez uwierzytelnienia.
Należy zaktualizować libssh2 do wersji zawierającej commit 97acf3dfda80c91c3a8c9f2372546301d4a1a7a8 (fix dostępny w repozytorium GitHub projektu libssh2). Należy również zaktualizować wszystkie aplikacje i dystrybucje pakietów systemowych korzystające z podatnej wersji biblioteki.
libssh2 we wszystkich wersjach do 1.11.1 włącznie; poprawka wprowadzona w commicie 7acf3df (97acf3dfda80c91c3a8c9f2372546301d4a1a7a8)
W referencjach widoczny jest publiczny proof-of-concept (PoC) exploit opublikowany w archiwum GitHub (web.archive.org, zarchiwizowany 2026-06-23). Mimo braku wpisu w CISA KEV, dostępność publicznie udokumentowanego PoC znacząco podnosi ryzyko aktywnego wykorzystania.
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:XLibssh2
APPLibssh2≤ 1.11.1
Powiązane podatności
Out-of-bounds read w libssh2 — DoS i wyciek pamięci klienta
Double-free w libssh2 sftp_open() umożliwia uszkodzenie sterty klienta
Libssh2: integer underflow przed uwierzytelnieniem prowadzący do crash klienta
Libssh2: heap out-of-bounds read i free niezainicjowanego wskaźnika w podsystemie publickey
Libssh2 — pre-auth heap buffer overflow w negocjacji ETM