CVE-2026-69098: Kritisk RCE-sårbarhed i kotaemon
Kritisk sikkerhedshul i kotaemon (CVE-2026-69098) giver uautoriseret adgang til at køre kode på serveren. Afskærm endpointet nu.
Hvad er det?
CVE-2026-69098 er en sårbarhed i open source-værktøjet kotaemon, som bruges til at bygge søgbare AI-baserede dokumentsystemer. Fejlen ligger i en teknik kaldet usikker deserialisering, hvor systemet omdanner indsendt data (YAML eller JSON) tilbage til programkode uden at kontrollere, hvad der egentlig sendes. Ved at indsætte et felt kaldet __type__ i data til endpointet check_connection kan en angriber få systemet til at oprette vilkårlige Python-objekter, herunder objekter der kører kommandoer på serveren. Det kræver ingen login og ingen handling fra en bruger.
Hvem rammer det?
Alle virksomheder og kommuner, der kører kotaemon i version 0.12.0 eller ældre, og som har systemet tilgængeligt på et netværk, angriberen kan nå, herunder internettet. Kotaemon bruges typisk internt til at søge i dokumenter med en chatbot bygget på en sprogmodel. Er systemet placeret bag firewall uden ekstern adgang, er risikoen for angreb udefra lavere, men interne brugere eller kompromitterede maskiner kan stadig udnytte fejlen.
Hvad kan ske?
En angriber, der udnytter fejlen, kan køre vilkårlige kommandoer på den server, hvor kotaemon kører. I praksis betyder det, at angriberen får samme rettigheder som selve programmet, og kan læse filer, installere skadelig kode, oprette bagdøre eller bruge serveren som springbræt videre ind i virksomhedens netværk. Da systemet ofte har adgang til virksomhedens dokumenter, er der også risiko for at følsomme data eller forretningsdokumenter bliver stjålet.
Hvor alvorligt er det?
CVSS-scoren er 9,8 ud af 10, hvilket er kritisk. Angrebet kræver ikke login (PR:N), ingen handling fra en bruger (UI:N), kan udføres over netværket (AV:N) og er teknisk simpelt at udføre (AC:L). Konsekvensen rammer fortrolighed, integritet og tilgængelighed fuldt ud. Der er ikke oplyst nogen aktiv udnyttelse i skarpt miljø endnu, men den detaljerede beskrivelse af angrebsmetoden gør det sandsynligt, at et angreb kan udvikles hurtigt.
Hvad gør jeg nu?
Følg disse skridt for at lukke hullet og begrænse risikoen, mens I afventer en officiel opdatering:
- Afskær eller begræns netværksadgang til check_connection-endpointet, så det kun kan tilgås fra betroede interne adresser, eller sluk for adgang fra internettet helt.
- Undersøg om kotaemon-installationen kan opgraderes til en version nyere end 0.12.0, eller om projektet har udgivet en rettelse.
- Gennemgå logfiler for usædvanlige forespørgsler til check_connection-endpointet med felter som __type__ eller subprocess.
- Isolér serveren, der kører kotaemon, fra kritiske systemer, så en eventuel kompromittering ikke spreder sig.
- Overvej at sætte en webapplikationsfirewall op foran systemet, indtil en permanent rettelse findes.
- Kontakt Auroa eller en anden sikkerhedspartner, hvis I ikke selv kan verificere, om systemet er eksponeret, eller hvis I finder tegn på misbrug.
Afskærm endpointet nu, ingen opdatering findes
Vi anbefaler, at I straks kontrollerer, om kotaemon er tilgængeligt fra internettet, og hvis det er, lukker den eksterne adgang til check_connection-endpointet, mens I afventer en rettelse fra projektet. Det er ikke forsvarligt at vente til en fast opdatering foreligger, da sårbarheden kan udnyttes uden login. Er systemet udelukkende tilgængeligt internt og bag stærk netværkssegmentering, kan I vente med at handle til jeres næste planlagte vedligeholdelsesvindue, men bør stadig overvåge for usædvanlig aktivitet.
Tidslinje
Konkrete eksempler
Intern dokumentsøgning eksponeret på internettet
En dansk kommune har sat kotaemon op til at lade sagsbehandlere søge i interne dokumenter via en chatbot. Af en fejl er systemet tilgængeligt fra internettet uden yderligere adgangskontrol. En angriber finder check_connection-endpointet, sender et manipuleret YAML-dokument og får serveren til at køre kommandoer, hvorefter angriberen installerer skadelig kode og får adgang til kommunens interne dokumenter.
Ofte stillede spørgsmål
Hvordan finder vi ud af, om vi bruger kotaemon?
Tjek jeres liste over installerede applikationer og containere for navnet kotaemon, og kontrollér versionsnummeret i konfigurationsfiler eller i administrationspanelet. Kør systemet i en Docker-container, kan I finde versionen i image-tagget.
Kan vi vente til weekenden med at handle?
Hvis systemet er tilgængeligt fra internettet, bør I lukke adgangen til endpointet nu og ikke vente. Er det kun tilgængeligt internt bag firewall, kan I vente til næste arbejdsdag, men bør prioritere det højt.
Er der en officiel opdatering, vi kan installere?
Der er ikke oplyst en fast rettet version i den offentlige beskrivelse. Følg projektets officielle kanaler for en kommende opdatering, og opgrader så hurtigt som muligt, når den er tilgængelig.
Skal vi anmelde dette som et sikkerhedsbrud?
Kun hvis I finder tegn på, at fejlen faktisk er blevet udnyttet, og persondata eller fortrolige oplysninger er blevet kompromitteret. Find I tegn på misbrug, skal I vurdere anmeldelse til Datatilsynet efter de almindelige regler.
Hvordan ser et angreb ud i praksis?
En angriber sender en forespørgsel til check_connection-endpointet med et YAML- eller JSON-dokument, der indeholder feltet __type__ sat til en kommando som subprocess.check_output. Systemet udfører herefter kommandoen med serverens rettigheder, uden at nogen bruger har godkendt handlingen.
Påvirker det kun kotaemon, eller også andre systemer, vi bruger sammen med det?
Sårbarheden ligger i kotaemon selv, men da angriberen får kørerettigheder på serveren, kan andre systemer og data, som serveren har adgang til, også blive kompromitteret.
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)
kotaemon through 0.12.0 contains an insecure deserialization vulnerability in the check_connection endpoint that allows unauthenticated attackers to instantiate arbitrary Python classes by supplying crafted YAML/JSON input with a __type__ field. Attackers can exploit this to override the __type__ field with subprocess.check_output and arbitrary arguments, achieving remote code execution with application process privileges.
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.