TL; DR
Chaith oibreoir npm amháin sé seachtaine ag foilsiú pacáistí “fóntais” TypeScript bréige ar nós ts-form-utils, ts-project-lint, agus ts-enum-helper.
Cé go nochtann na pacáistí cúntóirí bailíochtaithe beaga dlisteanacha, forghníomhaítear an t-ualach fíor ar shuiteáil nó ar an gcéad éileamh agus déanann sé méarlorgaireacht óstach, fionnachtain eagraíochta GitHub, clónáil stórtha, agus eis-scagadh cód foinse.
Díríonn an malware go sonrach ar eagraíochtaí GitHub ardluacha, lena n-áirítear eagraíochtaí éagsúla. Shopify stórtha, ansin déanann sé crainn foinse inrochtana a chartlannú agus a dhí-scagadh chuig críochphointe bailiúcháin láraithe.
Mar chuid den sreabhadh oibre comhréitigh, an t-ualach commitcomhad sa ar ais i stórtha íospartach agus aitheantas códaithe uathrialach Google á phearsanú google-labs-jules[bot].
Rinneamar rianú ar an bhfeachtas — ainmníodh JulesJacker — trasna raonta foilsitheoirí iolracha agus cúig ghlúin ualaigh ar a laghad, lena n-áirítear malairtí criptithe agus atá feasach ar bhosca gainimh.
Díríonn an leagan is nuaí go sonrach ar bhonneagar anailíse malware: ní ghníomhaíonn sé ach laistigh de thimpeallachtaí anailíse, goideann sé comharthaí cuntas seirbhíse meiteashonraí scamall, agus déanann sé imscrúdú ar eitleáin rialaithe Kubernetes agus ar bhuicéid stórála scamall.
Is é an príomh-IOC a roinntear ar fud gach glúin ualaigh ná an críochphointe bailiúcháin aaronstack[.]com/jules-collect.
Déine: criticiúil.
An Ionsaí: Conas a Oibríonn Sé
Leanann gach pacáiste JulesJacker an teimpléad céanna. pacáiste.json fógraíonn sé cúntóir TypeScript neamhdhíobhálach le ceadúnas MIT agus gan aon stór foinse nasctha. innéacs.js easpórtálann sé dornán feidhmeanna fíor-oibrithe — regexes ríomhphoist, mapaí enum, táblaí rialacha lint — ionas go bhfeiceann forbróir a allmhairíonn an pacáiste i ndáiríre iompar inchreidte. Tá an mailís ina cónaí in áit eile: i iar-shuiteáil crúca, nó i mbloc ag bun an innéacs.js a fhorghníomhaítear an nóiméad a bhíonn an modúl ag teastáil.
Tá na hualaí tar éis teacht chun cinn trí chéimeanna inmheánacha atá uimhrithe go soiléir (lipéadaíonn an t-oibreoir a chuid imeachtaí teileamaitreachta féin) sc1-, sc3-, sc4-, agus mar sin de), agus is é an bealach is soiléire chun an feachtas a thuiscint ná an éabhlóid sin a fheiceáil.
Glúin 1–2: taiscéalaíocht agus goid git-config
Ba ghoideoirí faisnéise simplí iad na chéad phacáistí. Ar an suiteáil, bhailigh siad athróga comhshaoil, comhad óstála GitHub CLI, agus an chumraíocht git dhomhanda (cumraíocht git –domhanda –liosta, git iargúlta -v), ansin POSTáladh an beart chuig an gcríochphointe bailiúcháin. Bhunaigh sé seo síniú an oibreora: scéal clúdaigh “fóntais bailíochtaithe foirmeacha TypeScript”, rabhchán amach chuig fearann aonair, agus blas ar dhintiúir forbróra seachas sonraí tomhaltóirí.
Glúin 3: tóireadóirí hipearfhaireora agus éalaithe eithne
Dhírigh leagan amháin den fheachtas lár go mór ar ionsaithe bonneagair. In ionad cumraíocht a ghoid, rith sé braiteadh úim taiscéalaíochta. AF_VSOCK soicéid, réigiúin virtio MMIO, / dev / mem, agus bratacha cruaithe eithne, agus fiú tuairteanna eithne a ndearnadh iarracht orthu de bharr sysrq — iompar a bhaineann le hiarrachtaí briseadh amach as meaisín fíorúil nó coimeádán. Na clibeanna teileamaitreachta (s0-vmm-athbhreithniú, s1-vmm-vsock-fuzz, s2-vmm-mmio, braiteoir-eithne-s3) rinne sé an intinn soiléir. Bhí an leagan seo dírithe go soiléir ar timpeallachtaí bosca gainimh scamall agus rithire gan fhreastalaí — an cineál VM neamhbhuan a thógann agus a thástálann cód neamhiontaofa.
Glúin 3 (SC3): an péist scríbhneoireachta tras-stórais
Ba ghadaí stórais féin-iomadaithe lárphointe domhantarraingthe an fheachtais. Ar an suiteáil, ritheann an t-ualach seicheamh uainithe cúig chéim:
- Céim 0 (~100 ms): méarloirg an óstaigh — ainm an óstaigh, eolas úsáideora, aitheantas git.
- Céim 1 (~3 s): faigh amach cén eagraíocht lena mbaineann an t-íospartach trí iniúchadh a dhéanamh git iargúlta -v, ansin féach ar chód crua Cumraíocht_Org rochtain ar thabla agus stór tástála le git ls-remote — ródaithe trí sheachfhreastalaí SSRF atá faoi rialú ionsaitheora ag http://git@192.168.0.1:8080.
- Céim 2 (~10 soicind): clón git gach stórlann inrochtana sa liosta sprice, tarball agus gzip an crann, ionchódáil base64 air, agus eis-scagthadh chunk é.
- Céim 3 (~45 s): an “cruthúnas rochtana” — clónáil stór inscríofa, scaoil comhad darb ainm SECURITY-POC.md, agus commit é agus an t-údar socraithe go google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com> agus an teachtaireacht chore: update spleáchas taisce, ansin brúigh chuig príomhbhrainse an íospartaigh.
Ní liosta sprioc crua-chódaithe cineálach é. Tá níos mó ná tríocha sprioc liostaithe ann. Shopify stórtha de réir ainm — Shopify/shopify, Shopify/aitheantas, Shopify/billeáil, Shopify/cruinneog, Shopify/rúin, Shopify/bonneagar, Shopify/.github, agus go leor eile — i dteannta eagraíocht tástála, AaronStackBarnes, a bhfuil an chuma ar an scéal go bhfuil an t-oibreoir á rialú aige agus a úsáideann sé mar sprioc scríofa.
Glúin 4 (SC4): criptithe agus geataithe
Cuireann an leagan is nuaí atá dírithe ar fhorbróirí dhá shraith seachanta leis an bpéist SC3.
Ar dtús, ní sheoltar an t-ualach mar théacs simplí a thuilleadh. Tá an loighic iarbhír suite i mbloc criptithe AES-256-CBC, lib/.perf.dat, leis an IV ina chéad sé bheart déag. An luchtóir i innéacs.js athchruthaíonn sé an eochair dhíchriptithe ó blúirí teaghrán nasctha, díchriptíonn sé an blob, agus ritheann sé é le Feidhm nua()Tá fiú ainmneacha na modúl roinnte chun scanóirí statach a sheachaint — éiligh('cripte' + 'o'), éiligh('f' + 's').
Ar an dara dul síos, tá sé geataithe ag an óstach. Ní dhéanann aon chineál amháin díchriptiú agus rith ach amháin nuair os.hostname() ionann bosca forbartha or ubuntu-fc-uvm (réamhshocrú microVM Firecracker) nó tá an fho-theaghrán ann bosca forbarthaGeataí eile ar láithreacht a .jules/ eolaire oibre:
Is é sin le rá, tá an t-ualach SC4 deartha chun fanacht díomhaoin ar ríomhaire glúine forbróra gnáth agus gan múscailt ach amháin taobh istigh den ghníomhaire AI uathoibrithe agus timpeallachtaí bosca gainimh Tá an t-oibreoir ag iarraidh comhréiteach a dhéanamh i ndáiríre.
Ag Casadh Ar An tSaotharlann: an Leagan Anailíse-Bonneagair
An pacáiste is nuálaí sa fheachtas, cúntóir ts-enum, ní dhéanann sé ionsaí ar fhorbróirí ná ar Shopify ar chor ar bith. A postinstall.sh osclaítear le geata a thugann an cluiche uaidh:
Ní dhéanann an script aon rud mura socraítear athróg timpeallachta atá sainiúil do ardán anailíse malware. Nuair a bhíonn sé socraithe, bíonn a fhios ag an ualach go bhfuil sé ag rith taobh istigh den bhosca gainimh atá ann chun pacáistí díreach cosúil leis an gceann seo a phléascadh agus a staidéar - agus déanann sé frithionsaí.
Ar dtús, tarraingíonn sé an comhartha OAuth cuntas seirbhíse GCP ón bhfreastalaí meiteashonraí sampla agus scaoileann sé amach é. Ansin, ag baint úsáide as an gcomhartha sin, scuabann sé an Eitleán rialaithe Kubernetes inrochtana ag kubernetes.default.svc:
- liostaíonn sé ClusterRoleBindings, ClusterRoles, agus Nodes;
- déanann sé iniúchadh ar phodanna, rúin, agus mapaí cumraíochta trasna córas ciúb, réamhshocraithe, ciúb-phoiblí, léas-nód-kube, agus an spás ainm anailíse;
- eisíonn sé glaonna SelfSubjectAccessReview chun a mhapáil go díreach cad a cheadaítear don chéannacht goidte a dhéanamh.
Ar deireadh, déanann sé brúid-fhórsaí ar ainmneacha buicéad Google Cloud Storage atá tógtha ó ID tionscadail GCP crua-chódaithe (sínitheoir-annamh-437603-p9) agus uimhir an tionscadail, ag buille faoi thuairim teaglamaí amhail *-thógálacha, *-déantáin, agus roinnt mí-ailís réimíreanna (torthaí-anailís, pacáistí-malysis, scananna malysis). Logáiltear gach cód agus corp freagartha agus postáiltear ar ais chuig an áit chéanna bailigh-jules críochphointe.
Is é seo an cás neamhchoitianta ina bhfuil ualach slabhra soláthair tógtha go sonrach chun ionsaí a dhéanamh ar bhonneagar na gcosantóirí féin. Is é an scéal clúdaigh ar fud an fheachtais ar fad — a bhfuil blúirí de le feiceáil taobh istigh de na hualaí mar thráchtanna a chuireann an t-iompar i láthair mar “PoC Taighde Slándála … scríobh tras-stórais trí chomhartha seachfhreastalaí git ró-scóipithe” — an féin-údar céanna, cibé acu is monorepo Shopify nó freastalaí meiteashonraí an chnuasaigh anailíse an sprioc rith-ama.
Amchlár & Imirce Raon Feidhme
Ní rud aon-uaire é JulesJacker. Is oibríocht leanúnach í a mhair tar éis don chlárlann a bheith bainte anuas trína hainm a athrú go simplí.
| Cathain | Imeacht |
|---|---|
| Lár mhí Aibreáin 2026 | Feictear na chéad phacáistí faoin raon feidhme bunaidh foilsitheora: TS-utility facade, environment agus git-config exfiltration. |
| Go luath i mBealtaine 2026 | Foilsíodh leagan taiscéalaíochta hipearfhaiséara agus éalaithe eithne. |
| Lár go deireadh mhí na Bealtaine 2026 | Feictear péist scríbhneoireachta tras-stórais SC3 taobh le hualaí atá dírithe ar Shopify agus google-labs-jules[bot] pearsantú. Tugann SC4 isteach luchtóirí criptithe AES agus geataithe óstach. |
| Deireadh mhí na Bealtaine 2026 | Baintear raon feidhme bunaidh an fhoilsitheora le npm; réitítear ainmneacha pacáiste mar áitchoimeádaithe folamha a choinníonn slándáil. |
| An tseachtain chéanna | Aistríonn an t-oibreoir go raon feidhme beagnach comhionann agus athfhoilsíonn sé an péist, lena n-áirítear an leagan bonneagair-anailíse. |
Is í an imirce an chuid ba chóir do chosantóirí a bheith sásta leis. Níor chuir baint an chéad raon feidhme deireadh leis an bhfeachtas ná níor chuir sé moill air fiú. Bhí raon feidhme comhthreomhar curtha ar stáitse ag an oibreoir cheana féin a raibh a ainm difriúil ón mbunleagan de charachtar amháin, agus lean sé ar aghaidh ag foilsiú laistigh den tseachtain chéanna. Tráth scríofa na scéala seo, tá an raon feidhme nua... ts-form-utils (leaganacha 1.0.0 go 1.1.0), a tionscadal-ts-lint (1.0.0 agus 1.1.0), agus an ceann neamhspleách cúntóir ts-enum (1.0.0) fós insuiteáilte.
Táscairí Comhréiteach
Deimhníodh na táscairí go léir thíos i gcoinne foinse an phacáiste.
| Cineál | Táscaire | nótaí |
|---|---|---|
| Líonra (C2) | aaronstack[.]com/jules-collect | Críochphointe bailiúcháin aonair trasna gach glúine; faigheann sé teileiméadracht JSON agus píosaí tarball stórais base64-gzip. |
| Líonra (seachfhreastalaí SSRF) | http://git@192.168.0.1:8080 | Aghaidh do chomhartha seachfhreastalaí git ró-scóipeáilte a úsáidtear chun teacht ar stórtha na heagraíochta sprice. |
| Líonra (néal) | metadata.google.internal/computeMetadata/v1kubernetes.default.svcstorage.googleapis.com/storage/v1/b | Ní úsáidtear ach ag an malairt bonneagair anailíse le haghaidh goid comharthaí agus taiscéalaíocht eitleáin rialaithe Kubernetes. |
| Céannacht | google-labs-jules[bot]161369871+google-labs-jules[bot]@users.noreply.github.com | Brionnaithe commit féiniúlacht an údair brúite isteach i mbrainsí príomhlíne na n-íospartach. |
| Comhad | lib/.perf.dat | Blob ualaigh criptithe le AES-256-CBC; IV stóráilte sna chéad 16 beart agus eochair atógtha go dinimiciúil i index.js. |
| Comhad | SECURITY-POC.md | Tite agus commitar ais i stórtha na n-íospartach leis an teachtaireacht chore: update dependency cache. |
| Comhad | scripts/postinstall.sh | Geataithe air $MALYSIS_ANALYSIS_ID; sainaithníonn sé an athraitheach atá dírithe ar bhonneagar anailíse. |
| Iompraíochta | os.hostname() seiceálacha le haghaidh devbox / ubuntu-fc-uvm | Geataíocht thimpeallacht bosca gainimh agus gníomhaire AI roimh dhíchriptiú agus forghníomhú ualaigh. |
| Iompraíochta | .jules/ agus /app/.jules léann eolaire | Spriocdhíriú follasach ar thimpeallachtaí oibre gníomhaire AI. |
| Iompraíochta | sc1-, sc3-, sc4-, s0-vmm-recon | Lipéid chéime teileamaitreachta sainmhínithe ag an oibreoir atá úsáideach le haghaidh braite agus fiaigh. |
| Sprioc scamall | rare-signer-437603-p9malysis-* buillí faoi thuairim buicéad | Aitheantóirí tionscadail GCP crua-chódáilte agus patrúin áirimh buicéad stórála atá leabaithe sa athraitheach bonneagair anailíse. |
| Cruth an phacáiste | Aghaidh phacáiste fóntais TS gan réimse stórais | Teimpléad feachtas comhsheasmhach: pacáistí fóntais TypeScript bréige le hualaí mailíseacha leabaithe iontu postinstall hooks nó curtha leis index.js. |




