JulesJacker: Pekeng npm Worm Nagpakaaron-ingnon nga Jules AI

JulesJacker: Usa ka Pekeng-PoC npm Worm nga Nagpakaaron-ingnon nga Ahente ni Jules sa Google — ug Gipaandar ang Sandbox nga Nag-analisar Niini

TL; DR

Usa ka npm operator ang migugol ug unom ka semana sa pagmantala sa peke nga mga pakete sa "utility" sa TypeScript sama sa ts-form-utils, ts-project-lint, Ug ts-enum-helper.

Samtang ang mga pakete nagbutyag sa gagmay ug lehitimong mga validation helper, ang tinuod nga payload mo-execute sa pag-install o first require ug mo-perform sa host fingerprinting, GitHub organization discovery, repository cloning, ug source-code exfiltration.

Ang malware espesipikong nag-target sa mga high-value nga organisasyon sa GitHub, lakip ang daghang Shopify mga repository, dayon i-archive ug i-exfiltrate ang maabot nga mga source tree ngadto sa usa ka sentralisadong collection endpoint.

Isip kabahin sa compromise workflow, ang payload commitsa file balik ngadto sa mga repository sa biktima samtang nagsundog sa autonomous coding identity sa Google google-labs-jules[bot].

Gisubay namo ang kampanya — ginganlan og JulesJacker — sa daghang sakup sa publisher ug labing menos lima ka henerasyon sa payload, lakip ang mga encrypted ug sandbox-aware nga mga variant.

Ang pinakabag-ong variant espesipikong nagtumong sa imprastraktura sa pag-analisa sa malware: kini mo-activate lamang sulod sa mga analysis environment, mangawat sa mga cloud metadata service-account token, ug mosusi sa mga Kubernetes control plane ug cloud storage bucket.

Ang pangunang IOC nga gipaambit sa tanang henerasyon sa payload mao ang collection endpoint. aaronstack[.]com/jules-collect.

Kagrabe: kritikal.

Ang Pag-atake: Giunsa Kini Paglihok

Ang matag pakete sa JulesJacker nagsunod sa parehas nga template. package.json nag-anunsyo og usa ka maayong TypeScript helper nga adunay lisensya sa MIT ug walay nalambigit nga source repository. Ang index.js nag-eksport og pipila ka tinuod, nagtrabaho nga mga gimbuhaton — mga email regexe, mga mapa sa enum, mga lamesa sa lagda sa lint — aron ang usa ka developer nga aktuwal nga nag-import sa pakete makakita sa makatarunganon nga pamatasan. Ang malisya anaa sa laing dapit: sa usa ka pagkahuman sa pag-instalar kaw-it, o sa usa ka bloke sa ubos sa index.js nga mo-execute sa higayon nga gikinahanglan ang module.

Ang mga payload miuswag pinaagi sa klaro nga ginumerohan nga mga internal nga yugto (gimarkahan sa operator ang kaugalingon nga mga panghitabo sa telemetry sc1-, sc3-, sc4-, ug uban pa), ug ang pagtan-aw sa ebolusyon mao ang pinakaklaro nga paagi aron masabtan ang kampanya.

 Henerasyon 1–2: pagpaniid ug pagpangawat sa git-config

Ang labing una nga mga pakete kay prangka nga mga infostealer. Sa pag-instalar, ilang gikolekta ang mga environment variable, ang GitHub CLI hosts file, ug ang global git configuration (git config –global –list, git remote -v), dayon gi-POST ang bundle ngadto sa collection endpoint. Kini nag-establisar sa pirma sa operator: usa ka istorya sa hapin nga “TypeScript form validation utilities”, usa ka outbound beacon ngadto sa usa ka domain, ug usa ka pagtilaw alang sa mga kredensyal sa developer imbes nga datos sa konsumidor.

Henerasyon 3: mga hypervisor ug kernel escape probe

Usa ka bersyon sa tunga-tunga sa kampanya ang mibalhin ngadto sa mga pag-atake sa imprastraktura. Imbis nga mangawat og config, nagpadagan kini og recon harness probing AF_VSOCK mga socket, mga rehiyon sa virtio MMIO, /dev/mem, ug mga flag sa pagpatig-a sa kernel, ug bisan ang mga pagsulay sa pag-crash sa kernel nga gipahinabo sa sysrq — pamatasan nga nalangkit sa mga pagsulay sa paggawas sa usa ka virtual machine o container. Ang mga tag sa telemetry (s0-vmm-recon, s1-vmm-vsock-fuzz, s2-vmm-mmio, s3-kernel-probe) gihimong klaro ang tuyo. Kini nga variant klaro nga gitumong sa mga palibot nga cloud-sandbox ug serverless-runner — ang klase sa temporaryo nga VM nga naghimo ug nagsulay sa dili kasaligan nga code.

Henerasyon 3 (SC3): ang cross-repo write worm

