CVE-2026-41838: Forudsigelige session-id’er i Spring websocket
Spring Framework har forudsigelige WebSocket-session-id’er (CVE-2026-41838). Opdatér til rettet version ved næste vedligeholdelsesvindue.
Hvad er det?
CVE-2026-41838 er en svaghed i Spring Frameworks websocket-modul, spring-websocket, der bruges til at holde faste, tovejs-forbindelser mellem browser og server, for eksempel til chat eller live-opdateringer. Modulet genererer session-id’er, altså de unikke koder der identificerer en aktiv forbindelse, på en måde der ikke er kryptografisk uforudsigelig. Det betyder, at id’erne i teorien kan gættes eller udledes af en, der kender mønsteret. Kombineret med utilstrækkelige adgangsregler i applikationen kan det give en angriber adgang til en andens websocket-session. Fejlen er kategoriseret som CWE-330, brug af utilstrækkeligt tilfældige værdier.
Hvem rammer det?
Sårbarheden rammer virksomheder, der bruger Spring Framework med spring-websocket-modulet i egenudviklede Java-applikationer, for eksempel webshops med live-chat, dashboards med realtidsdata eller interne systemer med push-beskeder. Berørte versioner er Spring Framework 5.3.0 til og med 5.3.48, 6.1.0 til og med 6.1.27, 6.2.0 til og med 6.2.18 og 7.0.0 til og med 7.0.7. Er I ikke sikre på, om jeres udviklere eller leverandør bruger websocket-funktionalitet, er det et spørgsmål til dem, ikke noget I kan se udefra.
Hvad kan ske?
Kan en angriber forudsige eller gætte et gyldigt session-id, og har applikationen ikke tilstrækkelig kontrol af, hvem der må tilgå den pågældende session, kan angriberen læse data fra en anden brugers websocket-forbindelse. I praksis kan det betyde indblik i beskeder, statusopdateringer eller andet indhold, der sendes over forbindelsen. Fejlen påvirker kun fortrolighed, altså at data kan læses af uvedkommende. Den giver ikke mulighed for at ændre data eller lukke systemet ned.
Hvor alvorligt er det?
CVSS-scoren er 4,8 ud af 10, moderat. Angrebet kræver netværksadgang, men også høj angrebskompleksitet, det vil sige, at angriberen skal opfylde flere specifikke betingelser for at lykkes. Der kræves lave rettigheder, altså en form for eksisterende adgang, og en brugerhandling, for eksempel at offeret klikker på et link eller besøger en side. Der er ikke oplyst tegn på aktiv udnyttelse af sårbarheden. Kombinationen af høj kompleksitet og krav om brugerinteraktion gør, at det ikke er en fejl, der udnyttes bredt eller automatisk.
Hvad gør jeg nu?
Prioritér opdatering af Spring Framework, men uden panik, da kompleksiteten i at udnytte fejlen er høj.
- Opdatér Spring Framework til version 5.3.49, 6.1.28, 6.2.19 eller 7.0.8 alt efter hvilken hovedversion I kører.
- Bed jeres udviklere eller leverandør bekræfte, om applikationen faktisk bruger spring-websocket-modulet, og om der er lagt uafhængige adgangskontroller på websocket-endepunkter.
- Gennemgå autorisationslogikken for websocket-sessioner, så et gættet session-id alene ikke er nok til at få adgang til andres data.
- Test opdateringen i et testmiljø, hvis I har et, før den rulles ud i produktion.
- Overvåg logs for usædvanlige mønstre i websocket-forbindelser i perioden efter offentliggørelsen.
- Hent hjælp udefra, hvis I ikke selv har udviklere, der kan vurdere jeres brug af Spring Framework, eller hvis I er i tvivl om jeres autorisationsregler.
Opdatér ved næste vedligeholdelsesvindue
Vi anbefaler, at I opdaterer Spring Framework til den rettede version som en del af jeres almindelige vedligeholdelse, og at I samtidig får kigget jeres websocket-autorisation efter. Det er i orden at vente til jeres næste planlagte opdateringsvindue, da der ikke er oplyst aktiv udnyttelse, og angrebet kræver flere betingelser opfyldt samtidig. Bruger I ikke websocket-funktionalitet i jeres applikationer, kan opdateringen indgå i almindelig versionsstyring uden særskilt hastværk.
Tidslinje
Konkrete eksempler
Kundeportal med live-support
En dansk webshop bruger Spring Framework til en live-chatfunktion på sin kundeportal via websocket. Har chatmodulet ikke selvstændig kontrol af, hvem der må se hvilke samtaler, kan en angriber, der gætter et session-id, potentielt læse en anden kundes chatbesked. Opdatering af Spring Framework og en gennemgang af adgangsreglerne i chatmodulet lukker hullet.
Ofte stillede spørgsmål
Er vi ramt af denne sårbarhed?
Kun hvis jeres applikationer bruger Spring Frameworks websocket-modul, spring-websocket, i en af de berørte versioner. Spørg jeres udviklere eller leverandør, om de bruger websocket-funktionalitet, og hvilken Spring-version de kører.
Hvordan tjekker vi, om vi kører en sårbar version?
Se i jeres projekts afhængighedsfil, for eksempel pom.xml eller build.gradle, efter Spring Framework-versionen, eller bed leverandøren om at oplyse den. Er versionen under 5.3.49, 6.1.28, 6.2.19 eller 7.0.8, er I berørt.
Kan vi vente til weekenden med at opdatere?
Ja. Der er ikke oplyst tegn på aktiv udnyttelse, og angrebet kræver høj kompleksitet samt brugerhandling. Det er rimeligt at planlægge opdateringen som en del af næste vedligeholdelsesvindue.
Skal vi anmelde denne sårbarhed nogen steder?
Nej, ikke medmindre I konstaterer, at den faktisk er blevet udnyttet, og at persondata er kompromitteret. I så fald gælder de almindelige regler om anmeldelse af sikkerhedshændelser og eventuelt brud på persondatasikkerheden.
Er det nok kun at opdatere Spring Framework?
Opdateringen retter selve genereringen af session-id’er, men fejlen opstår først, hvis applikationens autorisationsregler samtidig er utilstrækkelige. Vi anbefaler derfor også, at I får gennemgået adgangskontrollen på jeres websocket-endepunkter.
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.
Referencer & kilder
Officielle advisories
Brug for hjælp med jeres sikkerhed?
Vi hjælper SMV’er med at omsætte trusler som denne til konkrete handlingsplaner.