
Detaillierte Analyse einer kritischen Pre-Authentifizierungs-Out-of-Bounds-Write-Sicherheitslücke in libssh2, die zu Remote-Codeausführung führt, mit Ursachenanalyse, Erkennung und Minderungsempfehlungen.
Kritische Speicherkorruptions-Sicherheitslücke vor der Authentifizierung in libssh2
| Feld | Detail |
|---|---|
| CVE | CVE-2026-55200 |
| CVSS | 9.2 Kritisch |
| Typ | Out-of-Bounds Write |
| Komponente | libssh2 |
| Betroffene Versionen | <= 1.11.1 |
| Angriffsvektor | Netzwerk |
| Erforderliche Berechtigungen | Keine |
| Benutzerinteraktion | Keine |
| Auswirkungen | Remote-Code-Ausführung (RCE), Denial-of-Service (DoS) |
| Behoben in | Commit 97acf3dfda80c91c3a8c9f2372546301d4a1a7a8 |
| Offenlegungsdatum | Juni 2026 |
CVE-2026-55200 ist eine kritische Speicherkorruptions-Sicherheitslücke, die die weit verbreitete libssh2-Bibliothek betrifft.
Der Fehler befindet sich in der Logik der Paketverarbeitung der SSH-Transportschicht in:
ssh2_transport_read()
Die Funktion validiert den eingehenden Wert nicht ordnungsgemäß:
packet_length
Feld, bevor Paketdaten allokiert und verarbeitet werden.
Ein entfernter Angreifer kann ein speziell präpariertes SSH-Paket mit einem überdimensionierten Längenwert senden, was Folgendes verursacht:
Da die Sicherheitslücke während der SSH-Transportpaketverarbeitung ausgelöst wird, kann eine Ausnutzung vor der Authentifizierung erfolgen, was die Schwere des Problems erheblich erhöht.
Vereinfachter anfälliger Ablauf:
packet_length = read_packet_length();
buffer = malloc(packet_length);
memcpy(buffer, incoming_data, packet_length);
Wenn packet_length vom Angreifer kontrolliert wird und die erwarteten Grenzen überschreitet:
Attacker
│
▼
Crafted SSH Packet
│
▼
Oversized packet_length
│
▼
Heap Corruption
│
┌──┴──┐
▼ ▼
DoS Potential RCE
| Komponente | Betroffene Versionen |
|---|---|
| libssh2 | <= 1.11.1 |
Jede Anwendung, die libssh2 einbettet, kann verwundbar sein, einschließlich:
Hinweis: OpenSSH selbst verwendet libssh2 nicht und ist nicht direkt betroffen.
| Anforderung | Wert |
|---|---|
| Netzwerkzugriff | Erforderlich |
| Authentifizierung | Nicht erforderlich |
| Benutzerinteraktion | Nicht erforderlich |
| Angriffskomplexität | Niedrig |
| Fernangriff | Ja |
Sicherheitsteams sollten auf Folgendes achten:
ssh2_transport_read() betreffenpkg-config --modversion libssh2
dpkg -l | grep libssh2
apt-cache policy libssh2-1
rpm -qa | grep libssh2
dnf info libssh2
apk info | grep libssh2
ldconfig -p | grep libssh2
find /usr -type f -executable -exec ldd {} \; 2>/dev/null | grep libssh2
Aktualisieren Sie auf eine Version, die Folgendes enthält:
97acf3dfda80c91c3a8c9f2372546301d4a1a7a8
sudo apt update
sudo apt upgrade libssh2-1
sudo reboot
sudo dnf update libssh2
sudo reboot
sudo dnf upgrade --refresh libssh2
sudo reboot
apk update
apk upgrade libssh2
Bis Patches verfügbar sind:
sudo ufw allow from TRUSTED_IP to any port 22
sudo ufw deny 22
iptables -A INPUT -p tcp --dport 22 -s TRUSTED_IP -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="TRUSTED_IP" port protocol="tcp" port="22" accept'
firewall-cmd --reload
Kompilieren Sie Anwendungen mit:
-fstack-protector-strong
-D_FORTIFY_SOURCE=2
-fPIE
-pie
-Wl,-z,relro,-z,now
Aktivieren Sie:
✓ ASLR
✓ Stack Canaries
✓ RELRO
✓ NX
✓ PIE
✓ Aktuellste Sicherheitspatches
Für nicht vertrauenswürdige Arbeitslasten:
docker run \
--read-only \
--cap-drop=ALL \
--security-opt no-new-privileges
Zusätzliche Empfehlungen:
Einsetzen:
| Kategorie | Bewertung |
|---|---|
| Ausnutzbarkeit | Hoch |
| Komplexität | Niedrig |
| Authentifizierung | Keine |
| Fernangriff | Ja |
| Lieferkettenrisiko | Hoch |
| Internetzugänglichkeit | Hoch |
| Datum | Ereignis |
|---|---|
| Juni 2026 | Sicherheitslücke öffentlich bekannt gegeben |
| Juni 2026 | Sicherheitshinweis veröffentlicht |
| Juni 2026 | Fix-Commit veröffentlicht |
| Juni 2026+ | Herstellerpatches beginnen ausgeliefert zu werden |