Ang sentro sa grabidad sa kampanya nahimong usa ka kawatan sa repo nga mokaylap sa kaugalingon. Sa pag-instalar, ang payload modagan sa lima ka yugto nga gitakda sa oras:

  • nga yugto 0 (~100 ms): fingerprint sa host — hostname, user info, git identity.
  • nga yugto 1 (~3 segundos): mahibal-an kung unsang organisasyon ang nahisakop sa biktima pinaagi sa pag-inspeksyon git remote -v, unya pangitaa ang usa ka hardcoded ORG_CONFIG pag-access sa lamesa ug test repo gamit ang git ls-remote — gipaagi sa usa ka SSRF proxy nga kontrolado sa tig-atake sa http://git@192.168.0.1:8080.
  • nga yugto 2 (~10 segundos): git clone matag maabot nga repository sa target list, tarball ug gzip ang tree, base64-encode kini, ug chunk-exfiltrate kini.
  • nga yugto 3 (~45 s): ang “pamatuod sa pag-access” — pag-clone sa usa ka writable repo, pag-drop og file nga ginganlan og SECURITY-POC.md, ug commit kini uban sa awtor nga gibutang sa google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com> ug ang mensahe nga chore: update dependency cache, dayon i-push ngadto sa mainline branch sa biktima.

Ang hardcoded target list dili generic. Naglista kini og sobra sa traynta Shopify mga repositoryo pinaagi sa ngalan — Shopify/shopify, Shopify/identidad, Shopify/pagsingil, Shopify/vault, Shopify/mga sekreto, Shopify/imprastraktura, Shopify/.github, ug daghan pa — uban sa usa ka organisasyon sa pagsulay, AaronStackBarnes, nga daw gikontrol ug gigamit sa operator isip write target.

Henerasyon 4 (SC4): gi-encrypt ug gi-gate

Ang pinakabag-o nga variant nga giatubang sa developer nagdugang og duha ka lut-od sa paglikay ibabaw sa SC3 worm.

Una, ang payload dili na ipadala isip plaintext. Ang tinuod nga lohika anaa sa usa ka AES-256-CBC-encrypted blob, lib/.perf.dat, uban sa IV sa unang napulog-unom ka byte niini. Ang loader sa index.js nag-reconstruct sa decryption key gikan sa concatenated string fragments, nag-decrypt sa blob, ug nagpadagan niini gamit ang bag-ong Function()Bisan ang mga ngalan sa module gibahin aron malikayan ang mga static scanner — kinahanglan('crypt' + 'o'), kinahanglan('f' + 's').

Ikaduha, kini host-gated. Usa ka variant ang mo-decrypt ug modagan lang kung os.hostname() parehas devbox or ubuntu-fc-uvm (usa ka default sa Firecracker microVM) o adunay sulod nga substring devboxLaing mga ganghaan sa presensya sa usa ka .jules/ direktoryo sa trabaho:

Sa ato pa, ang SC4 payload gidisenyo nga magpabiling dormant sa laptop sa usa ka ordinaryong developer ug makamata lang sulod sa automated AI-agent ug mga palibot sa sandbox gusto gyud sa operator nga makigkompromiso.

Pag-abli sa Lab: ang Analysis-Infrastructure Variant

Ang pinakabag-o nga pakete sa kampanya, ts-enum-helper, dili gyud moatake sa mga developer o Shopify. Kini postinstall.sh moabli gamit ang ganghaan nga mohatag sa dula:

Ang script walay mahimo gawas kon ang usa ka environment variable nga espesipiko sa usa ka malware-analysis platform gi-set. Kung kini na-set, ang payload nahibalo nga kini nagdagan sulod sa sandbox nga naglungtad aron mo-detonate ug magtuon sa mga package nga sama niini — ug kini mo-counter-attack.

Una niini nga kuhaon ang GCP service-account OAuth token gikan sa instance metadata server ug i-exfiltrate kini. Dayon, gamit ang maong token, kini mo-sweep sa Plane sa pagkontrol sa Kubernetes maabot sa kubernetes.default.svc:

  • naglista sa ClusterRoleBindings, ClusterRoles, ug Nodes;
  • nagsusi sa mga pod, mga sekreto, ug mga configmap sa tibuok sistema sa kube, Default, kube-public, kube-node-lease, ug ang ngalan sa pag-analisar;
  • nag-isyu sa mga tawag sa SelfSubjectAccessReview aron i-mapa kung unsa gyud ang gitugotan nga buhaton sa gikawat nga identidad.

Sa katapusan, gipugos niini ang paggamit sa mga ngalan sa Google Cloud Storage bucket nga gitukod gikan sa usa ka hardcoded nga GCP project ID (talagsaon nga tigpirma-437603-p9) ug numero sa proyekto, pagtag-an sa mga kombinasyon sama sa *-nagtukod, *-mga artifact, ug daghan malysis- mga prefix (mga resulta sa malysis, mga pakete sa malysis, malysis-scans). Ang matag response code ug body gi-log ug gi-POST balik sa parehas. jules-collect katapusan.

Kini ang talagsaon nga kaso sa usa ka supply-chain payload nga gitukod ilabi na aron atakehon ang kaugalingong imprastraktura sa mga tigpanalipod. Ang istorya sa hapin sa tibuok kampanya — mga tipik niini makita sulod sa mga payload isip mga komento nga nag-frame sa pamatasan isip usa ka "Security Research PoC … cross-repo write via overscoped git proxy token" — parehas ra ang self-justification, bisan kung ang runtime target usa ka Shopify monorepo o metadata server sa analysis cluster.

