Die Schwachstelle sitzt in der Funktion ssh2_transport_read() in transport.c. Dort verarbeitet libssh2 eingehende SSH-Pakete während des Handshakes. Laut Quelltext wurde das vom Angreifer kontrollierte Feld packet_length zwar auf Werte unterhalb von 1 geprüft, eine Obergrenze fehlte jedoch.

Das eigentliche Problem entsteht bei der Größenberechnung: packet_length wird zusammen mit einigen kleinen Zusatzwerten in 32-Bit-Arithmetik addiert. Setzt ein Angreifer packet_length auf 0xffffffff, läuft der Wert auf eine sehr kleine Zahl über. libssh2 reserviert daraufhin nur einen entsprechend kleinen Puffer, während nachfolgender Code das vollständige, übergroße Paket hineinschreibt.

Das Ergebnis ist ein Schreibzugriff außerhalb der Heap-Grenzen. Eingeordnet wird der Fehler als CWE-680, also ein Ganzzahlüberlauf, der in einen Pufferüberlauf mündet. Der Patch ergänzt die fehlende Prüfung und weist jedes packet_length oberhalb von LIBSSH2_PACKET_MAXPAYLOAD zurück, bevor die fehleranfällige Berechnung ausgeführt wird.

Gemeldet wurde die Lücke vom Sicherheitsforscher Tristan Madani. Die Maintainer übernahmen den Patch über Pull Request #2052 am 12. Juni. VulnCheck veröffentlichte die CVE am 17. Juni.

Inzwischen kursiert auch ein öffentliches Proof-of-Concept im GitHub-Archiv „exploitarium“, einer Sammlung von Exploit-Code, deren Autor nach eigener Aussage Einträge ohne vorherige Meldung veröffentlicht hat. Das Archiv enthält für den libssh2-Fehler laut Quelltext ein lokal verifiziertes SSH-Trigger-Grundgerüst sowie eine kontrollierte lokale RCE-Testumgebung, aber keinen sofort einsetzbaren Remote-Exploit. Ob sich daraus eine verlässliche Codeausführung gegen eine reale Anwendung ableiten lässt, hängt demnach weiterhin von der Ziel-Binärdatei, dem Verhalten des Speichermanagers, vorhandenen Schutzmechanismen und der Art der Einbettung von libssh2 ab.

Der Quelltext ordnet auch den Kontext der Veröffentlichung ein: Der Autor des Archivs räumt selbst ein, dass die Sammlung unvollständig online ging, manche Einträge schwach seien und die Fuzzing-Arbeit durch Künstliche Intelligenz angetrieben worden sei. Bei CISA steht die Ausnutzungsbewertung für CVE-2026-55200 weiterhin auf „keine“, und Berichte über einen Einsatz in freier Wildbahn gibt es bisher nicht.

Eine behobene offizielle libssh2-Version existiert noch nicht. Der Fix liegt bislang nur im Hauptentwicklungszweig, während eine markierte Veröffentlichung noch vorbereitet wird. Deshalb übernehmen Linux-Distributionen und abhängige Projekte den Patch eigenständig; Debian verfügt laut Quelltext bereits in Testing über eine reparierte Fassung. NHS England Digital hat zudem eine Warnmeldung veröffentlicht und betroffene Organisationen zum Aktualisieren aufgefordert.

Neben CVE-2026-55200 nennt der Quelltext zwei weitere Schwachstellen, die ebenfalls gepatcht werden sollten: CVE-2026-55199 mit einem CVSS-Wert von 8,2, ein Denial-of-Service-Fehler, der einen verbindenden Client über eine gefälschte Erweiterungsanzahl in eine CPU-Schleife zwingt, sowie CVE-2025-15661 mit CVSS 8,3, ein Heap-Over-Read in SFTP.

Ganz neu ist die Fehlerklasse in libssh2 nicht. Bereits 2019 erschien Version 1.8.1, um neun Schwachstellen zu beheben, angeführt von CVE-2019-3855, einem laut Quelltext beinahe identischen Integer-Overflow in derselben Transport-Leseroutine, der ebenfalls Codeausführung über einen bösartigen Server gegen einen verbindenden Client erlaubte.