CVE-2026-80104: Kritisk sikkerhedshul i DB-GPT
Kritisk sikkerhedshul i DB-GPT lader hackere uploade ondsindet kode uden login og overtage serveren fuldstændigt.
Hvad er det?
CVE-2026-80104 er en kritisk sårbarhed i det AI-drevne databaseværktøj DB-GPT. Fejlen sidder i den funktion, der håndterer upload af såkaldte ‘skills’ (udvidelsesmoduler til AI-agenter). Når en fil uploades, tjekker systemet ikke, om filnavnet forsøger at placere filen uden for den tilladte mappe — et klassisk angreb kaldet path traversal (mappeflugt). Derudover kræver endepunktet (det sted i systemet, der modtager uploads) slet ikke, at brugeren er logget ind, fordi adgangskontrolkoden fejlagtigt behandler alle forespørgsler som kommende fra en administrator. En angriber kan dermed uploade en vilkårlig Python-fil til et vilkårligt sted på serveren og få den eksekveret, hvilket giver fuld kontrol over serveren.
Hvem rammer det?
Alle virksomheder og organisationer, der selv hoster en installation af DB-GPT og har den tilgængelig via internettet eller et internt netværk. Da angrebet ikke kræver nogen form for login, er det tilstrækkeligt, at angriberen kan nå serverens netværksport. Det er særligt relevant for:
- Virksomheder der eksperimenterer med eller bruger DB-GPT til AI-assisteret dataanalyse
- IT-afdelinger der har sat DB-GPT op som en intern service
- Udviklere der afvikler DB-GPT i sky- eller serverinfrastruktur
Hvad kan ske?
Konsekvenserne ved et vellykket angreb er alvorlige. En angriber uden konto kan:
- Overtage serveren — ved at placere ondsindet Python-kode og få den kørt af selve applikationen
- Stjæle data — herunder databaseindhold, API-nøgler, adgangskoder og andre følsomme filer på serveren
- Sabotere systemet — slette eller ændre filer, afbryde driften eller kryptere data (ransomware)
- Bevæge sig videre — bruge den kompromitterede server som springbræt til resten af dit netværk
CVSS-scoren er 9,8 ud af 10, hvilket er den næsthøjeste mulige alvorlighed.
Hvor alvorligt er det?
Denne sårbarhed scorer 9,8 (Kritisk) på CVSS-skalaen (Common Vulnerability Scoring System — en international standard for at vurdere alvorligheden af sikkerhedshuller). Det er ekstremt alvorligt af flere grunde på én gang:
- Netværksbaseret — angrebet kan udføres over internettet, ingen fysisk adgang kræves
- Lav kompleksitet — det er teknisk enkelt at udnytte, ingen specialviden kræves
- Ingen login — angriberen behøver ikke en konto eller adgangskode
Fuld kontrol — angriberen opnår fuld adgang til serveren (fortrolighed, integritet og tilgængelighed er alle kompromitterede)
Kombinationen af disse faktorer gør, at sårbarheden kan udnyttes automatiseret og i stor skala.
Hvad gør jeg nu?
Hvis du bruger DB-GPT i din virksomhed, skal du handle hurtigt. Følg disse trin:
- Afklar om du er ramt: Find ud af om din virksomhed bruger DB-GPT — spørg din IT-ansvarlige eller leverandør. Tjek om pakken
dbgpt-apper installeret. - Afskær adgangen midlertidigt: Hvis DB-GPT er tilgængeligt fra internettet, så bloker adgangen i din firewall (en digital mur der styrer netværkstrafik) indtil en patch er installeret.
- Tjek for opdateringer: Gå til DB-GPTs officielle GitHub-side og se om der er udgivet en ny version, der adresserer denne sårbarhed. Opdater hurtigst muligt.
- Gennemgå uploadmappen: Bed din IT-ansvarlige om at undersøge om der allerede er placeret mistænkelige filer på serveren — særligt .py-filer på uventede steder.
- Kontakt din IT-partner: Hvis du ikke selv har ressourcerne, så kontakt din IT-leverandør eller en cybersikkerhedskonsulent med det samme.
Handl inden for 24 timer
Auroa anbefaler, at du øjeblikkeligt begrænser netværksadgangen til din DB-GPT-installation, indtil en officiel sikkerhedsopdatering foreligger. Denne sårbarhed er teknisk set triviel at udnytte — det kræver ikke særlige evner eller et login — og den giver angriberen fuld kontrol over din server. Undersøg desuden om din server allerede er kompromitteret ved at gennemgå logfiler og uploadmapper. Kontakt os, hvis du har brug for hjælp til at vurdere din situation.
Tidslinje
Konkrete eksempler
Upload af bagdør via ondsindet filnavn
En angriber sender en uploadanmodning til DB-GPT’s skill-upload-funktion uden at være logget ind — det kræver systemet nemlig ikke. I stedet for et normalt filnavn bruger angriberen et filnavn som ../../../app/dbgpt_app/plugins/backdoor.py. Filen lander dermed ikke i uploadmappen, men derimod inde i selve applikationens kode. Næste gang DB-GPT genstartes eller importerer modulet, kører angriberens kode, og vedkommende har nu fuld kontrol over serveren.
Overskrivning af eksisterende Python-modul
En angriber identificerer et Python-modul (kodefil), som DB-GPT allerede importerer ved opstart — for eksempel et autentificeringsmodul. Via path traversal uploader angriberen en modificeret version af dette modul, der indeholder ondsindet kode ved siden af den originale funktionalitet. Næste gang applikationen starter eller genindlæser modulet, eksekveres angriberens kode med de samme rettigheder som serverprocessen, potentielt med adgang til hele filsystemet og databasen.
Automatiseret scanning og masseangreb
En automatiseret scanner på internettet finder alle offentligt tilgængelige DB-GPT-installationer ved at søge efter kendte URL-mønstre. For hver installation forsøger scanneren at uploade en simpel testfil via den sårbare upload-funktion. Hvis det lykkes, markeres serveren til opfølgning, og angriberen uploader efterfølgende kode, der giver fjernkontrol (et såkaldt webshell). Dette kan ske på få minutter efter offentliggørelsen af sårbarheden, inden virksomheder har nået at reagere.
Ofte stillede spørgsmål
Bruger vi DB-GPT, hvis vi ikke har installeret det selv?
Næppe. DB-GPT er typisk noget en virksomhed selv installerer og hoster, enten på egne servere eller i en cloudtjeneste. Det er ikke en tjeneste man bare melder sig til. Spørg din IT-ansvarlige eller leverandør om I anvender DB-GPT som en del af jeres AI- eller dataanalyseplatform.
Kan vi bare slukke for upload-funktionen som en midlertidig løsning?
Det kan potentielt hjælpe, men det er teknisk komplekst at deaktivere ét bestemt endepunkt korrekt. Den sikreste og nemmeste midlertidige løsning er at blokere adgangen til hele DB-GPT-serveren fra internettet via din firewall, så kun betroede brugere på dit interne netværk kan nå den. Tal med din IT-ansvarlige om den bedste fremgangsmåde.
Hvordan ved vi om nogen allerede har udnyttet sårbarheden?
Det kræver en gennemgang af serverens logfiler (registreringer af aktivitet) og uploadmapper. Tegn på et angreb kan være ukendte eller nyoprettede .py-filer i applikationens mapper, usædvanlig serveraktivitet eller uventede processer på serveren. En IT-sikkerhedsekspert kan hjælpe med at gennemføre denne undersøgelse systematisk.
Er det farligt selvom vores DB-GPT kun er tilgængeligt internt i virksomheden?
En intern installation reducerer risikoen fra eksterne angribere, men eliminerer den ikke helt. Hvis en medarbejders computer er kompromitteret, eller en angriber har fået fodfæste i jeres netværk på anden vis, kan de stadig udnytte sårbarheden. Det er derfor stadig vigtigt at opdatere hurtigst muligt.
Hvad er path traversal, og hvorfor er det et problem?
Path traversal (mappeflugt) er et angreb, hvor en angriber manipulerer et filnavn til at pege på en placering uden for den tilladte mappe — for eksempel ved at bruge
../../i filnavnet til at ‘gå op’ i mappestrukturen. I dette tilfælde kan angriberen placere filer overalt på serveren, ikke blot i den tiltænkte uploadmappe. Det svarer til at udlevere en pakke til en person, der opgiver en falsk leveringsadresse, og du leverer den uden at tjekke om adressen er inden for det tilladte område.
Ramte produkter
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)
DB-GPT builds the destination path for an uploaded skill from the multipart filename without constraining it to the upload directory. skill_upload in packages/dbgpt-app/src/dbgpt_app/openapi/api_v1/agentic_data_api.py takes file.filename as given and writes the request body to upload_dir / filename. A path composed with that operator discards the left operand when the right one is absolute and follows parent references otherwise, so a filename such as ../../../tmp/x or /tmp/x resolves outside the intended directory; nothing canonicalises the result, checks that it remains under the upload root, or prevents a .py suffix. The route’s only dependency is get_user_from_headers in dbgpt_serve/utils/auth.py, which returns a request carrying the admin role whether or not a user_id header is supplied, so the endpoint is reachable without credentials. A remote attacker holding no account can therefore write attacker-controlled bytes to any path the server process can write, place a new Python module inside the application package or replace one the application already imports, and obtain code execution in the server process when that module is next imported.
Brug for hjælp med jeres sikkerhed?
Vi hjælper SMV’er med at omsætte trusler som denne til konkrete handlingsplaner.
