CVE-2026-55199: DoS-fejl i libssh2 SSH-bibliotek
En skadelig SSH-server kan låse CPU’en hos libssh2-klienter i over 60 sekunder. Opdatér biblioteket til version efter rettelsen i commit 1762685.
Hvad er det?
CVE-2026-55199 er en fejl i biblioteket libssh2, som mange programmer bruger til at oprette SSH- og SFTP-forbindelser. Fejlen sidder i den kode, der håndterer beskeden SSH_MSG_EXT_INFO under opsætning af forbindelsen, og er af typen CWE-835, en løkke uden korrekt exit-betingelse. En SSH-server kan sætte et talfelt for antal udvidelser til den maksimale værdi 4294967295. Fordi klienten ikke kontrollerer svaret fra en intern streng-funktion, ender programmet i en løkke, der bruger fuld CPU-kraft i over et minut, uden at den normale timeout for sessionen griber ind. Fejlen kræver ikke login og ingen handling fra brugeren, men den kræver, at klienten forbinder til en server, som angriberen kontrollerer.
Hvem rammer det?
Sårbarheden findes i alle versioner af libssh2 op til og med 1.11.1. Den rammer ikke SSH-servere direkte, men programmer der bruger biblioteket som klient, for eksempel Git-værktøjer, curl bygget med libssh2-support, backup- og filoverførselsprogrammer, samt egne applikationer og netværksudstyr, der bruger biblioteket til SFTP eller SCP. Danske virksomheder, der lader CI/CD-pipelines, backup-jobs eller integrationer forbinde automatisk til eksterne eller ukendte SSH-servere, er de mest eksponerede.
Hvad kan ske?
Hvis en klientapplikation forbinder til en server, angriberen har kontrol over, kan serveren udløse fejlen og sætte klientprocessen fast med fuld CPU-belastning. I praksis betyder det, at et automatiseret job, for eksempel en natlig backup eller en byggeserver, der henter kode fra en Git-server, hænger og blokerer den kø af opgaver, der venter. Der stjæles ingen data, og systemet lukkes ikke ned, men driften af den pågældende proces stopper, indtil den bliver genstartet manuelt.
Hvor alvorligt er det?
CVSS-scoren er 5,9, moderat. Angrebsvektoren er netværk, men angrebskompleksiteten er sat til høj, fordi det kræver, at klienten selv vælger at forbinde til en server, angriberen styrer eller har kompromitteret. Der kræves ingen login og ingen brugerhandling, når forbindelsen først oprettes. Konsekvensen er alene tilgængelighed, CPU-udmattelse, og påvirker ikke fortrolighed eller dataintegritet. Der er ved offentliggørelsen ikke oplysninger om, at fejlen udnyttes aktivt, og der findes ikke offentligt kendte angrebsværktøjer.
Hvad gør jeg nu?
Prioritér opdateringen efter, hvor mange af jeres systemer der bruger libssh2 som SSH-klient.
- Opdatér libssh2 til en version, der indeholder rettelsen fra commit 1762685, eller opdatér de programmer, der leverer biblioteket som en del af deres pakke.
- Kortlæg hvilke af jeres applikationer og serverintegrationer, der benytter libssh2, herunder Git-klienter, curl-baserede scripts og backupløsninger.
- Begræns hvilke SSH-servere jeres automatiserede jobs og klienter må forbinde til, og verificér serverens host key, hvor det er muligt.
- Overvåg CPU-forbrug på servere, der kører automatiserede SSH-forbindelser, så et fastlåst job opdages hurtigt.
- Kontakt en ekstern rådgiver, hvis I ikke kan identificere, hvilke af jeres systemer der reelt bruger libssh2, eller hvis opdateringen kræver ændringer i tredjepartssoftware, I ikke selv har kildekode til.
Opdatér ved næste vedligeholdelsesvindue
Vi anbefaler, at I opdaterer libssh2 og de programmer, der bruger biblioteket, i jeres almindelige vedligeholdelsesvindue, da fejlen kræver, at klienten forbinder til en server angriberen kontrollerer. Prioritér systemer og automatiserede jobs, der forbinder til eksterne eller ukendte SSH-servere, højest. Har I kun interne, betroede SSH-servere i jeres miljø, kan opdateringen vente til næste planlagte kørsel uden væsentlig risiko.
Tidslinje
Konkrete eksempler
Byggeserver hænger ved kodetræk
En dansk virksomheds CI/CD-pipeline trækker automatisk kode fra en ekstern Git-server via SSH hver nat. Hvis den eksterne server bliver kompromitteret eller udskiftet med en skadelig server, kan byggeserveren låse fast med fuld CPU-belastning under kodetrækket, hvilket forsinker natlige builds og udgivelser, indtil processen genstartes manuelt.
Ofte stillede spørgsmål
Er vi ramt af CVE-2026-55199?
I er ramt, hvis nogen af jeres systemer bruger libssh2 version 1.11.1 eller tidligere som SSH-klient, for eksempel via Git, curl eller backup-værktøjer. SSH-servere er ikke ramt af selve fejlen.
Hvordan finder vi ud af, om vi bruger libssh2?
Tjek versionsafhængigheder i jeres applikationer og servere, og se om curl, Git eller andre SSH-klientprogrammer er bygget med libssh2-support. Leverandøren af den software, I bruger, kan bekræfte dette.
Kan vi vente til weekenden med at opdatere?
Ja, hvis jeres SSH-klienter kun forbinder til betroede, interne servere. Forbinder I til eksterne eller ukendte servere, bør opdateringen prioriteres hurtigere.
Skal vi anmelde dette til myndighederne?
Nej, en denial-of-service på en klientproces udløser normalt ikke anmeldelsespligt, med mindre den forstyrrer en tjeneste med persondata eller kritisk drift i et omfang, der kræver indberetning efter jeres egne regler.
Kan angriberen stjæle data via denne fejl?
Nej, sårbarheden påvirker kun tilgængelighed. Der er ingen indikation på, at angriberen kan læse eller ændre data via denne fejl.
Findes der en midlertidig løsning, hvis vi ikke kan opdatere nu?
Begræns hvilke servere jeres klienter må forbinde til, og verificér serverens host key, indtil opdateringen er gennemført. Det fjerner ikke fejlen, men reducerer risikoen for at møde en skadelig server.
CVSS-detaljer
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
CWE-svaghedstyper
Original NVD-beskrivelse (engelsk)
libssh2 through 1.11.1, fixed in commit 1762685, contains a pre-authentication denial of service vulnerability in the SSH_MSG_EXT_INFO handler in src/packet.c that allows a malicious SSH server to cause a client CPU exhaustion loop by sending a crafted extension count value. A malicious server can set nr_extensions to 0xFFFFFFFF during key exchange, causing the client to spin in a tight CPU loop for over 60 seconds because return values from _libssh2_get_string() are unchecked and the session timeout does not apply to CPU-bound loops.
Referencer & kilder
Eksterne kilder
Brug for hjælp med jeres sikkerhed?
Vi hjælper SMV’er med at omsætte trusler som denne til konkrete handlingsplaner.