forge-jsxy npm Infostealer: Mga IOC ug Giya sa Pag-ila

forge-jsxy: Ang npm Infostealer nga Kanunay Nag-ilis sa Ngalan Niini

TL; DR

Para sa gibana-bana nga duha ka bulan, usa ka npm infostealer ang mibalik ubos sa nagtuyok nga serye sa mga ngalan sa pakete samtang nagpadala sa halos wala mausab nga payload. Nagsugod kini sa dayag isip forge-jsxy, natawo forge-jsx3 / forge-jsx4 mga igsoon, unya giwagtang ang "forge" branding aron magpakaaron-ingnon nga imprastraktura sa developer — una zredis-typed, ug labing bag-o pinokio-redis.

Ang matag variant nagdala sa parehas nga internal toolchain: mga file nga ginganlan forge-jsx-explorer-*, ang usa ka relayPackageServe modyul nga nagserbisyo sa usa ka forge-jsxy-package.tgz, ug usa ka lig-on nga runtime nga gitago ubos sa usa ka tuldok-tuldok nga direktoryo aron kini mabuhi bisan pa sa pagtangtang sa npm package.

Ang kargamento mabasa materyal sa pitaka sa cryptocurrency ug mga kredensyal sa developer gikan sa host ug ipadala kini sa Discord webhooks, Ang HuggingFace Hub nag-upload, ug usa ka hardcoded nga C2 endpoint. Gi-install niini ang OS-level autostart aron kini modagan pag-usab pagkahuman sa pag-reboot, ug kini nagkuha sa clipboard, keyboard, ug kalihokan sa screen. Ang pinakabag-o nga variant, pinokio-redis, naghulagway sa iyang kaugalingon isip usa ka "Autodesk Forge" integration — usa ka deskripsyon nga walay kalabotan sa gibuhat sa code.

Ecosystemnpm
Klase sa kargamentotigkawat og impormasyon nga daghang ang-ang + ahente sa hilit nga pagkontrol (RAT)
Pangunang mga targetmga crypto wallet, mga extension sa browser wallet, mga kredensyal sa developer/cloud
Paglahutaytinago nga lig-on nga runtime + OS autostart (nakalahutay sa pagtangtang sa pakete)
ExfiltrationDiscord webhooks + relay, HuggingFace Hub, gi-hardcode nga C2 sa port 9877
Naobserbahan nga gilapdonMayo 2026 – Hulyo 2026 (nagpadayon)
Pinakabag-ong ngalanpinokio-redis:1.0.127

Anatomiya sa Pag-atake

Ang matag variant niini nga pamilya gi-install pinaagi sa parehas nga porma: usa ka pakete nga morag walay pulos sa panid sa listahan niini apan nagdeklarar og postinstall hook, busa ang payload modagan sa higayon nga ang package ma-install isip dependency. Ang ang kaw-it nagduso sa lima ka ang-ang nga kadena.

  • Yugto 1 — matuman. Ang install script nag-decode sa usa ka bundled, encoded blob ngadto sa usa ka set sa runtime scripts ug isulat kini ngadto sa usa ka tinago nga direktoryo ubos sa lokasyon sa config sa platform (ang mga bersyon sa forge-jsxy migamit og tuldok-tuldok nga .forge-jsxy/runtime/v / path). Tungod kay kini nga kopya anaa sa gawas sa node_modules, ang pagtangtang o pag-unpublish sa npm package dili makatangtang sa running agent.
  • Yugto 2 — magpadayon. Ang kadena nagrehistro og OS autostart entry aron ang ahente mo-relaunch pag-usab sa pag-reboot. Sa Windows, kini modagan pinaagi sa usa ka tinago nga PowerShell diagnostics script; ang proseso sa ahente gipagawas nga detached ug ang windowsHide gitakda aron walay console window nga makita.
  • Yugto 3 — paglikay. Ang runtime mosusi sa mga continuous-integration marker ug hilom nga mogawas kung makamatikod kini og CI environment, busa ang automated build sandboxes walay makita. Sa mga bersyon sa forge-jsxy, usa ka komento sa tinubdan nag-ingon nga ang usa ka makita nga forgeInstall field tinuyo nga gitangtang gikan sa package.json "tungod kay kana nga field makita sa npm" — ang operator tinuyo nga nagtago sa trigger metadata gikan sa public listing.
  • Yugto 4 — pagkolekta. Sa higayon nga modagan, ang ahente moani, sa usa ka agi:
  1. Materyal sa pitaka sa crypto. Ang usa ka gi-bundle nga secret_filename_patterns.json target list nagduso og filesystem sweep para sa wallet.dat, *.mnemonic /.seed / *.phrase nga mga file, keypair.json, Ethereum UTC– mga keystore, ug mga key store nga *.p12 / *.pfx / *.jks. Ang mga librarya sa derivasyon sa wallet (bip39, secp256k1, base58check, ug mga helper sa Solana) anaa sa bundle.
  2. Mga extension sa browser wallet. Ang chromiumExtensionDbHarvest module mobasa sa lokal nga extension-storage databases sa Chromium browsers, ang lokasyon diin gitipigan sa browser-based wallet extensions ang ilang vault data.
  3. Mga kredensyal ug mga sekreto. Ang ahente mo-scan sa shell history ug mga secret-bearing file ug mobasa sa mga developer/cloud credentials, dayon mo-encode sa mga HuggingFace credentials para sa upload.
  4. Live nga input. Ang mga sulod sa clipboard, input sa keyboard, ug mga screenshot kanunay nga gikuha.
  • Yugto 5 — pag-exfiltrateAng nakolekta nga datos mobiya sa host pinaagi sa tulo mga channel nga naglihok nga parallel: Discord webhooks (discordWebhookPost) ug usa ka Discord relay uploader nga makigsulti sa `discord.com/api/v10` (discordRelayUpload), mga upload sa HuggingFace Hub (hfUpload), ug usa ka naabot ang hardcoded nga C2 endpoint pinaagi sa port 9877. Usa ka relayPackageServe Ang module dugang nga nag-alagad sa forge-jsxy-package.tgz balik — parehas ra ngalan sa artifact sa matag pag-ilis og ngalan.

