CVE-2026-40993: Deserialiseringsfejl i Spring Security SAML2
Fejl i Spring Security kan lade en angriber med databaseadgang udføre skadelig kode via SAML2-opsætning. Opdatér til 7.0.6.
Hvad er det?
CVE-2026-40993 er en sårbarhed i Spring Security, der rammer klassen JdbcAssertingPartyMetadataRepository. Denne klasse bruges, når man opbevarer SAML2-opsætning, altså information om en betroet login-udbyder, i en database. Fejlen er en usikker deserialisering (CWE-502), hvilket betyder, at systemet omdanner gemte data tilbage til programobjekter uden at kontrollere, om dataene er skadelige. Hvis en angriber kan skrive til databasetabellen saml2_asserting_party_metadata, kan vedkommende gemme et forfalsket serialiseret objekt i kolonnerne verification_credentials eller encryption_credentials. Når Spring Security senere læser og genopbygger disse data, kan det skadelige objekt udføre uønsket kode i applikationen.
Hvem rammer det?
Det rammer virksomheder og kommuner, der bruger Spring Security version 7.0.0 til og med 7.0.5, og som har konfigureret SAML2-login med JdbcAssertingPartyMetadataRepository til at gemme metadata om identitetsudbydere i en database. Det gælder typisk organisationer med egenudviklede Java-applikationer, der bruger single sign-on mod fx NemLog-in, Azure AD eller andre SAML2-baserede systemer, og hvor konfigurationen ligger i en database frem for i statiske filer.
Hvad kan ske?
Kan en angriber først skrive i databasetabellen, for eksempel via et kompromitteret servicekonto, en anden sårbarhed eller en ondsindet medarbejder med databaseadgang, kan vedkommende plante et skadeligt objekt. Når applikationen næste gang læser SAML2-metadata, udføres koden, og angriberen kan påvirke applikationens integritet og tilgængelighed, for eksempel ved at ændre data, stoppe tjenesten eller opnå yderligere adgang i systemet.
Hvor alvorligt er det?
CVSS-scoren er 7,3 ud af 10, vurderet som alvorlig. Angrebet kræver, at angriberen allerede har høje rettigheder, nemlig skriveadgang til databasen, og at angriberen befinder sig på samme netværkssegment. Der kræves ingen brugerinteraktion fra en medarbejder, men angrebskompleksiteten er høj, da det forudsætter specifik viden om opsætningen. Der er ikke rapporteret om, at sårbarheden bliver udnyttet i praksis. Fortrolighed påvirkes ikke, men integritet og tilgængelighed kan blive fuldstændig kompromitteret.
Hvad gør jeg nu?
Følgende trin lukker hullet og begrænser risikoen, mens I opdaterer:
- Opdatér Spring Security til version 7.0.6 eller nyere, hvor fejlen er rettet.
- Gennemgå, hvem der har skriveadgang til databasetabellen saml2_asserting_party_metadata, og fjern unødvendige rettigheder.
- Kontrollér applikationens logs for uventede ændringer i kolonnerne verification_credentials og encryption_credentials.
- Isolér databasen fra netværkssegmenter, hvor den ikke behøver at være tilgængelig, for at reducere angrebsfladen.
- Hvis I ikke selv kan vurdere, om jeres opsætning bruger den sårbare komponent, eller I mangler ressourcer til at gennemgå adgangsrettigheder, bør I hente hjælp fra en sikkerhedsrådgiver.
Opdatér inden for 2 uger
Vi anbefaler, at I opdaterer til Spring Security 7.0.6 som en del af jeres almindelige vedligeholdelse, da fejlen kræver forudgående databaseadgang og ikke er observeret udnyttet. Det er acceptabelt at vente på næste planlagte opdateringsvindue, forudsat at I i mellemtiden strammer op på, hvem der har skriveadgang til den relevante database. Bruger I ikke JdbcAssertingPartyMetadataRepository eller SAML2 slet, er I ikke berørt, og opdateringen kan følge normal drift.
Tidslinje
Konkrete eksempler
Kompromitteret servicekonto i kommunal Java-applikation
En dansk kommune bruger en Java-baseret sagsbehandlingsløsning med SAML2-login mod NemLog-in, hvor metadata gemmes i en database via JdbcAssertingPartyMetadataRepository. En angriber, der tidligere har fået adgang til en servicekonto med databaseskriverettigheder gennem en anden sårbarhed, indsætter et skadeligt serialiseret objekt i tabellen. Når applikationen genindlæser SAML2-konfigurationen ved næste opstart, udføres koden, og angriberen får mulighed for at manipulere data eller lukke systemet ned.
Ofte stillede spørgsmål
Er vi ramt af denne sårbarhed?
I er kun berørt, hvis I bruger Spring Security version 7.0.0 til 7.0.5, og hvis I har konfigureret SAML2-login med JdbcAssertingPartyMetadataRepository til at gemme metadata i en database. Bruger I filbaseret konfiguration eller en anden metadata-repository, er I ikke ramt.
Hvordan tjekker vi, om vi bruger den sårbare komponent?
Søg i jeres kildekode efter JdbcAssertingPartyMetadataRepository og se, om databasen har en tabel ved navn saml2_asserting_party_metadata. Findes den, bruger I den berørte funktion.
Kræver angrebet, at nogen klikker på noget?
Nej. Der kræves ingen brugerinteraktion. Til gengæld skal angriberen allerede have skriveadgang til den relevante databasetabel, hvilket er en betydelig forudsætning.
Kan vi vente til weekenden med at opdatere?
Ja, det kan I typisk godt, da sårbarheden kræver forudgående databaseadgang, og der ikke er kendte tilfælde af udnyttelse. Sørg dog for at have styr på databasens adgangsrettigheder i mellemtiden.
Skal vi anmelde noget til Datatilsynet?
Kun hvis I konstaterer, at sårbarheden faktisk er blevet udnyttet, og at persondata er blevet kompromitteret. Ren tilstedeværelse af sårbarheden udløser ikke i sig selv en anmeldelsespligt.
Hvad hvis vi ikke kan opdatere med det samme?
Begræns skriveadgangen til databasetabellen saml2_asserting_party_metadata til et minimum af betroede systemkonti, og overvåg tabellen for uventede ændringer, indtil I får opdateret.
Ramte produkter
Vmware: Spring Security
≥ 7.0.0, < 7.0.6
CVSS-detaljer
CVSS:3.1/AV:A/AC:H/PR:H/UI:N/S:C/C:N/I:H/A:H
CWE-svaghedstyper
Original NVD-beskrivelse (engelsk)
An attacker with write permissions to the database table managed by JdbcAssertingPartyMetadataRepository (saml2_asserting_party_metadata) may be able to store malicious serialized payloads in the columns containing the collection of verification or encryption credentials (verification_credentials and encryption_credentials, respectively).
Affected versions:
Spring Security 7.0.0 through 7.0.5.
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.