CVE-2026-68770: Kritisk fejl i sentence-transformers
Fejl i sentence-transformers gør, at trust_remote_code=False ikke stopper kørsel af skadelig kode. Opdatér eller lås modelmapper nu.
Hvad er det?
CVE-2026-68770 er en sikkerhedsfejl i sentence-transformers, et Python-bibliotek der bruges til at omdanne tekst til talvektorer i AI- og søgeløsninger. Biblioteket har en indbygget spærre kaldet trust_remote_code, som skal forhindre, at ukendt kode fra en modelmappe bliver kørt. Fejlen ligger i funktionen import_module_class: hvis den angivne modelsti findes på disken, springer spærren over, uanset at trust_remote_code er sat til falsk. En angriber, der kan lægge en fil med navn som modeling_*.py i modelmappen, kan derfor få egen kode kørt, når applikationen indlæser modellen. Fejlen hører til kategorien CWE-94, kodeinjektion.
Hvem rammer det?
Det rammer virksomheder og udviklingsteams, der bruger sentence-transformers til chatbots, semantisk søgning, dokumentklassifikation eller andre AI-løsninger baseret på tekstembeddinger. Særligt udsatte er systemer, hvor modelfiler hentes fra delte netværksdrev, cloud-lagre, midlertidige uploadmapper eller andre steder, hvor flere brugere eller processer kan skrive filer. Det gælder både interne dataplatforme og produkter, der er bygget på biblioteket som en underliggende komponent.
Hvad kan ske?
Hvis en angriber kan påvirke, hvad der ligger i en modelmappe, for eksempel via en kompromitteret brugerkonto, en sårbar upload-funktion eller en leverandørkæde, kan angriberen få egen kode kørt i den proces, der indlæser modellen. Det giver typisk fuld kontrol over den server eller tjeneste, der kører AI-applikationen, herunder adgang til data, mulighed for at ændre systemet og springbræt videre ind i virksomhedens netværk.
Hvor alvorligt er det?
CVSS-score er 9,8 af 10, kritisk. Sårbarheden kræver ikke login og ingen handling fra en bruger, og den kan i princippet udnyttes over netværk, hvis angriberen kan nå den mappe, hvor modellen ligger. I praksis kræver udnyttelse dog, at angriberen først får skrevet en fil i modelmappen, så den reelle risiko afhænger af, hvor åbent modelmapperne er tilgængelige i jeres opsætning. Der er ikke oplysninger om, at fejlen aktivt udnyttes i angreb, men fremgangsmåden er beskrevet detaljeret offentligt.
Hvad gør jeg nu?
Gennemgå jeres brug af sentence-transformers og modelmapper, før I gør noget andet.
- Opdatér sentence-transformers til den nyeste version, så snart en rettelse er tilgængelig, og hold øje med leverandørens meddelelser.
- Indtil da: sørg for, at modelmapper kun kan skrives af betroede processer og administratorer, ikke af almindelige brugere eller eksterne uploads.
- Load kun modeller fra kilder, I selv kontrollerer, og undgå at pege SentenceTransformer på delte eller offentligt tilgængelige mapper.
- Gennemgå eksisterende modelmapper for uventede filer, især filer med navne som modeling_*.py, der ikke stammer fra den originale model.
- Log og overvåg processer, der indlæser modeller, så uventet kodekørsel kan opdages hurtigt.
- Har I ikke selv kapacitet til at gennemgå jeres AI-infrastruktur for denne type risiko, bør I hente teknisk hjælp udefra.
Opdatér eller lås modelmapper hurtigst muligt
Vi anbefaler, at I straks begrænser skriverettigheder til modelmapper og undgår at indlæse modeller fra delte eller brugerstyrede stier, mens I afventer en opdateret version af sentence-transformers. Det er kun forsvarligt at vente med tiltag, hvis jeres modelmapper allerede er strengt låst til betroede administratorer og aldrig modtager filer fra eksterne kilder. I alle andre tilfælde bør I handle nu, da konsekvensen ved udnyttelse er fuld kodekørsel på den ramte server.
Tidslinje
Konkrete eksempler
Delt modelmappe på netværksdrev
En dansk virksomhed gemmer AI-modeller på et delt netværksdrev, hvor flere udviklere og en integrationstjeneste har skriveadgang. En kompromitteret konto lægger en fil modeling_custom.py i modelmappen. Da applikationen indlæser modellen med SentenceTransformer(path, trust_remote_code=False), køres filen alligevel, og angriberen får adgang til serveren, der driver virksomhedens søgefunktion.
Ofte stillede spørgsmål
Er vi ramt af denne sårbarhed?
I er ramt, hvis jeres applikationer bruger sentence-transformers, og modeller indlæses fra en mappe, som andre end betroede administratorer kan skrive til, for eksempel delte drev, uploadmapper eller midlertidige lagre.
Hjælper trust_remote_code=False ikke mod dette?
Nej. Fejlen betyder netop, at trust_remote_code=False ikke virker, hvis den angivne modelsti findes på disken. Spærren springes over uanset indstillingen.
Kan vi vente til weekenden med at rette dette?
Kun hvis jeres modelmapper allerede er strengt afskærmet fra ukontrollerede skrivninger. Er det ikke tilfældet, bør I begrænse rettighederne til modelmapperne, inden I går hjem.
Hvordan tjekker vi, om en modelmappe er sårbar?
Se efter uventede filer i modelmappen, især filer, der refereres via modules.json og hedder noget som modeling_*.py, som ikke stammer fra den officielle model.
Skal vi anmelde dette som et sikkerhedsbrud?
Kun hvis I finder tegn på, at en angriber faktisk har fået lagt filer i en modelmappe og fået kode kørt. Er der tale om ren forebyggelse uden tegn på misbrug, er anmeldelse ikke nødvendig, men opdatering er stadig relevant.
Findes der en officiel rettelse?
Der er ingen bekræftet fast versionsnummer med rettelse i de foreliggende oplysninger. Følg leverandørens meddelelser og opdatér, så snart en rettet version udgives.
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)
sentence-transformers contains a security control bypass vulnerability that allows attackers to achieve arbitrary code execution by exploiting a logic flaw in the import_module_class helper within sentence_transformers/util/misc.py, where the guard condition includes an ‘or os.path.exists(model_name_or_path)’ clause that satisfies the trust gate whenever the supplied path exists on the local filesystem, regardless of the trust_remote_code=False argument. Attackers who can control or influence the contents of a model directory on disk can place malicious Python files such as modeling_*.py referenced via modules.json, causing the code to execute at import time when an application loads the model with SentenceTransformer(path, trust_remote_code=False), bypassing the documented security contract and achieving code execution within the loading process.
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.