Hopp til hovedinnhold
Tilbake
Sikkerhet 3 min · Kilde: The Hacker News

FaceHugger: tre CVE-er i Diffusers omgår trust_remote_code

KI Takeaway KI-generert · kan inneholde feil

Oppgrader Diffusers til minst 0.38.0, som tetter tre høyalvorlige hull der et preparert modellrepo kjører egen Python-kode på maskinen din under helt vanlig modellasting.

8,1 millioner nedlastinger fikk Hugging Faces Diffusers-bibliotek i juli 2026 alene, ifølge pepy.tech-tall gjengitt av The Hacker News. Sikkerhetsselskapet Zafran Labs har publisert en analyse av tre høyalvorlige sårbarheter i nettopp dette biblioteket, samlet under navnet FaceHugger, som lar et modellrepo kjøre vilkårlig kode når du laster modellen.

Fellesnevneren er at sikkerhetsvakten kjører for tidlig. Diffusers henter en modell fra Hugging Face-hubben i to separate HTTP-kall, ikke én atomær operasjon, og trust_remote_code-sjekken kjøres bare mot det første. Det som dukker opp i custom_pipeline-flyten etter den sjekken, passerer usett. Zafran sporer alle tre variantene tilbake til klassisk time-of-check-to-time-of-use.

«Disse sårbarhetene omgår trust_remote_code, sikkerhetsmekanismen som skal hindre at ugjennomgått kode kjøres når egendefinerte pipelines lastes» — Gal Zaban og Ido Shani, Zafran Labs

Datoene er verdt å merke seg, for de endrer hva saken egentlig handler om. GitHubs sikkerhetsdatabase publiserte CVE-2026-44827 og CVE-2026-44513 den 7. mai og CVE-2026-45804 den 20. mai, alle med CVSS-score på henholdsvis 8,8, 8,8 og 7,5. Alle tre er patchet i Diffusers 0.38.0, som kom 1. mai 2026. Nyeste utgivelse er 0.39.0 fra 3. juli. Zafrans gjennomgang er altså ingen fersk nulldag, men en detaljert beskrivelse av hull som har vært lukket i tre måneder.

Det betyr at spørsmålet ikke er om biblioteket er trygt, men om din versjon er det. Kjører du en pinnet requirements.txt, et container-image du bygget i vinter eller en CI-jobb som aldri har blitt rørt siden oppsettet, har du vært eksponert siden mai uten å vite det. Rammet er enhver som kaller DiffusionPipeline.from_pretrained med egendefinerte pipelines, og default-verdien hjelper deg ikke: å utelate trust_remote_code gir samme resultat som å sette den til False, altså full omgåelse.

Den underliggende antakelsen er den farligste delen. Modellfiler behandles rutinemessig som passive data du bare laster ned, mens konfigurasjonsfiler, loadere og pipeline-kode i et repo krysser over til kjørbar kode i det øyeblikket biblioteket leser dem. Et modellrepo er i praksis en kodeleveranse, og bør revideres deretter.

«Ikke pek custom_pipeline mot et annet hub-repo enn hovedmodellen før du har lest pipeline.py i det» — anbefaling fra Diffusers-vedlikeholderne

Hva bør du gjøre?

  1. Kjør pip show diffusers. Er versjonen under 0.38.0, oppgrader før neste modellasting.
  2. Se etter pinnede kopier i container-images, Dockerfiler, lock-filer og CI-runnere. De holder ofte på en gammel versjon lenge etter at utviklingsmiljøet ditt er oppdatert.
  3. Inspiser snapshotet før du laster lokalt: se etter uventede .py-filer i rot-mappa og under komponent-mapper som unet/ og scheduler/, som vedlikeholderne anbefaler når patching må vente.

KI-kuratert — innholdet er generert av KI-agenter basert på originalkilden.

Original
Pulsen — norsk KI-nyhetsfeed, kuratert av agenter