+− THE DAILY DIFFdev & AI news
NEEDS REVIEW

Hugging Face model-filer kan køre skjult kode

Ondsindede modelpakker kan eksekvere kode under usikker indlæsning.

Ondsindede modelpakker kan eksekvere kode under usikker indlæsning. Tre dokumenterede eksempler forklarer "Pickle reverse shells", "broken-file scanner behavior" og forskningsdemonstreret "model-name confusion", med klare begrænsninger for påstandene om tyveri af legitimationsoplysninger.

Læs den skriftlige udgave (engelsk) ↗

Hvad denne video dækker

  • Numeriske modelvægte, eksekverbar serialisering og brugerdefineret repository-kode er forskellige ting.
  • JFrog og ReversingLabs dokumenterede reverse-shell payloads; deres udvalgte rapporter fastslår ikke tyveri af legitimationsoplysninger fra navngivne ofre.
  • Checkmarx Model Confusion var en forskningsdemonstration, der krævede en matchende fjernmodel og usikker indlæsning.
  • Foretræk safetensors og lappede indlæsere, gennemgå og fastgør brugerdefineret kode, og isoler ukendte pakker fra personlige hemmeligheder og unødvendig netværksadgang.

Oversat udskrift

Oversat fra den originale engelske fortælling. Tilgængelig lyd og undertekster styres af YouTube.

Hvordan kan en model-download invitere en gæst?

0:00 En model-fil er bare tal på disken. Indlæsning af en ondsindet Hugging Face-pakke åbnede en "reverse shell", hvilket er en ambitiøs fortolkning af lokal AI. Hvordan bliver indlæsning til eksekvering? Hvilke hemmeligheder kan den nå? Hvad stopper den faktisk? Og hav én gåde i tankerne. En model kan undlade at indlæse, efter at den farlige del allerede er sket.

0:18 Dette er The Daily Diff, under kølerhjelmen. Hugging Face er en platform til deling af maskinlæringsmodeller, datasæt og applikationer. Modelvægte er de indlærte tal. Et repository kan også indeholde konfiguration og Python-kode. Faren her er eksekverbar pakning, der krydser ind på din computer, når du indlæser den. Pickle gemmer Python-objekter med instruktioner til at genopbygge dem.

Hvordan kører en indlæser pakkens instruktioner?

0:37 En usikker indlæser kan følge disse instruktioner og kalde funktioner under udpakning. Download af bytes lægger pakken på din disk. Deserialisering åbner den. Et sted er et filformat blevet forfremmet til ulønnet systemadministrator. JFrog rapporterede Goober Two i februar 2024. Dens Pickle-payload åbnede en reverse shell, der forbinder udad for at tilbyde fjernadgang til kommandoer. Repository'et blev slettet. JFrog fandt også spor, der tydede på forskerbånd,

1:02 så tilskrivning er usikker. Den uønskede gæst blev dokumenteret. Tyveri af legitimationsoplysninger fra faktiske ofre blev ikke fastslået.

Hvilke hemmeligheder er inden for processens rækkevidde?

1:09 Kode, der kører som din bruger, kan læse alt, hvad den proces kan læse. En monteret sky-nøgle eller et tilgængeligt token bliver et muligt mål. At sende det ud kræver også en fungerende netværksrute. Numeriske vægte alene har ingen magiske legitimationsoplysninger. Dine tilladelser leverer den interessante del af modelkortet. Der er en anden dør. Nogle modeller beder dig om at stole på fjernkode, som autoriserer Python fra repository'et. Sikre tensorfiler kan sidde ved siden af den kode.

1:32 Kontrol af vægtformatet dækker én indgang, mens repository'ets kode stadig venter på, at du giver den et besøgsbadge.

Hvorfor kan en manglende lokal sti blive en fjernmodel?

1:38 Checkmarx demonstrerede Model Confusion. En manglende lokal modelsti kunne løses til et offentligt repository med et matchende navn. Kombiner det med fjernkode aktiveret, og den forkerte pakke kan eksekveres. Dette var en forskningsdemonstration, der involverede et unavngivet firmas prøve, rettet inden for en dag. En manglende mappe fik en udlejer. ReversingLabs rapporterede to prøver i februar 2025,

Hvordan undgik ødelagte pakker den gamle scanner?

1:58 og kaldte teknikken nullify AI. Begge indeholdt reverse shells. Deres 7-zip-pakning blokerede almindelig PyTorch-indlæsning, så denne sti krævede udpakning og usikker deserialisering. Brudte Pickle-streams afslørede også en scanner-blind plet. En mislykket scanning fortjener undersøgelse, før nogen åbner pakken. I forskernes harmløse test, instruktioner skrev en fil, før indlæseren

2:18 nåede den ødelagte del og udløste en fejl. Forestil dig at åbne en pakke, slippe vaskebjørnen løs, og derefter bemærke, at forsendelsesetiketten er ugyldig. Fejlmeddelelsen ankommer med fremragende grammatik og forfærdelig timing. Hugging Face fjernede de rapporterede prøver inden for 24 timer og ændrede scanneren. Denne specifikke opdagelse udløste en rettelse. En sikkerhedsscanning er nyttigt bevis, og at behandle hver scannerfejl som et rent sundhedsbevis forbliver en bemærkelsesværdig generøs fortolkning af fejl.

2:43 Foretræk sikre tensorer og aktuelle lappede indlæsere.

Hvad holder nøglen uden for gæstens rækkevidde?

2:46 PyTorch indsnævrede sin standardindlæser fra version 2.6. Gennemgå brugerdefineret kode og fastgør den gennemgåede revision. Kør ukendte pakker isoleret uden personlige nøgler, med begrænset netværksadgang. En container fuld af monterede legitimationsoplysninger er en gavekurv med navneområder. Den åbningsgåde har et svar. Indlæsningsfejl fortæller dig, hvor eksekveringen stoppede. Tidligere instruktioner kan allerede have kørt.

3:08 Hold hemmelighederne uden for dens rækkevidde, før du åbner pakken. Dom, under kølerhjelmen.

Hvorfor ville jeg stemple dette som 'NEEDS REVIEW'?

3:16 indlæseren. Den gratis download skal komme med en model, og gæstelisten skal forblive min beslutning. Hvis du hellere vil læse dette end høre mig sige det, lander diffen i din indbakke hver morgen, gratis på the daily diff dot dev, link nedenfor. Og det er diffen for i dag. Jeg er Niko fra Axrisi. Flet ansvarligt.

Kilder

  1. Data Scientists Targeted by Malicious Hugging Face ML Models with Silent BackdoorJFrog
  2. Malicious ML models discovered on Hugging Face platformReversingLabs
  3. AI Model Confusion: An LLM/AI Model Supply Chain AttackCheckmarx Zero
  4. Pickle ScanningHugging Face
  5. SafetensorsHugging Face
  6. Loading custom modelsHugging Face
  7. Serialization semanticsPyTorch

Relaterede videoer