CVE-2026-44827 stelt een aanvaller in staat om willekeurige code uit te voeren wanneer een Hugging Face Diffusers-model wordt geladen, zelfs als de trust_remote_code-vlag is uitgeschakeld. Onderzoekers hebben de kwetsbaarheid "FaceHugger" genoemd en deze herleid tot een raceconditie in het tweefasige model-laadproces van de bibliotheek. Elke pipeline die modellen van de hub ophaalt, kan worden getroffen.

Waarom de kwetsbaarheid belangrijk is

Diffusers vormt de basis voor text-to-image en andere diffusiemodellen. In juli 2026 registreerde het 8,1 miljoen downloads, waardoor talloze CI/CD-jobs, containerimages en enterprise inference-services ervan afhankelijk zijn. De bug omzeilt het primaire veiligheidsmechanisme (trust_remote_code) dat ontwikkelaars inschakelen om onbetrouwbare Python-code die met een model wordt meegeleverd, te blokkeren.

Hoe de omzeiling werkt

  • Tweefasig laden: Diffusers haalt eerst een modelconfiguratie op, waarna een tweede verzoek de modelgewichten en eventuele bijbehorende code ophaalt.
  • Raceconditie: De beveiligingscontrole die het eerste verzoek inspecteert, strekt zich niet uit tot het tweede verzoek.
  • Payload-injectie: Een aanvaller die het tweede verzoek controleert, injecteert kwaadaardige code die de bibliotheek later uitvoert, waardoor de vertrouwenscontrole volledig wordt omzeild.

Omdat de controle alleen naar het initiële verzoek kijkt, geeft het uitschakelen van trust_remote_code een vals gevoel van veiligheid.

Directe stappen voor ontwikkelaars

  1. Leg de Diffusers-versie vast in requirements.txt of je lock-bestand om onbedoelde upgrades naar een kwetsbare release te voorkomen.
  2. Vermijd het 'on-the-fly' ophalen van modellen in productie. Download modellen naar een vertrouwde artifact store (bijv. een interne S3-bucket) en laad ze van daaruit.
  3. Audit modelrepositories voor gebruik. Controleer of de codestanden van het model overeenkomen met de verwachte hashes of afkomstig zijn van een gecontroleerde bron.
  4. Dwing netwerk-egresscontroles af zodat build-agents en inference-servers de publieke Hugging Face-hub niet kunnen bereiken, tenzij je dit expliciet toestaat.
  5. Voer het laden van modellen uit in geïsoleerde containers of sandboxes met minimale privileges, om de impact van onbedoelde code-uitvoering te beperken.

Kernboodschap:

De FaceHugger-bug laat zien dat het uitschakelen van trust_remote_code niet voldoende is. Totdat je Diffusers hebt bijgewerkt en je model-ingestie-pipeline hebt verhard, blijft elke externe model-pull een potentieel toegangspunt voor kwaadaardige code.