CVE-2026-39932: Kritisk RCE-fejl i OpenEMR til 8.2.0
Kritisk fejl i journalsystemet OpenEMR lader en administratorkonto bruges til at køre kommandoer på serveren. Begræns adminadgang og følg med i en rettelse.
Hvad er det?
CVE-2026-39932 er en sårbarhed i journalsystemet OpenEMR, der bruges af klinikker og sundhedsudbydere til at holde styr på patientjournaler. Fejlen findes i systemets kategoritræ-komponent (library/classes/Tree.class.php), som organiserer dokumenter i mapper. En administrator kan indsætte skadelig PHP-kode i databasens kategoritabel og ændre datatypen på en kolonne, så koden efterfølgende køres automatisk via en funktion kaldet eval(), der udfører almindelig tekst som programkode. Koden udføres, så snart en hvilken som helst side i systemet indlæser kategoritræet, også sider uden login. Resultatet er, at angriberen kan køre kommandoer på serveren med samme rettigheder som webserveren selv.
Hvem rammer det?
Sårbarheden rammer virksomheder og klinikker, der kører OpenEMR i version 8.2.0 eller ældre. OpenEMR er et open source-journalsystem, der bruges af mindre klinikker, tandlæger og andre sundhedsudbydere til at administrere patientjournaler, dokumenter og aftaler. Er OpenEMR installeret lokalt eller hostet af en leverandør på jeres vegne, bør I afklare, om systemet er ramt.
Hvad kan ske?
Har en angriber fået adgang til en administratorkonto, for eksempel via phishing eller genbrugte adgangskoder, kan de udnytte fejlen til at få systemet til at køre vilkårlige kommandoer på serveren. Det giver mulighed for at læse, ændre eller slette patientjournaler, installere bagdøre eller bruge serveren som springbræt videre ind i netværket. Da OpenEMR håndterer helbredsoplysninger, er der tale om særligt følsomme persondata, hvis systemet bliver kompromitteret.
Hvor alvorligt er det?
CVSS-scoren er 9,1 ud af 10, hvilket er kritisk. Angrebet kræver, at angriberen allerede har administratorrettigheder i OpenEMR, men kræver ingen handling fra en almindelig bruger og kan udføres over netværket. Fordi fejlen ændrer omfanget af, hvad der kan påvirkes, rækker den ud over selve kategorifunktionen og giver i praksis fuld kontrol over server, data og drift. Der er ingen kendte tilfælde af aktivt misbrug endnu, men fejlen kræver ikke avanceret teknisk indsigt at udnytte, når først en administratorkonto er kompromitteret.
Hvad gør jeg nu?
Der findes endnu ikke en officiel rettelse, så indsatsen bør rette sig mod at begrænse adgangen til admin-funktionen og overvåge for misbrug.
- Begræns antallet af brugere med administratorrettigheder i OpenEMR, og gennemgå eksisterende admin-konti for uautoriseret adgang.
- Overvåg databasens categories-tabel for uventede ændringer, særligt ændringer af kolonnetypen på id.
- Kør webserveren med mindst mulige rettigheder, så en eventuel kommandoudførelse begrænses i sin skadevirkning.
- Indfør totrinsbekræftelse på alle administratorkonti, hvis det ikke allerede er gjort.
- Følg OpenEMR-projektets sikkerhedsmeddelelser og installer rettelsen, så snart den udgives.
- Hent hjælp fra en sikkerhedsrådgiver, hvis I ikke selv kan vurdere, om jeres installation allerede er kompromitteret.
Begræns adminadgang nu, afvent rettelse
Vi anbefaler, at I straks begrænser antallet af administratorer i OpenEMR og indfører totrinsbekræftelse på admin-konti, da det er den reelle indgang for angrebet. Overvåg databasen for uventede ændringer i kategoritabellen, og hold jer orienteret om en kommende rettelse fra OpenEMR-projektet. Det er acceptabelt at afvente den officielle rettelse, hvis I har fuld kontrol over, hvem der har administratoradgang, og overvåger systemet for mistænkelig aktivitet. Har I derimod delte eller svage admin-adgangskoder, bør I handle nu og ikke vente på en opdatering.
Tidslinje
Konkrete eksempler
Kompromitteret admin-konto hos en dansk tandlægeklinik
En dansk tandlægeklinik bruger OpenEMR til at administrere patientjournaler. En medarbejder med administratorrettigheder falder for et phishing-forsøg, og angriberen får dermed adgang til admin-kontoen. Angriberen udnytter fejlen til at indsætte skadelig kode i kategoritabellen, og koden udføres automatisk, næste gang en medarbejder eller patient åbner en side, der viser dokumentkategorier. Angriberen får dermed kommandoudførelse på serveren og adgang til alle patientjournaler i systemet.
Ofte stillede spørgsmål
Er vi ramt af denne sårbarhed?
Kører I OpenEMR i version 8.2.0 eller ældre, er I potentielt ramt. Tjek versionsnummeret i systemets administrationspanel eller spørg jeres it-leverandør, hvis systemet er hostet.
Hvordan tjekker vi, om vores installation allerede er udnyttet?
Gennemgå categories-tabellen i databasen for uventede ændringer i id-kolonnens datatype eller usædvanligt indhold, og se administratorloggen for handlinger, ingen kan genkende.
Kan vi vente til weekenden med at reagere?
Ja, hvis I kun har få og betroede administratorer og allerede overvåger systemet. Har I mange admin-konti eller delte adgangskoder, bør I handle før weekenden.
Kræver angrebet, at en medarbejder klikker på noget?
Nej. Sårbarheden kræver ingen brugerhandling, men kræver, at angriberen allerede har administratoradgang til OpenEMR.
Skal vi anmelde dette til Datatilsynet?
Kun hvis I konstaterer, at sårbarheden er blevet udnyttet og patientdata er tilgået eller ændret uretmæssigt. Uden tegn på misbrug er der ikke grundlag for en anmeldelse endnu.
Findes der en officiel rettelse?
Der er endnu ikke oplyst en patchet version af OpenEMR. Følg projektets sikkerhedsmeddelelser og installer rettelsen, så snart den udgives.
CVSS-detaljer
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H
CWE-svaghedstyper
Original NVD-beskrivelse (engelsk)
OpenEMR through 8.2.0 contains a remote code execution vulnerability in the document category tree component (library/classes/Tree.class.php) that allows authenticated administrators to execute arbitrary operating system commands by injecting PHP payloads into the categories database table. Attackers can chain arbitrary SQL execution to alter the id column type to VARCHAR and insert a malicious PHP payload, which is then executed via an unsanitized eval() call whenever any page instantiates CategoryTree, including unauthenticated and low-privilege pages, resulting in command execution as the web server user.
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.