CVE-2026-58449: Kritisk txtai RCE-sårbarhed
Kritisk fejl i txtai-API giver angribere mulighed for at køre vilkårlig kode på din server uden login.
Hvad er det?
txtai er et open source-bibliotek til AI-drevet tekstsøgning, som udviklere bruger til at bygge søge- og analysefunktioner i applikationer. I versioner op til og med 9.10.0 indeholder biblioteket et API-endepunkt kaldet /reindex, som fejlagtigt tillader, at en angriber kan sende en vilkårlig programfunktion (f.eks. en systemkommando) som parameter. Biblioteket udføres funktionen uden at tjekke, om den er tilladt. Det svarer til, at en dør i din it-infrastruktur ikke blot er ulåst — den følger også dine instruktioner blindt. Fejlen er klassificeret som CWE-94 (Code Injection), og en rettelse findes i commit 11b32da.
Hvem rammer det?
Sårbarheden rammer virksomheder og udviklere, der:
- Bruger txtai version 9.10.0 eller tidligere i en applikation eller et internt system.
- Har eksponeret txtai’s API udadtil (f.eks. mod internettet eller et bredere netværk) uden at have konfigureret en adgangsnøgle (TOKEN).
- Har konfigureret txtai med en skrivbar indeks (writable index).
Bemærk: Alle tre betingelser skal være opfyldt. Er din installation beskyttet med en TOKEN, eller er indekset ikke skrivbart, er risikoen markant reduceret.
Hvad kan ske?
Hvis en angriber udnytter fejlen, kan vedkommende køre vilkårlige kommandoer direkte på den server, som txtai kører på. Det betyder i praksis:
- Datatyveri: Angriberen kan læse, kopiere eller eksfiltrere alle filer og databaser, som serverprocessen har adgang til.
- Systemovertagelse: Angriberen kan installere bagdøre, ransomware eller andet skadeligt software.
- Sabotage: Kritiske systemer kan slettes, krypteres eller gøres utilgængelige.
- Videre angreb: Den kompromitterede server kan bruges som springbræt til resten af dit netværk.
Hvor alvorligt er det?
CVSS-scoren er 9,8 ud af 10 (Kritisk). Det er det næsthøjeste trin på skalaen. Angrebet kræver ingen forudgående login, ingen særlige rettigheder og ingen handling fra en bruger — angriberen behøver blot netværksadgang til API’et. Kombinationen af fuld fortrolighed (C), integritet (I) og tilgængelighed (A) ramt på højeste niveau gør dette til en fejl, der skal håndteres øjeblikkeligt, hvis dine installationsforhold er sårbare.
Hvad gør jeg nu?
Gennemgå følgende trin hurtigst muligt, helst inden for 24 timer hvis din txtai-installation er eksponeret:
- Kortlæg din eksponering: Find ud af, om din virksomhed bruger txtai. Spørg din udvikler eller it-leverandør, og søg i jeres projektfiler efter ‘txtai’.
- Tjek konfigurationen: Er API’et tilgængeligt fra internettet eller et bredt netværk? Er der konfigureret en TOKEN til autentificering? Er indekset sat til at være skrivbart?
- Opdatér txtai straks: Opdatér til en version der inkluderer commit 11b32da eller nyere. Din udvikler kan gøre dette via pip:
pip install --upgrade txtai. - Aktivér TOKEN-autentificering: Selv efter opdatering bør du konfigurere en stærk adgangsnøgle (TOKEN) i txtai’s konfiguration, så API’et ikke er åbent for alle.
- Begræns netværksadgang: Hvis txtai’s API ikke behøver at være offentligt tilgængeligt, så bloker adgangen via firewall eller netværkssegmentering.
- Tjek for kompromittering: Gennemgå serverlogfiler for mistænkelige kald til
/reindex-endepunktet med usædvanlige parametre, særligt fra perioden 30. juni 2026 og frem.
Opdatér inden for 24 timer
Auroa anbefaler, at du straks kontakter din udvikler eller it-leverandør og beder dem bekræfte, om txtai anvendes i jeres systemer, og om betingelserne for udnyttelse er til stede. Opdatér til den patchede version og aktiver TOKEN-autentificering som minimum. Indfør desuden en fast rutine for at holde AI- og søgebiblioteker opdaterede, da de ofte behandles anderledes end traditionel software, men kan udgøre kritiske indgangspunkter for angribere.
Tidslinje
Konkrete eksempler
Direkte systemkommando via /reindex
En angriber sender en HTTP POST-forespørgsel til https://dinserver.dk/reindex med JSON-body’en {"function": "subprocess.getoutput", "query": "cat /etc/passwd"}. Fordi API’et ikke kræver login og indekset er skrivbart, udfører serveren kommandoen og returnerer indholdet af adgangskodefilen. Angriberen kan derefter bruge samme teknik til at downloade ransomware og aktivere det.
Installation af bagdør på serveren
En angriber bruger /reindex-endepunktet til at kalde os.system med en kommando, der downloader og installerer et fjernadministrationsværktøj (RAT) på serveren. Herefter har angriberen permanent adgang til systemet, selv hvis txtai opdateres efterfølgende. Bagdøren kan bruges til at stjæle forretningshemmeligheder, kunderdata eller til at sprede sig til andre systemer i netværket.
Automatiseret scanning og masseudnyttelse
Kriminelle grupper bruger automatiserede scanningsværktøjer til at identificere alle internet-eksponerede txtai-installationer inden for timer efter CVE-offentliggørelse. Sårbare servere angribes automatisk og kan f.eks. blive en del af et botnet (et netværk af kaprede computere), der bruges til DDoS-angreb eller kryptomining på din regning — uden at du nødvendigvis bemærker det med det samme.
Ofte stillede spørgsmål
Vi bruger txtai, men jeg tror ikke API'et er eksponeret — er vi sikre?
Hvis txtai’s API kun er tilgængeligt internt i dit netværk, og der ikke er direkte adgang udefra, er risikoen lavere. Men du bør stadig opdatere og aktivere TOKEN-autentificering, da interne trusler eller andre kompromitterede systemer i netværket stadig kan udnytte fejlen. Gennemgå også firewall-reglerne for at bekræfte, at eksponering ikke sker utilsigtet.
Hvad er en TOKEN i denne sammenhæng?
En TOKEN er en slags adgangsnøgle, som txtai’s API kan kræve ved alle forespørgsler. Det fungerer som en adgangskode: kun klienter der kender nøglen, kan tale med API’et. I txtai er dette opt-in, altså ikke aktiveret som standard — det er præcis derfor, denne fejl er så farlig. Din udvikler aktiverer det i konfigurationsfilen.
Hvad er et 'skrivbart indeks' (writable index)?
I txtai er et indeks den database, der gemmer og organiserer de tekster, systemet søger i. Et skrivbart indeks tillader, at ny data kan tilføjes eller ændres via API’et — herunder at
/reindex-endepunktet er aktivt. Hvis indekset er sat til kun-læsning (read-only), kan/reindexikke bruges, og denne angrebsvej er lukket. Spørg din udvikler, hvordan jeres indeks er konfigureret.Kan vi opdage, om vi allerede er blevet angrebet?
Ja, til en vis grad. Se efter HTTP POST-forespørgsler til
/reindexi jeres server- eller API-logfiler, særligt dem der indeholder parametre som ‘subprocess’, ‘os.system’, ‘builtins’ eller andre usædvanlige Python-modulnavne i ‘function’-feltet. Tidspunkt for mistænkelig aktivitet er fra 30. juni 2026 og frem. Kontakt en it-sikkerhedsspecialist, hvis du finder mistænkelige opslag.Vi bruger en cloud-tjeneste der anvender txtai under motorhjelmen — er vi berørt?
Det afhænger af, om cloud-udbyderen selv har opdateret deres installation og konfiguration. Kontakt udbyderen direkte og spørg, om de bruger txtai, hvilken version de kører, og om de har implementeret rettelsen. Seriøse udbydere bør kunne svare hurtigt og dokumentere deres status.
Er der andre sikkerhedstiltag udover opdatering?
Ja. Udover at opdatere bør du: (1) aktivere TOKEN-autentificering i txtai’s konfiguration, (2) begrænse netværksadgang til API’et via firewall så kun betroede systemer kan nå det, og (3) køre txtai med minimale systemrettigheder (principle of least privilege), så selv hvis en angriber opnår kodekørsel, er skaden begrænset. Den nye
reindex-konfigurationsflag i den patchede version bør eksplicit sættes til at tillade eller afvise endepunktet.
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)
txtai through 9.10.0, fixed in commit 11b32da, exposes an API /reindex endpoint whose function body parameter is resolved through txtai.util.Resolver, which performs __import__ and getattr on the caller-supplied dotted path with no allowlist. When the API is exposed with no TOKEN configured (authentication is opt-in, so all endpoints are unauthenticated) and the index is configured writable, a remote attacker can set function to an arbitrary callable such as subprocess.getoutput, achieving remote code execution as the server process during reindexing. Exploitation requires those deployment conditions (API exposed, no TOKEN, writable index); it is not the default configuration. The fix gates the endpoint behind a new reindex configuration flag.
Brug for hjælp med jeres sikkerhed?
Vi hjælper SMV’er med at omsætte trusler som denne til konkrete handlingsplaner.