Ang importante nga punto sa istruktura mao nga ang mga yugto 1-3 modagan sa oras sa pag-instalar uban sa walay interaksyon sa tiggamit, ug ang yugto 1 nagbutang sa payload sa usa ka lugar sa pakete ang manedyer wala magsubay. Usa ka developer nga nakamatikod sa katingad-an nga pagsalig ug Ang pagpadagan sa npm uninstall magtangtang sa listahan apan dili sa ahente.

Ang payload dili usab dali basahon. Ang mga runtime script dili ipadala. sa klaro: ang usa ka lakang sa encode-deployment nagpabilin sa operational logic isip usa ka gi-encode nga blob nga molapad lang ngadto sa mabasa nga mga script sa higayon nga ang install chain gi-decode kini ngadto sa tinago nga runtime directory. Ang mga file nga makita naa sa listahan — ang nipis nga postinstall shim ug usa ka dist-materialization katabang — gamay ra ang gipadayag bahin sa kung unsa ang modagan sa katapusan. Kini nga naka-encode nga paghatud ang disenyo adunay masukod nga epekto sa triage: sa tibuok kinabuhi sa pamilya, daghang nakumpirma nga mga variant ang gi-iskor nga luwas pinaagi sa awtomatikong klasipikasyon, ug ang payload dili kaayo klaro mao nga nahunong dayon ang awtomatikong pagrepaso. Ang mga pamatasan nga naghatag og sayop sa pamilya makita lamang human sa pag-encode ang yugto gipalapdan, ug ang runtime gibasa direkta.

Timeline

Ang kargamento sa pamilya nagpabilin nga lig-on kaayo; unsa nga mga pagbag-o ang ngalan sa kahon. Ang arko nagsugod gikan sa open “forge” branding padulong sa nagtakuban isip walay kalabutan nga mga himan sa developer.

Petsa (2026)Pakete: bersyonMubo nga sulat
Mayo (sayo)forge-jsxy:1.0.81, :1.0.90Pinakaunang gikumpirma nga mga variant — RAT nga adunay AES-256-GCM-encrypted C2
Hinaot 19forge-jsxy:1.0.92 / 1.0.105 / 1.0.107 / 1.0.108Ang kampanya anaa sa aktibong pagmantala; ang 1.0.92 sa sinugdanan nasayop sa pag-label nga luwas ug gibaliktad sa pagrepaso sa kodigo
Ulahing bahin sa Mayoforge-jsx3 / forge-jsx4:1.0.122 / 1.0.123, zod-pinoMga ngalan sa pakete sa managsoon, parehas nga toolchain
Jun 4forge-jsxy:1.0.120Padayon; giklasipikar nga luwas sa modelo sa ML (usa ka sayop)
Hunyo 21–23forge-jsxy:1.0.121Ang set sa modyul wala mausab gikan sa 1.0.120
Jul 6zredis-typed:1.0.127Ang "forge" gitangtang gikan sa ngalan; mga barko gihapon forge-jsxy-package.tgz ug forgeAgent* mga yawe sa pag-configure
Jul 7pinokio-redis:1.0.127Parehas nga toolchain; bag-ong C2; naghulagway sa kaugalingon isip usa ka "Autodesk Forge" integration

