CVE-2026-41699: Kritisk sårbarhed i Spring for GraphQL
Kritisk sårbarhed i Spring for GraphQL giver angribere mulighed for at overtage din server via manipulerede forespørgsler.
Hvad er det?
CVE-2026-41699 er en sårbarhed i Spring for GraphQL — et populært Java-framework (programmeringsværktøj) som mange webtjenester og API’er (grænseflader der lader systemer tale sammen) er bygget med. Fejlen opstår ved usikker deserialisering (når systemet forsøger at omdanne indkommende data til objekter i hukommelsen) af sideopsplittede GraphQL-forespørgsler. En angriber kan sende en bevidst konstrueret forespørgsel til din applikation, som narrer serveren til at udføre vilkårlig kode. Det kræver ikke, at angriberen har et login eller særlige rettigheder på forhånd.
Hvem rammer det?
Sårbarheden rammer virksomheder og udviklere, der kører Java-baserede webapplikationer eller API’er bygget med Spring for GraphQL i følgende versioner:
- 1.3.0 op til og med 1.3.8
- 1.4.0 op til og med 1.4.5
- 2.0.0 op til og med 2.0.3
Du er kun sårbar, hvis din applikation eksponerer en pagineret (sideopsplittet) GraphQL-forespørgsel og din serverens klassesti (classpath) indeholder bestemte klasser, som kan misbruges under deserialiseringen. Bruger du standard Java-biblioteker eller visse populære afhængigheder, er risikoen reel.
Hvad kan ske?
Hvis en angriber udnytter denne sårbarhed, kan det føre til Remote Code Execution (RCE) — det vil sige, at angriberen kan køre vilkårlige programmer og kommandoer direkte på din server. Det åbner for:
- Datatyveri: Angriberen kan kopiere eller eksfiltrere fortrolige data, fx kundeoplysninger og forretningshemmeligheder.
- Ransomware: Serveren kan krypteres og tages som gidsel.
- Bagdør: Angriberen kan installere skjult adgang til dit system til fremtidig misbrug.
- Nedbrud: Hele applikationen eller serveren kan gøres utilgængelig.
Fortrolighed, integritet og tilgængelighed er alle vurderet til høj risiko i den tekniske klassifikation.
Hvor alvorligt er det?
Sårbarheden er klassificeret som Alvorlig (CVSS 8.1 ud af 10). Det er meget høj alvor. Angrebet kan udføres over internettet uden login og uden at brugeren behøver at klikke på noget. Den eneste faktor der holder scoren fra at være kritisk (9+), er at angrebet kræver en vis teknisk kompleksitet og specifikke betingelser på serveren. Disse betingelser er dog ikke usædvanlige i typiske Java-applikationer, så den reelle risiko bør ikke undervurderes. CWE-502 (Deserialization of Untrusted Data) er en velkendt og hyppigt udnyttet fejlkategori.
Hvad gør jeg nu?
Følg disse trin hurtigst muligt — helst inden for de næste 1-3 arbejdsdage:
- Kortlæg din eksponering: Spørg din udvikler eller IT-leverandør, om I bruger Spring for GraphQL i en af de ramte versioner (1.3.0–1.3.8, 1.4.0–1.4.5 eller 2.0.0–2.0.3).
- Opdatér til den sikre version: Opgradér til 1.3.9, 1.4.6 eller 2.0.4 (eller nyere). Dette er den primære og anbefalede løsning.
- Tjek om paginering er aktivt: Undersøg om jeres applikation eksponerer paginerede (Connection-baserede) GraphQL-felter — det afgør, om I rent faktisk er i farezonen.
- Begræns ekstern adgang midlertidigt: Hvis I ikke kan patche med det samme, overvej at sætte en firewall-regel (adgangsbegrænsning) op, der begrænser adgangen til GraphQL-endpointet til kendte IP-adresser.
- Overvåg systemlogge: Kig efter usædvanlige forespørgsler mod GraphQL-endpunktet, særligt med store eller mærkelige paginerings-parametre.
Opdatér inden for 1-3 arbejdsdage
Auroa anbefaler, at du behandler denne sårbarhed som højprioritet og igangsætter en opdatering af Spring for GraphQL inden for de næste 1-3 arbejdsdage. RCE-sårbarheder (mulighed for fjernudførelse af kode) er blandt de mest alvorlige typer angreb, og Spring-ekonomiet er velundersøgt af angribere. Har du ikke interne udviklere, skal du kontakte din IT-leverandør i dag og bede dem bekræfte, at opdateringen er planlagt. Vent ikke på den næste planlagte vedligeholdelsesvindue.
Tidslinje
Konkrete eksempler
Angriber overtager webshop-server via API
En dansk webshop bruger Spring for GraphQL til at håndtere produktsøgninger med paginering. En angriber sender en bevidst konstrueret GraphQL-forespørgsel med ondsindet indhold i pagineringsparametrene. Serveren deserialiserer dataene uden validering, og angriberen får kørt et program, der opretter en skjult administratorkonto. Kort efter kopieres hele kundedatabasen, inklusiv betalingsinformation.
Ransomware-installation via GraphQL-endpoint
Et softwareselskab eksponerer et internt GraphQL-API til deres SaaS-platform. En angriber opdager endpointet via en automatiseret scanning og sender en ondsindet deserialiserings-payload. Koden downloader og installerer ransomware på serveren, som krypterer alle filer og backups. Virksomheden modtager en løsesumsbesked på 50.000 euro.
Bagdør installeret til fremtidig spionage
En angriber udnytter sårbarheden i et revisionsfirmas interne system og installerer en skjult bagdør (et program der giver vedvarende adgang) i stedet for at angribe med det samme. I uger herefter kan angriberen læse fortrolig korrespondance og regnskabsdata, uden at nogen opdager det — indtil kunden varsles af en tredjepart.
Ofte stillede spørgsmål
Hvordan ved jeg, om vi bruger Spring for GraphQL?
Bed din udvikler eller IT-leverandør om at tjekke projektets afhængighedsfil (typisk
pom.xmlellerbuild.gradlei Java-projekter). Søg efter spring-graphql. Alternativt kan de køre en softwaresammensætningsanalyse (SCA-scan) med et gratis værktøj som OWASP Dependency-Check.Er vi kun sårbare, hvis vi har paginering aktiveret?
Ja, teknisk set kræver udnyttelsen, at applikationen eksponerer et pagineret GraphQL-felt (kaldet et Connection-felt) og at serveren indeholder bestemte Java-klasser på klassestien. Men da begge betingelser er meget almindelige i typiske Spring-applikationer, bør du antage, at I er sårbare, indtil I har fået bekræftet det modsatte.
Kan vi bare slukke for GraphQL midlertidigt?
Det afhænger af, om andre systemer eller brugere er afhængige af GraphQL-endpunktet. Hvis det er muligt uden at afbryde kritiske forretningsprocesser, kan det være en midlertidig nødforanstaltning, mens I venter på at patche. En mere skånsom løsning er at begrænse adgangen til GraphQL via firewall til kendte IP-adresser.
Hvad er usikker deserialisering, og hvorfor er det farligt?
Deserialisering er processen, hvor en applikation omdanner indkommende data (fx fra en netværksforespørgsel) til objekter i serverens hukommelse. Hvis applikationen ikke validerer disse data ordentligt, kan en angriber sende manipulerede data, der snyder systemet til at udføre uønskede handlinger — i værste fald at køre angriberkontrollerede programmer direkte på serveren.
Er der kendte angreb i naturen (in-the-wild exploits)?
På offentliggørelsestidspunktet er der bekræftet tilgængeligt proof-of-concept-kode (teknisk demonstration af angrebet), men det er endnu ikke dokumenteret, at angribere aktivt udnytter sårbarheden i stor skala. Det kan ændre sig hurtigt — erfaringen viser, at angribere typisk begynder at misbruge kendte RCE-sårbarheder inden for dage til uger efter offentliggørelse.
Påvirker det vores hjemmeside, hvis vi opdaterer?
En opgradering inden for samme hovedversion (fx fra 1.3.8 til 1.3.9) er typisk bagudkompatibel og bør ikke kræve ændringer i jeres kode. Din udvikler bør dog køre applikationens tests efter opdateringen for at sikre, at alt fungerer som forventet. Planlæg opdateringen i en vedligeholdelsesperiode, hvis muligt.
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.
Brug for hjælp med jeres sikkerhed?
Vi hjælper SMV’er med at omsætte trusler som denne til konkrete handlingsplaner.
