Kaprede Rust-pakker kjørte skadelig kode under bygging

Rust Security Response Team ble 20. august 2026 varslet av Nextron Systems om at pakken proc-macro1 inneholdt et byggeskript som lastet ned en skadelig nyttelast. Undersøkelsen viste at tre etablerte pakker var publisert på nytt med denne pakken som avhengighet, nemlig arrayref 0.3.10, internment 0.8.7 og append-only-vec 0.1.9. Versjonene lå ute i henholdsvis 86, 90 og 107 minutter før de ble fjernet. Rust-teamet slettet de ondsinnede pakkene, gjenopprettet trygge versjoner og låste vedlikeholderkontoen fordi maskinen eller påloggingen sannsynligvis var kompromittert. Teamet oppgir at det ikke er mistanke om at vedlikeholderen har handlet med hensikt.

Hva som skjer teknisk

Angrepet utnytter et trekk ved byggesystemet, ikke en sårbarhet i koden. Rust-pakker kan ha et byggeskript i filen build.rs, og det skriptet kjøres automatisk når pakken bygges. En utvikler trenger derfor ikke å kalle noe fra den ondsinnede pakken. Det holder at den står som avhengighet og at prosjektet kompileres. Navnet proc-macro1 er dessuten valgt for å ligne på det svært utbredte biblioteket proc-macro2, slik at det ikke vekker oppsikt i en avhengighetsliste.

Wiz har beskrevet nyttelasten nærmere. Byggeskriptet setter sammen adressen til kontrolltjeneren fra oppdelte og kodede biter, og laster ned en utgave tilpasset Linux, Windows eller macOS. Andre trinn er en bakdør som melder seg til kontrolltjeneren over HTTPS, samler inn vertsnavn, brukernavn, opplysninger om operativsystemet og installerte programmer, og går gjennom nettleserprofiler for Chrome, Brave og Edge for å kartlegge hvilke nettsteder brukeren har lagret pålogging til. Wiz presiserer at selve passordene ikke hentes ut. Bakdøren etablerer seg varig gjennom oppstartsnøkler i Windows, LaunchAgent på macOS eller systemd-tjenester på Linux, og den tar imot kommandoer for å endre oppsett, kjøre skript eller avslutte seg selv. Wiz peker på tre punkter med overlapp mot operasjoner andre har knyttet til Nord-Korea, blant annet det samme endepunktet hos kontrolltjeneren og felles utstederkjede for sertifikater, men omtaler dette som betydelig overlapp og ikke som en egen tilskrivning. Socket oppgir at selskapets egen skanning fant proc-macro1 uavhengig samme morgen, og at den forrige rene utgaven av arrayref har rundt 152 millioner nedlastinger.

Kapret vedlikeholderkontony versjon publisertSkjult avhengighetnavn som ligner et kjent bibliotekByggeskript kjørerautomatisk ved kompileringBakdør på byggemaskinennøkler og tilganger i fare
Figur: Ingen utvikler trenger å kalle den ondsinnede koden. Byggeskriptet kjører av seg selv når prosjektet kompileres, og da er byggemaskinen målet.

Hva det betyr for deg som drifter byggemiljøet

Det korte tidsvinduet er ikke en trøst her, og det er nettopp poenget. En byggeserver som kjørte en avhengighetsoppdatering i de halvannen timene, kan ha kjørt bakdøren uten at et menneske var involvert. Byggemiljøet er samtidig det stedet i virksomheten som har flest hemmeligheter samlet, altså signeringsnøkler, skytilganger og tokens til kodelageret. Skadevare på en utviklermaskin er ille, mens skadevare på byggeserveren er et angrep på alt dere leverer videre.

Denne saken er også en test på om dere kan svare på et enkelt spørsmål: hvilke avhengigheter ble hentet inn i byggene deres den 20. august. Virksomheter med låste avhengighetsfiler og et eget speil av pakkelageret svarer på minutter. De som bygger direkte mot det offentlige lageret uten låsing, må lete. For virksomheter under NIS2 er dette leverandørkjeden i artikkel 21, og for de fleste er det den delen av kjeden som er minst dokumentert. Vår vurdering er at tiltaket med best virkning per krone er å låse avhengigheter og å skille byggemiljøet fra produksjonshemmelighetene, ikke å lete etter akkurat disse pakkenavnene.

Berigo anbefaler

  • Søk gjennom byggelogger og lokale hurtiglagre etter proc-macro1 og de tre berørte versjonene, og se særlig på bygg kjørt 20. august 2026.
  • Anse byggeservere som kjørte disse versjonene som kompromitterte, og bytt nøkler, tokens og skytilganger de hadde tilgang til.
  • Lås avhengigheter med versjonsfiler, og bygg mot et internt speil i stedet for direkte mot det offentlige pakkelageret.
  • Skill byggemiljøet fra produksjonshemmeligheter, slik at et bygg ikke har tilgang til mer enn det trenger.
  • Krev at leverandører av programvare kan svare på hvilke avhengigheter som gikk inn i en gitt utgivelse, og be om en komponentliste.

Sikkerhet som forstås, styres og virker.

La oss hjelpe dere å gjøre sikkerhet til et fortrinn, ikke en kostnad. Ta kontakt for en uforpliktende samtale om hvor virksomheten står, og hva som bør prioriteres først.

Ta kontakt