CVE-2026-80428: Kritisk fejl i ILIAS giver kodeudførelse
Kritisk fejl i ILIAS lader uautoriserede angribere køre kode på serveren. Opdatér til 9.22, 10.10 eller 11.3.
Hvad er det?
CVE-2026-80428 er en fejl i læringsplatformen ILIAS, der bruges til e-learning og kursusadministration. Fejlen ligger i, hvordan systemet håndterer deserialisering, altså den proces hvor gemt data (en session) omdannes tilbage til objekter i programmet. Et endepunkt til Shibboleth-logout er undtaget fra login-krav og læser alle aktive sessioner fra databasen. Data i sessionerne bliver afserialiseret uden at systemet kontrollerer, hvilke objekttyper der må oprettes. En angriber kan først placere skadeligt indhold i en session via LTI-login, som også kan tilgås uden login, og derefter udløse afserialiseringen. Et bundtet objekt skriver ved sin destruktion en fil med angriberens indhold til en sti, angriberen selv vælger, under webserverens rodmappe. Det giver kodeudførelse som webserverens bruger.
Hvem rammer det?
Alle organisationer, der kører ILIAS med Shibboleth-integration, er ramt. Det gælder uddannelsesinstitutioner, kommuner med interne kursusplatforme og virksomheder, der bruger ILIAS til medarbejderuddannelse. Sårbarheden findes i alle versioner før 9.22, 10.10 og 11.3. Kravet er blot, at serveren kan nås over netværket, og at Shibboleth-modulet er aktivt.
Hvad kan ske?
En angriber kan uden brugernavn eller adgangskode få kodeudførelse på serveren, der driver ILIAS. Det betyder i praksis fuld overtagelse af serveren: adgang til kursisters og medarbejderes persondata, mulighed for at installere ransomware, eller brug af serveren som platform til yderligere angreb mod resten af netværket. For en kommune eller uddannelsesinstitution kan det også betyde tab af eksamensdata eller karakterer.
Hvor alvorligt er det?
CVSS-scoren er 9,8 ud af 10, hvilket er den højeste alvorlighedskategori. Angrebet kræver ingen adgangskode, intet login og ingen handling fra en bruger. Det kan udføres over netværket alene. Konsekvensen er høj på alle tre parametre: fortrolighed, integritet og tilgængelighed. Der er ikke oplyst om aktiv udnyttelse eller offentligt tilgængelig angrebskode på offentliggørelsesdatoen, men fordi angrebet er simpelt at automatisere, bør det behandles som en akut risiko.
Hvad gør jeg nu?
Følg disse skridt for at lukke hullet og begrænse skaden, hvis det allerede er udnyttet.
- Opdatér ILIAS til version 9.22, 10.10 eller 11.3, afhængigt af hvilken hovedversion I kører. Det fjerner den sårbare logout-håndtering helt.
- Kan opdateringen ikke ske med det samme, så bloker adgang til shib_logout.php og LTI-login-endepunktet fra internettet, indtil opdateringen er gennemført.
- Gennemgå webserverens loglogfiler for usædvanlige POST-forespørgsler mod Shibboleth- og LTI-endepunkterne siden offentliggørelsen.
- Undersøg webrodmappen for nye eller ukendte filer, især PHP-filer skrevet på uventede tidspunkter.
- Roter adgangskoder og nøgler, der er gemt på serveren, hvis I finder tegn på indbrud.
- Kontakt Auroa eller en anden sikkerhedsrådgiver, hvis I finder spor af udnyttelse, eller hvis I ikke selv kan verificere, at opdateringen er korrekt installeret.
Opdatér inden for 48 timer
Vi anbefaler, at I opdaterer ILIAS til 9.22, 10.10 eller 11.3 så hurtigt som muligt, da sårbarheden kan udnyttes uden login og giver fuld kodeudførelse. Det er ikke forsvarligt at vente til en planlagt vedligeholdelsesperiode, fordi angrebsfladen er tilgængelig direkte fra internettet. Er opdatering ikke mulig med det samme, bør I i mellemtiden blokere adgang til de nævnte endepunkter udefra. Vent kun, hvis systemet slet ikke er tilgængeligt fra internettet og ikke bruger Shibboleth.
Tidslinje
Konkrete eksempler
Kommune med intern kursusplatform
En dansk kommune bruger ILIAS til medarbejderuddannelse og har Shibboleth aktiveret til enkelt login. En angriber sender en manipuleret forespørgsel til LTI-login-endepunktet og placerer et skadeligt objekt i en session. Herefter udløser angriberen logout-endepunktet, som afserialiserer objektet og skriver en fil med skadelig kode til webrodmappen. Angriberen får dermed adgang til kommunens interne netværk gennem serveren.
Ofte stillede spørgsmål
Hvordan finder vi ud af, om vores ILIAS-installation er ramt?
Tjek jeres nuværende ILIAS-version. Er den lavere end 9.22, 10.10 eller 11.3, og har I Shibboleth-modulet aktivt, er I sårbare. Kontakt jeres systemudbyder eller drift, hvis I ikke kender versionen.
Kan vi vente med opdateringen til weekenden?
Det kan I gøre, hvis systemet ikke er tilgængeligt fra internettet, eller hvis I i mellemtiden blokerer adgang til de sårbare endepunkter. Er ILIAS eksponeret offentligt, bør opdateringen ske hurtigst muligt og ikke afvente en fast vedligeholdelsesplan.
Kræver angrebet, at nogen logger ind eller klikker på noget?
Nej. Angrebet kræver ingen adgangskode og ingen handling fra en bruger. Det kan udføres direkte over netværket af en anonym angriber.
Har vi pligt til at anmelde et angreb via denne sårbarhed?
Hvis I opdager, at persondata er blevet kompromitteret, skal I vurdere anmeldelse til Datatilsynet inden for 72 timer efter GDPR. Kontakt jeres databeskyttelsesrådgiver, hvis I finder tegn på indbrud.
Hvad gør vi, hvis vi ikke selv kan opdatere ILIAS?
Kontakt jeres hostingleverandør eller en sikkerhedsrådgiver som Auroa. Vi kan hjælpe med at verificere versionen, gennemføre opdateringen og undersøge, om systemet allerede er kompromitteret.
Er kun Shibboleth-brugere ramt, eller også andre?
Selve angrebsvejen kræver, at Shibboleth-modulet er aktivt, men fordi LTI-login også kan bruges til at placere skadeligt indhold i en session, kan installationer med LTI aktiveret også være i risiko.
CVSS-detaljer
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CWE-svaghedstyper
Original NVD-beskrivelse (engelsk)
ILIAS deserialises stored session data for an unauthenticated caller. The Shibboleth back-channel endpoint at components/ILIAS/AuthShibboleth/resources/shib_logout.php runs in a context that ilInitialisation exempts from authentication, and its logout-notification handler locates the session to terminate by reading every live row of the session table and passing each row’s stored data to a hand-written parser that calls unserialize without restricting which classes may be constructed. Any serialised object present in any session row is therefore instantiated on behalf of an anonymous request, and object destructors run when those objects are discarded. A serialised object can be placed into a session row without logging in, because the LTI authentication entry point stores request parameters into the session and is reachable on a path the same initialisation code exempts from authentication. A class bundled with the application writes a JSON-encoded structure to a file named by one of its own properties when it is destroyed, which places attacker-controlled content at an attacker-chosen path below the web root and results in code execution as the web server user. Versions 9.22, 10.10 and 11.3 remove the endpoint’s logout-notification implementation.
Referencer & kilder
Eksterne kilder
Brug for hjælp med jeres sikkerhed?
Vi hjælper SMV’er med at omsætte trusler som denne til konkrete handlingsplaner.