Duha ka butang ang mipatigbabaw sa tibuok timeline. Una, ang bersyon nga numero 1.0.127 gigamit pag-usab nga verbatim sa zredis-typed ug pinokio-redis — ang pagngalan mausab apan ang build lineage dili ma-reset. Ikaduha, ang pagbalhin gikan sa mga ngalan nga "forge-*" dungan sa pagbalhin ngadto sa mga ngalan nga mabasa nga ordinaryo nga imprastraktura (redis, pinokio), nga nagpamenos sa posibilidad nga ang usa ka developer makabasa sa ngalan ug magduha-duha.

Mga Timailhan sa Kompromiso

Ang mga IOC sa ubos wala nay porma. Ang C2 host nagtuyok taliwala sa forge-jsxy line. ug ang pinakabag-ong variant samtang gipadayon ang parehas nga port.

timailhanbiliNakita sa
C2 nga katapusan nga punto212.193.3[.]61:9877pinokio-redis:1.0.127
C2 nga katapusan nga punto79.108.162[.]160:9877linya sa forge-jsxy, zredis-typed:1.0.127
Kanal sa Exfildiscord.com/api/webhooks/… (post sa webhook)tanang variant
Kanal sa Exfildiscord.com/api/v10 (pag-upload sa relay)tanang variant
Kanal sa ExfilPag-upload sa HuggingFace Hubtanang variant
Gisilbi nga artifactforge-jsxy-package.tgz (pinaagi sa relayPackageServe)tanang variant
Mga file sa ToolchainchromiumExtensionDbHarvest, discordRelayUpload, discordWebhookPost, hfUpload, encode-hf-credentials, forge-jsx-explorer-*tanang variant
Lista sa targetsecret_filename_patterns.json (wallet.dat, .mnemonic/.seed/.phrase, keypair.json, UTC--, .p12/.pfx/*.jks)tanang variant
Natago nga oras sa pagdagantuldok …/.forge-jsxy/runtime/v<version>/ agianan sa config-dirlinya sa forge-jsxy
Pagpadayon sa Windowsnatago nga PowerShell "forge diagnostics" autostart scripttanang variant
I-install ang gatilyopostinstall hook nga naggamit ug dist-materialization script chaintanang variant

Ang labing lig-on nga detection signal dili usa ka host o webhook — kadtong i-rotate — apan ang mga ngalan sa file sa toolchain ug ang forge-jsxy-package.tgz artifact, nga nagpadayon nga verbatim sa matag pag-ilis sa ngalan.

Pag-ila ug Naobserbahan nga Kinaiya

Ang mga pakete gipatik ubos sa labaw sa usa ka npm account. Ang forge-jsxy linya nga gigamit sa tigmantala nga jacksonkaandorp2 (jacksonkaandorp2@outlook[.]com); ang pinakabag-o nga variant sa pinokio-redis gipatik ni donimique (donimiqueakers@gmail[.]com). Walay account nga nagdala og napamatud-an nga email o usa ka nalambigit nga tinubdan sa repositoryo. Ang through-line sa mga account mao ang toolchain, dili ang identidad sa tigmantala — parehas nga mga ngalan sa module, parehas gisilbihan og .tgz, ug ang parehas nga disenyo sa exfil mobalik bisan kinsa pa ang nagpatik.

Daghang maobserbahan nga mga pamatasan ang nagpakita sa tinuyo nga pagtago imbes nga aksidente nga sobra nga pagkolekta:

Ang runtime gibutang sa gawas sa node_modules sa usa ka tinago nga direktoryo, aron kini mabuhi og dugay kaysa sa pakete nga naghatud niini.

Mo-bail out ang ahente kon maka-detect kini og CI environment, nga molimit sa exposure sa automated analysis sandboxes.

Ang proseso sa ahente gilunsad nga gilain ug gitagoan sa bintana sa mga bersyon sa forge-jsxy, usa ka komento ang naglambigit sa pagtangtang sa usa ka makita nga install field ngadto sa maong field nga "makita sa npm."

Ang mga deskripsyon sa publikong pakete walay kalabotan sa code — ang pinokio-redis gipresentar isip usa ka "Autodesk Forge" integration.

Usa ka balik-balik nga kakulangan sa pag-ila ang angay nga matikdan para sa mga tigpanalipod nga nagsalig sa awtomatik nga klasipikasyon: daghang nakumpirma nga mga variant niini nga pamilya ang gi-iskor nga luwas sa usa ka ML classifier sa wala pa gitul-id sa pagrepaso sa code ang hukom. Ang lig-on nga mga elemento nga mahimong ibase sa usa ka tigsusi — ang oras sa pag-instalar chain, ang tinago nga runtime, ang mga ngalan sa file sa toolchain — mao gyud kana nga nakalahutay sa mga pagbag-o sa ngalan.

Among gihulagway ang nahisgotan sa ibabaw isip naobserbahan nga pamatasan. Wala namo ipasangil ang kampanya sa bisan kinsang ginganlan nga aktor, ug wala kami'y giangkon bahin sa operator identidad o mga tumong nga labaw sa gipakita sa kodigo ug imprastraktura.

Epekto, Mga Uso ug Giya sa Tigpanalipod

Kinsa ang nabuyagyag. Ang koleksyon gituyo gyud para sa mga developer mga makina: mga wallet ug keystore sa cryptocurrency, mga extension sa browser wallet, kasaysayan sa shell, ug mga kredensyal sa cloud/serbisyo. Bisan kinsa nga mag-install og apektadong pakete — direkta o isip usa ka transitive nga pagsalig — atol sa bintana nga kini buhi naa sa sakup, ug ang disenyo sa pagpadayon nagpasabut sa ang pagkaladlad dili matapos kung makuha ang pakete.

Ngano nga importante ang pagkamakanunayon. Tungod kay ang yugto 1 nagkopya sa payload ngadto sa usa ka tinago nga runtime directory ug stage 2 registers autostart, ang naandan remediation instinct (i-uninstall ang dili maayo nga dependency, i-delete ang node_modules, pag-reinstall) dili mopapahawa sa ahente. Ang tubag sa insidente kinahanglan nga mangita sa out-of-tree runtime ug ang autostart entry, dili lang ang package.

Ang uso. Kini nga pamilya nagpakita sa usa ka sumbanan nga angayan bantayan: usa ka kargamento nga lig-on ug hamtong, nga giputos sa usa ka sapa sa mga disposablemga ngalan sa pakete nga mobalhin palayo sa bisan unsang ngalan nga gihimo sa miaging pagtangtang mailhan, ngadto sa mga ngalan nga mabasa nga ordinaryo nga imprastraktura. Gibase sa ngalan ang mga blocklist ug reputasyon sa tigmantala dali nga nagkatigulang tungod niini; pamatasan- ug ang mga signal nga gibase sa artifact wala.

Para sa mga developer ug mga konsumidor

Isipa ang mga script sa oras sa pag-install isip pangunang risgo. I-install nga dili aktibo ang mga script kon mahimo ug ribyuha ang bisan unsang dependency nga nagdeklarar og pagkahuman sa pag-instalar. Susiha ug susiha ang mga transitive dependencies; kini nga klase sa malware dali ra moabot pinaagi sa usa ka sub-dependency sama sa direkta.

Sa usa ka gidudahang host, pangitaa lapas sa package: pangitaa ang usa ka tinago nga runtime directory sa platform config location, usa ka wala damha nga autostart entry, ug mga outbound nga koneksyon ngadto sa Discord webhook o :9877 nga mga endpoint.

Hunahunaa nga ang bisan unsang wallet seed phrase, keystore, o credential nga naa sa apektadong host atol sa exposure window nakompromiso, ug i-rotate.

Para sa mga rehistro ug mga tigpanalipod

Alerto sa mga lig-on nga artifact (forge-jsxy-package.tgz, ang forge-jsx-explorer-* / chromiumExtensionDbHarvest / discordRelayUpload mga ngalan sa file) imbes sa ngalan sa pakete, nga mausab.

I-flag ang kombinasyon sa istruktura nga gisaligan sa pamilya — usa ka postinstall nga nag-materyalisar sa mga script ngadto sa usa ka tinago nga config-dir path dugang usa ka OS awtomatikong pagsugod sa pagparehistro — independente sa espesipikong mga string nga nalambigit.

Ang ngalan sa pakete nausab labing menos upat ka beses; ang kahon sa sulod wala pa. Ang pag-ila nga gibase sa gibuhat sa code milungtad og labaw pa sa matag pag-usab sa label hangtod karon.

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