CVE-2026-41838: Spring Framework WebSocket-sårbarhed
Spring Framework genererer forudsigelige WebSocket-session-ID’er, der kan misbruges til uautoriseret adgang til andres sessioner.
Hvad er det?
Spring Framework er et meget udbredt udviklingsværktøj, som mange virksomheders hjemmesider og webapplikationer er bygget på. I modulet til WebSocket (en teknologi der holder en løbende forbindelse åben mellem bruger og server, f.eks. til chat eller live-opdateringer) bruges der session-ID’er (unikke identifikationsnumre) til at holde styr på, hvem der er hvem. Problemet er, at disse ID’er ikke er tilfældige nok — en angriber kan i princippet gætte dem. Hvis en applikation derudover ikke tjekker ordentligt, om brugeren har adgang til en given session, kan angriberen snige sig ind og læse data, der ikke tilhører dem.
Hvem rammer det?
Sårbarheden rammer dig, hvis din virksomhed driver en webapplikation, der er bygget med Spring Framework i en af de berørte versioner (5.3.0–5.3.48, 6.1.0–6.1.27, 6.2.0–6.2.18 eller 7.0.0–7.0.7), og som bruger WebSocket-funktionalitet. Det er typisk relevant for:
- Virksomheder med egne webudviklere eller et eksternt bureau, der har bygget en Java-baseret webapplikation.
- SaaS-produkter eller interne systemer med realtidsfunktioner som notifikationer, chat eller live-dataopdateringer.
- Virksomheder der kører Spring Boot (som inkluderer Spring Framework).
Bruger din applikation ikke WebSocket, er du ikke i umiddelbar risiko.
Hvad kan ske?
En angriber med en gyldig brugerkonto i applikationen kan forsøge at gætte andre brugeres WebSocket-session-ID’er. Lykkes det — og hvis applikationen ikke har strenge adgangskontrolregler — kan angriberen:
- Læse fortrolige data fra andre brugeres sessioner, f.eks. beskeder, persondata eller forretningsinformation der sendes over WebSocket-forbindelsen.
- Overvåge andre brugeres aktivitet i realtid uden at de opdager det.
Angriberen kan ikke ændre data eller lukke systemet ned via denne sårbarhed. Det er udelukkende et fortrolighedsproblem. Angrebet kræver desuden, at en anden bruger er aktiv på samme tid, og at angriberen allerede har adgang til systemet.
Hvor alvorligt er det?
Sårbarheden er vurderet til moderat (CVSS 4.8 ud af 10). Det er ikke en kritisk fejl, men den bør ikke ignoreres. Her er hvad der dæmper og hvad der forstærker risikoen:
- Dæmpende faktorer: Angrebet er teknisk komplekst — det kræver, at angriberen allerede er logget ind, at timingen er rigtig, og at applikationens adgangskontrol er svag. En bruger skal desuden aktivt interagere.
- Forstærkende faktor: Hvis der lækkes data, kan konsekvensen være høj — CVSS sætter fortrolighedspåvirkningen til maksimal. For virksomheder med GDPR-forpligtelser kan en datalæk have alvorlige juridiske konsekvenser.
Hvad gør jeg nu?
Spørg din udvikler eller IT-leverandør, om jeres webapplikation bruger Spring Framework og WebSocket. Hvis ja, bør I gøre følgende:
- Identificér versionen: Bed jeres udvikler tjekke, hvilken version af Spring Framework applikationen kører. Er den i intervallet 5.3.0–5.3.48, 6.1.0–6.1.27, 6.2.0–6.2.18 eller 7.0.0–7.0.7, er I potentielt sårbare.
- Opdatér til en rettet version: Bed jeres udvikler opgradere til minimum Spring Framework 5.3.49, 6.1.28, 6.2.19 eller 7.0.8 afhængigt af hvilken version I bruger.
- Gennemgå adgangskontrol: Bed jeres udvikler bekræfte, at applikationen kun giver brugere adgang til deres egne WebSocket-sessioner — dette er god praksis uanset opdatering.
- Test efter opdatering: Sørg for at applikationen testes grundigt efter opdateringen, så I sikrer, at alt virker som forventet.
- Dokumentér ændringen: Notér opdateringen i jeres ændringslog og vurder, om I skal orientere databehandleraftaler eller GDPR-ansvarlige internt.
Opdatér inden for 30 dage
Vi anbefaler, at I inden for de næste 30 dage får jeres udvikler eller IT-leverandør til at opgradere Spring Framework til en rettet version. Sårbarheden kræver en vis teknisk indsats at udnytte, så der er ikke grund til panik — men da den potentielt kan eksponere fortrolige brugerdata, bør opdateringen prioriteres i jeres næste vedligeholdelsesvindue. Sørg samtidig for, at jeres applikations adgangskontrol er korrekt konfigureret, da det er det andet led i denne sårbarhed.
Tidslinje
Konkrete eksempler
Medarbejder aflytter kollegas session
Forestil dig en intern virksomhedsapplikation med et realtids-beskedmodul bygget på Spring WebSocket. En medarbejder med adgang til systemet kan systematisk forsøge at gætte gyldige session-ID’er for kolleger, der er logget ind på samme tid. Hvis applikationen ikke tjekker, om brugeren har ret til at tilgå en given session, kan medarbejderen læse beskeder og data fra kollegernes aktive sessioner — uden at de opdager det.
Ekstern angriber med stjålet brugerlogin
En angriber har via phishing (en type svindelmails) fået fat i login-oplysningerne til en lavprivilegeret brugerkonto i en kundeportal. Angriberen logger ind og forsøger derefter at gætte session-ID’er tilhørende administratorer eller andre kunder, der er aktive på portalen. Lykkes det, kan angriberen læse de andre brugeres data — f.eks. ordrer, personoplysninger eller finansielle informationer — selvom den kompromitterede konto normalt ikke har adgang til dette.
Konkurrent spionerer på forretningsdata
En B2B-platform bruger WebSocket til at vise live-lagerstatus og priser til indloggede partnere. En konkurrent med en legitim partnerkonto på platformen udnytter sårbarheden til at forsøge at tilgå andre partneres WebSocket-sessioner og aflæse deres priser og lagerforespørgsler i realtid. Dette kan give konkurrencemæssige fordele og udgør et alvorligt fortrolighedsbrud.
Ofte stillede spørgsmål
Bruger vi Spring Framework — hvordan finder vi ud af det?
Spring Framework bruges primært i Java-baserede webapplikationer. Spørg jeres udvikler eller IT-leverandør om, hvilke teknologier jeres applikation er bygget på. Bruger I Spring Boot (et populært Java-udviklingsrammeværk), inkluderer det automatisk Spring Framework. En udvikler kan hurtigt tjekke versionsnummeret i projektets afhængighedsfil (f.eks. pom.xml eller build.gradle).
Er vi i fare, hvis vi ikke bruger WebSocket?
Nej. Denne sårbarhed er specifikt i Spring Frameworks WebSocket-modul. Bruger jeres applikation ikke WebSocket-funktionalitet (f.eks. realtidschat, live-notifikationer eller løbende dataopdateringer), er I ikke eksponeret for denne sårbarhed. Det er dog stadig god praksis at holde Spring Framework opdateret generelt.
Kan vi bare vente med at opdatere?
Angrebet er teknisk komplekst og kræver, at angriberen allerede har adgang til systemet, så den umiddelbare risiko er begrænset. Der er dog ingen kendte afhjælpende indstillinger der fuldstændigt erstatter en opdatering. Vi anbefaler at opdatere inden for 30 dage som del af jeres normale vedligeholdelse — og hurtigere, hvis jeres applikation håndterer særligt følsomme data.
Kan vi få en bøde fra Datatilsynet, hvis nogen har udnyttet dette?
Hvis sårbarheden er blevet udnyttet og har ført til uautoriseret adgang til persondata, kan det udgøre et databrud under GDPR. I så fald skal I som udgangspunkt anmelde det til Datatilsynet inden for 72 timer. Kontakt jeres DPO (databeskyttelsesrådgiver) eller juridiske rådgiver, hvis I har mistanke om, at der har fundet et brud sted.
Kræver opdateringen nedetid på vores system?
Det afhænger af, hvordan jeres applikation er sat op. Mange opdateringer kan udføres med minimal nedetid, hvis applikationen genstartes i et planlagt vedligeholdelsesvindue. Tal med jeres udvikler om at planlægge opdateringen på et tidspunkt, der forstyrrer brugerne mindst muligt — f.eks. om aftenen eller i weekenden.
Ramte produkter
Vmware — Spring Framework
≥ 5.3.0, < 5.3.49
Vmware — Spring Framework
≥ 6.1.0, < 6.1.28
Vmware — Spring Framework
≥ 6.2.0, < 6.2.19
Vmware — Spring Framework
≥ 7.0.0, < 7.0.8
CVSS-detaljer
CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:H/I:N/A:N
CWE-svaghedstyper
Original NVD-beskrivelse (engelsk)
IDs for WebSocket sessions in the spring-websocket module are not cryptographically unpredictable, which may be possible to exploit in combination with inadequate authorization rules.
Affected versions:
Spring Framework 7.0.0 through 7.0.7; 6.2.0 through 6.2.18; 6.1.0 through 6.1.27; 5.3.0 through 5.3.48.
Brug for hjælp med jeres sikkerhed?
Vi hjælper SMV’er med at omsætte trusler som denne til konkrete handlingsplaner.
