Trojanske npm-pakker henter C2-adressen fra en tom Ethereum-overføring
Søk gjennom lockfilene dine etter `bianira-ui` og `fluid-type-ui`, for begge pakkene hentet kontrollserveren sin ut av en helt tom Ethereum-overføring.
To trojaniserte npm-pakker gjemte adressen til kommandoserveren inne i mottakeradressen på en Ethereum-transaksjon uten verdi og uten innhold. Teknikken har fått navnet NullReceiver av OpenSourceMalware, som beskriver den som en bevisst videreutvikling av EtherHiding, og aktiviteten er knyttet til Nord-Korea. Det melder The Hacker News. Pakkene bianira-ui og fluid-type-ui ble publisert 28. juli 2026 og er nå fjernet fra npm, men rakk henholdsvis 109 og 587 nedlastinger fra kontoene npmuser1101 og npmuser3002.
Kjeden på en infisert maskin er kort. Skadevaren slår opp en fast innkodet angriperlommebok, finner den siste utgående transaksjonen fra den, leser mottakeradressen, konverterer de fire første bytene fra heksadesimal til desimal og kobler seg til IP-adressen som kommer ut. I dette tilfellet ble a658863e til 166.88.134[.]62. De etterfølgende bytene i adressen er ikke tilfeldige heller: de staver ASCII-strengen «helloipbot!!». Gjennomgangen viser 68 transaksjoner siden 27. juli, dagen før pakkene ble lagt ut.
«I stedet for å hardkode en C2-adresse eller gjemme den i transaksjonens calldata, slik EtherHiding gjør, koder NullReceiver C2-IP-en direkte inn i bytene i mottakeradressen på en Ethereum-overføring med null verdi og null data» — Paul McCarty, sikkerhetsforsker
Poenget med omveien er å fjerne det forsvarerne pleier å se etter. EtherHiding, først dokumentert av Guardio Labs i oktober 2023, legger ondsinnet kode i en smartkontrakt på en offentlig blokkjede, og Google Threat Intelligence Group knyttet nordkoreansk bruk av teknikken til kampanjen Contagious Interview, der ofre lokkes med jobbtilbud på LinkedIn. Svakheten er at en smartkontrakt har en fast, offentlig kjent adresse som kan overvåkes. NullReceiver har ingen smartkontrakt, ingen nyttelast og ingen calldata.
«Calldata koster gass per byte. EtherHiding betaler for det. NullReceivers overføring er helt tom, noe som gjør den til den billigste og minst iøynefallende transaksjonsformen på nettverket» — OpenSourceMalware
Prisen angriperen betaler er kapasitet. Der EtherHiding kan smugle en hel URL eller et helt skript, får NullReceiver bare plass til noen få byte, altså akkurat nok til en IP-adresse. Beskrivelsen av teknikken og det som faktisk er observert spriker for øvrig på ett punkt: OpenSourceMalware fremhever at metoden aldri gjenbruker en mottakeradresse, mens gjennomgangen av lommebokens transaksjoner viser at «til»-adressen har vært den samme i alle de 68 registrerte overføringene. Design og operativ praksis er ikke det samme.
For deg som bygger med npm er dette først og fremst et deteksjonsproblem. Regler som ser etter mistenkelig calldata eller kjente kontraktadresser gir ingen treff her, fordi det ikke finnes noe felt å ta fingeravtrykk av.
Hva bør du gjøre?
- Grep etter
bianira-uiogfluid-type-uii alle lockfiler og byggecacher, ikke bare ipackage.json. Pakkene er borte fra npm, men en pinnet versjon i en gammel cache installeres fortsatt. - Behandle utgående kall til offentlige blokkjede-RPC-endepunkter fra byggeagenter og Node-prosesser som et varsel. Et frontend-bibliotek som slår opp en Ethereum-lommebok ved oppstart har ingen legitim grunn til det.
- Bytt fra innholdsbaserte deteksjonsregler til atferdsbaserte for denne klassen skadevare. Det er oppslaget mot lommeboken og den påfølgende tilkoblingen som er signalet, ikke bytene i transaksjonen.
KI-kuratert — innholdet er generert av KI-agenter basert på originalkilden.