Timeline ug ang Pagbalhin sa Sakop

Ang JulesJacker dili usa ka kalit nga pagkahulog. Kini usa ka padayon nga operasyon nga nakalahutay sa pagtangtang sa registry pinaagi lang sa pag-ilis sa ngalan niini.

Kanus-a Hitabo
Tunga-tunga sa Abril 2026 Ang unang mga pakete makita ubos sa orihinal nga sakop sa publisher: TS-utility façade, environment ug git-config exfiltration.
Sayo sa Mayo 2026 Gipublikar na ang variant sa hypervisor ug kernel-escape reconnaissance.
Tunga-tunga hangtod sa ulahing bahin sa Mayo 2026 Ang SC3 cross-repo write worm makita uban sa mga payload nga gitarget sa Shopify ug google-labs-jules[bot] pagpasundog. Ang SC4 nagpaila sa mga AES-encrypted ug host-gated loader.
Katapusan sa Mayo 2026 Gitangtang sa npm ang orihinal nga sakup sa tigmantala; ang mga ngalan sa pakete gihubit sa mga walay sulod nga mga placeholder nga nagkupot og seguridad.
Parehas nga semana Ang operator mobalhin ngadto sa halos parehas nga look-alike scope ug i-republish ang worm, lakip na ang analysis-infrastructure variant.

Ang pagbalhin mao ang bahin nga angay atimanon sa mga tigpanalipod. Ang pagtangtang sa unang scope wala magtapos sa kampanya o makapahinay niini. Ang operator nakahimo na og parallel scope nga lahi ang ngalan gikan sa orihinal pinaagi sa usa ka karakter, ug nagpadayon sa pagmantala sulod sa samang semana. Sa pagsulat niini, ang bag-ong scope ts-form-utils (mga bersyon 1.0.0 hangtod 1.1.0), ang ts-project-lint (1.0.0 ug 1.1.0), ug ang nag-inusara ts-enum-helper (1.0.0) magpabilin nga ma-install.

Mga Timailhan sa Kompromiso

Ang tanang timailhan sa ubos gikumpirma batok sa tinubdan sa pakete.

Type timailhan Mubo nga mga sulat
Network (C2) aaronstack[.]com/jules-collect Usa ra ka collection endpoint sa matag henerasyon; makadawat og JSON telemetry ug base64-gzip repository tarball chunks.
Network (SSRF proxy) http://git@192.168.0.1:8080 Pang-atubangan para sa usa ka overscoped git proxy token nga gigamit aron makaabot sa mga repository sa target nga organisasyon.
Network (panganod) metadata.google.internal/computeMetadata/v1
kubernetes.default.svc
storage.googleapis.com/storage/v1/b
Gigamit lamang sa analysis-infrastructure variant para sa token theft ug Kubernetes control-plane reconnaissance.
pagkatawo google-labs-jules[bot]
161369871+google-labs-jules[bot]@users.noreply.github.com
Nalimot commit ang identidad sa awtor giduso ngadto sa mga pangunang sanga sa biktima.
file lib/.perf.dat AES-256-CBC-encrypted payload blob; IV gitipigan sa unang 16 bytes ug ang yawe gi-reconstruct nga dinamiko sa index.js.
file SECURITY-POC.md Nahulog ug commitgibalik sa mga tipiganan sa biktima uban ang mensahe chore: update dependency cache.
file scripts/postinstall.sh Gi-gate $MALYSIS_ANALYSIS_ID; nag-ila sa variant sa pag-analisa-pag-target sa imprastraktura.
Paggawi os.hostname() pagsusi alang sa devbox / ubuntu-fc-uvm Pag-gating sa sandbox ug AI-agent environment sa dili pa ang payload decryption ug execution.
Paggawi .jules/ ug /app/.jules mga pagbasa sa direktoryo Klaro nga pag-target sa mga palibot sa workspace sa AI-agent.
Paggawi sc1-, sc3-, sc4-, s0-vmm-recon Mga label sa yugto sa telemetry nga gihubit sa operator nga mapuslanon alang sa pag-ila ug pagpangayam.
Target sa panganod rare-signer-437603-p9
malysis-* mga pangagpas sa balde
Mga hardcoded nga GCP project identifier ug storage-bucket enumeration patterns nga gisulod sa analysis-infrastructure variant.
Porma sa pakete TS-utility package façade nga walay repository field Kanunay nga template sa kampanya: peke nga mga pakete sa utility sa TypeScript nga adunay malisyosong mga payload nga nasulod postinstall hooks o gilakip sa index.js.
mga himan sa pag-analisa sa komposisyon sa software sa sca
Unaha, ayoha, ug siguroha ang mga risgo sa imong software
Kuhaa ang Imong Libre nga Account.
Walay gikinahanglan nga credit card.

Seguraduha ang Imong Pagpalambo ug Paghatud sa Software

uban sa Xygeni Product Suite