CVE-2026-41699: RCE-sårbarhed i Vmware Spring for GraphQL
Fejl i Spring for GraphQL (CVE-2026-41699) kan give fjernkørsel af kode via usikker deserialisering. Opdatér til rettet version.
Hvad er det?
CVE-2026-41699 er en sårbarhed i Spring for GraphQL, et framework der bruges til at bygge GraphQL-API’er i Java-applikationer. Fejlen ligger i CWE-502, usikker deserialisering, som betyder at applikationen omdanner data fra en forespørgsel til programobjekter uden at kontrollere, om dataene er sikre. Når en applikation bruger paginering, altså opdeling af søgeresultater i sider, gennem et såkaldt Connection-felt, kan en angriber sende en specialbygget GraphQL-forespørgsel, der udnytter dette. Er de rigtige klasser til stede på systemets classpath, kan angrebet føre til fuld fjernkørsel af kode på serveren.
Hvem rammer det?
Det rammer virksomheder og kommuner, der har egenudviklede applikationer eller API’er bygget med Vmware Spring for GraphQL i version 1.3.0 til 1.3.8, 1.4.0 til 1.4.5 eller 2.0.0 til 2.0.3. Det gælder især applikationer, hvor GraphQL-skemaet eksponerer et pagineret felt, det vil sige et felt der understøtter sideopdelt visning af data. Danske virksomheder med interne udviklingsteam eller leverandører, der bygger tilpassede backend-systemer på Spring, bør undersøge deres afhængigheder.
Hvad kan ske?
En angriber, der kan sende en GraphQL-forespørgsel til det sårbare endpoint, kan i værste fald få fuld kontrol over serveren, uden at have gyldige login-oplysninger. Det kan betyde adgang til databaser, kundedata og interne systemer, samt mulighed for at installere skadelig software eller bruge serveren som springbræt videre ind i netværket. For en dansk virksomhed kan konsekvensen være driftsstop, tab af persondata og en anmeldelsespligtig sikkerhedsbrist.
Hvor alvorligt er det?
CVSS-scoren er 8,1 ud af 10, vurderet som alvorlig. Angrebet kan udføres over netværket uden login og uden at en bruger skal klikke på noget. Det, der gør angrebet sværere at udføre, er den høje angrebskompleksitet: angriberen skal kende specifikke forhold ved applikationens opsætning, herunder hvilke klasser der findes på classpath. Lykkes angrebet, er konsekvensen fuld, både for fortrolighed, integritet og tilgængelighed af systemet. Der er ingen kendte tilfælde af aktiv udnyttelse på offentliggørelsesdatoen.
Hvad gør jeg nu?
Sådan lukker I hullet og reducerer risikoen:
- Opdatér Spring for GraphQL til version 1.3.9, 1.4.6 eller 2.0.4, afhængigt af hvilken serie I bruger. Det fjerner den sårbare kode.
- Kortlæg, hvilke af jeres applikationer der bruger Spring for GraphQL, og om de eksponerer pagineringsfelter (Connection-typer) i deres skema.
- Gennemgå adgangslogge for uventede eller unormalt store GraphQL-forespørgsler i perioden op til opdateringen.
- Begræns, hvem der kan sende forespørgsler til GraphQL-endpointet, for eksempel via netværkssegmentering eller autentificering, indtil opdateringen er gennemført.
- Har I ikke selv udviklerressourcer til at vurdere jeres kodebase, bør I hente hjælp udefra til at kortlægge eksponeringen og udføre opdateringen.
Planlæg opdatering inden 14 dage
Vi anbefaler, at I opdaterer Spring for GraphQL til en rettet version så hurtigt som muligt, og at I i mellemtiden kortlægger, om jeres GraphQL-skema eksponerer pagineringsfelter. Det er acceptabelt at vente til næste planlagte opdateringsvindue, hvis I kan dokumentere, at applikationen ikke bruger paginering, eller at endpointet ikke er tilgængeligt fra internettet. Er I i tvivl om jeres eksponering, bør I få en teknisk gennemgang, før I beslutter at vente.
Tidslinje
Konkrete eksempler
Intern kundeportal med søgefunktion
En dansk mellemstor virksomhed har bygget en kundeportal med et GraphQL-API i Spring for GraphQL, hvor kunder kan gennemse ordrehistorik med sideopdelt visning. En angriber sender en manipuleret forespørgsel mod pagineringsfeltet og udnytter en kendt klasse i systemets afhængigheder til at få kode kørt på serveren. Angriberen får derved adgang til virksomhedens kundedatabase og interne netværk.
Ofte stillede spørgsmål
Er vi ramt af CVE-2026-41699?
I er kun ramt, hvis jeres applikationer bruger Vmware Spring for GraphQL i en af de nævnte versionsserier, og hvis skemaet indeholder et pagineret Connection-felt. Brug ikke Spring for GraphQL, eller er I allerede opdateret, er I ikke ramt.
Hvordan tjekker vi, om vi bruger den sårbare version?
Gennemgå jeres byggeafhængigheder, for eksempel i Maven- eller Gradle-konfigurationen, og se om Spring for GraphQL er angivet i en af de sårbare versionsintervaller. Er I i tvivl, bed jeres udviklere eller leverandør om at bekræfte versionen.
Kan vi vente til den næste planlagte opdatering?
Det afhænger af, om jeres GraphQL-skema eksponerer paginerede felter mod internettet. Er det tilfældet, bør opdateringen prioriteres inden for de kommende to uger. Er endpointet kun tilgængeligt internt og uden paginering, kan I vente til næste vindue.
Skal vi anmelde noget til myndighederne?
Der er ikke belæg for, at sårbarheden i sig selv er anmeldelsespligtig. Konstaterer I derimod, at systemet er blevet udnyttet og persondata er kompromitteret, skal I vurdere anmeldelse til Datatilsynet efter de almindelige regler for sikkerhedsbrister.
Er sårbarheden udnyttet i praksis?
Der er ikke kendte tilfælde af aktiv udnyttelse på offentliggørelsesdatoen. Den høje angrebskompleksitet gør det sværere for en angriber at udnytte fejlen uden detaljeret kendskab til applikationens opsætning.
Hvad hvis vi ikke selv har udviklet applikationen?
Kontakt leverandøren og bed om bekræftelse på, hvilken version af Spring for GraphQL der bruges, og om der er planer for opdatering. Har leverandøren ikke svar, bør I bede om en tidsplan skriftligt.
Ramte produkter
Vmware: Spring For Graphql
≥ 1.3.0, < 1.3.9
Vmware: Spring For Graphql
≥ 1.4.0, < 1.4.6
Vmware: Spring For Graphql
≥ 2.0.0, < 2.0.4
CVSS-detaljer
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
CWE-svaghedstyper
Original NVD-beskrivelse (engelsk)
Spring for GraphQL applications are vulnerable to Unsafe Deserialization when processing paginated GraphQL queries. An attacker can craft a malicious GraphQL request that can lead to Remote Code Execution when the application exposes a paginated (Connection) field and the classpath contains specific classes that can be leveraged during deserialization.
Affected versions:
Spring for GraphQL 2.0.0 through 2.0.3; 1.4.0 through 1.4.5; 1.3.0 through 1.3.8.
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.