TL; DR
Një botues i vetëm i npm, ddjidd5640, ka ndërtuar një katalog me 22 paketa me mjete sigurie të rreme Web3 nën marka të fabrikuara si p.sh. Gilda e Sigurisë së Kriptos, Kolektivi i Auditimit Web3dhe Aleanca e Sigurisë DeFi.
Paketat nuk duken si një fushatë e thjeshtë typosquat. Ato duken si një ekosistem sigurie i markës, i mbështetur nga organizata të zbrazëta GitHub që përputhen dhe emra bindës mjetesh MCP si p.sh. search_leaked_credentials, validate_chain_keydhe deploy_safe.
Fushata ndahet në dy familje ngarkesash aktive dhe një tranch i fjetur.
Varianti A përmban 8 paketa për mbledhjen e kredencialeve. Një skript pas instalimit lexon dyqanet sekrete lokale, ndërsa një i përfshirë scanner.js ekzekutohet kur një agjent i IA-së thirr mjetet MCP të paketës, duke kërkuar çelësa portofolësh, mnemonikë BIP39, tokena API dhe kredenciale të tjera.
Varianti B përmban 5 dropper binarë të bazuar në Pinggy. Këto paketa marrin dhe ekzekutojnë një ngarkesë të largët gjatë post-installimit, me foundry-deploy-helper:1.8.96 duke hedhur një ekzekutues të shkëputur në /tmp/.node-cache.
Varianti C përmban 9 paketa joaktive pa ngarkesë të dukshme pas instalimit, por me të njëjtin botues, model marke dhe emërtim të fokusuar në Web3.
Vetëm 8 nga 22 paketat ishin shënuar kudo që mund të shihnim; 14 të tjerat ishin ende aktive në npm në kohën e analizës.
Ashpërsia: kritike.
Sulmi: Dy ngarkesa në një gardërobë
Garderoba është marka. Hapni README të crypto-credential-scanner dhe do t'ju thuhet se është një skaner kredencialesh i ndërtuar nga Crypto Security Guild. Hapni faqen e defi-threat-scanner dhe do t'ju thuhet se është një mjet i DeFi Security Alliance. Hapni web3-secrets-detector dhe do të shihni Web3 Audit Collective. Asnjë nga këto kolektive nuk ekziston si organizatë. Ato ekzistojnë si organizata bosh në GitHub, qëllimi i vetëm i të cilave është të popullojnë hiperlidhjen "autor" të faqes npm.
Varianti A: para-fluturimi pas instalimit dhe akti kryesor në kohën e MCP-së
Të 8 paketat Variant-A ndajnë të gjitha një ngarkesë me dy faza — një fazë para-instalim pas instalimit që mbledh të dhënat kredenciale që janë tashmë në disk në tekst të thjeshtë, dhe një fazë ekzekutimi që aktivizohet sapo një agjent i IA-së thërret një nga mjetet MCP të paketës.
“Faza 1, para-fluturimi” Ndodhet brenda rreshtit në package.json si një node -e one-liner. Hap shtatë skedarë pikash të njohur mirë dhe dërgon 200 bajtët e parë të secilit në C2:
200 bajt të ~/.ssh/id_ed25519 nuk do t'i japë sulmuesit çelësin tuaj privat më vete, por do t'i japë emri i skedarit, komenti dhe rreshtat e parë të kokës PEM — mjaftueshëm për të konfirmuar se çfarë lloj çelësi ndodhet atje, gjë që është e mjaftueshme për të nisur një fazë pasuese. 200 bajt të ~/.env zakonisht janë më se të mjaftueshme për të zbuluar një token API të plotë. 200 bajt të ~/.git-kredencialet zakonisht janë një grup i plotë i tokenëve OAuth.
“Faza 2, akti kryesor”, Është skaner.jsNgarkohet nga paketa indeks.js dhe thirret nga brenda trajtuesit të kërkesave MCP në momentin që një agjent i IA-së thërret ndonjë nga mjetet e reklamuara. Skedari është i njëjti bajt-për-bajt në të 8 paketat Variant-A (b461106e47a1f5966159cd6e92541505), dhe është i sinqertë për atë që bën. Blloku hapës i komenteve thotë, fjalë për fjalë:
| javascript // wallet-scanner.js — skaner aktiv i integruar për paketat MCP // Ekzekutohet në heshtje kur agjenti i IA-së thërret ndonjë mjet MCP, skanon mjedisin për // portofolet/çelësat // Përdor vetëm programet e integruara të Node.js, pa varësi të jashtme |
Ajo që vijon është një shëtitje rekursive, thellësia 3, e:
vetë drejtoria kryesore
...filtrim për emra skedarësh që përmbajnë ndonjë nga dyqan çelësash, portofol.json, portofolin.dat, sekret, fara.txt, metamask, fantazmë, rabi, portofol besimi, Coinbase, çelës privat, menemonike, çelës_secret, api_key — dmth., një listë e akorduar me dorë e çdo vendi ku një përdorues kriptovalutash mban një çelës. Për çdo përputhje, skedari hapet dhe skanohet kundrejt gjashtë kodeve të rregullta:
| Tipi | Model | Çfarë kap |
|---|---|---|
| çelës_privat | (?:0x)?[a-fA-F0-9]{64} | Çelësat privatë të Ethereumit dhe sekretet gjenerike heksadecimale 32-bajtëshe. |
| menemonike | \b([a-z]+\s+){11,23}[a-z]+\b | Frazat fillestare mnemonike BIP39 që variojnë nga 12 deri në 24 fjalë. |
| api_key | (api[_-]?key\|API_KEY)\s*[:=]\s*["']?([A-Za-z0-9_\-]{20,}) | Shenjat gjenerike të API-t dhe vlerat e kredencialeve të integruara në skedarët e konfigurimit. |
| sekret | (?:secret\|private).{0,10}[:=]\s*["']?([A-Za-z0-9+/=]{20,}) | Sekretet dhe vlerat private që ruhen zakonisht në formatet e konfigurimit YAML, JSON dhe INI. |
| adresa_eth | 0x[a-fA-F0-9]{40} | Adresat e portofolit Ethereum përdoren për të identifikuar viktimat dhe për të marrë gjurmët e gishtërinjve. |
| Fjalëkalimi | (?:PASSWORD\|PASSPHRASE)\s*=\s*["']?(\S{4,64}) | Fjalëkalimet e stilit të eksportimit të shell-it dhe variablat e mjedisit të fjalëkalimeve. |
Pastaj scanner.js lexon gjashtë skedarë të tjerë të plotë — deri në 500 bajt secili prej ~/.env, ~/.bash_history, ~/.zsh_history, ~/.npmrc, ~/.gitconfig, ~/.git-credentials — dhe fshin process.env për çdo variabël emri i të cilit përmban çelës, sekret, token, fjalëkalim, privat, mnemonic, portofol ose seed. Së fundmi, ai thërret execSync('whoami') plus os.hostname() dhe process.cwd() për të etiketuar dump-in me identitetin e viktimës. I gjithë ngarkesa, plus deri në 100 gjetje individuale, POSTohet si një objekt i vetëm JSON.
Destinacioni exfil nuk është i koduar drejtpërdrejt. Paketa e merr atë në kohën e ekzekutimit nga:
https://ddjidd564.github.io/defi-security-best-practices/config.json
— një dokument i GitHub Pages që kontrollon sulmuesi. Konfig.json aktual kthen
Nëse kjo tërheqje dështon, skaner.js bie përsëri në të njëjtën webhook.site URL e koduar si konstante. Ky indirekt është e vetmja pjesë e sofistikimit operacional në fushatë: i lejon sulmuesit të rrotullojë objektivat exfil pa e ribotuar paketën dhe e mban URL-në aktuale të kolektorit jashtë objektit npm, gjë që e bën zbulimin e bazuar në nënshkrim më të vështirë.
Varianti B: një tunel Pinggy, një variant binar dhe një variant i vazhdueshëm
Pjesa tjetër e drejtpërdrejtë është shumë më e vogël - pesë paketa - dhe shumë më pak e zgjuar. Autori e hoqi tërësisht kostumin MCP. Këto paketa pretendojnë të jenë ndihmëse konfigurimi për mjetet legjitime të Ethereum dhe Solana (ndihmësi-i-konfigurimit-të-tartufit, agregues-i-çmimit-të-zinxhirit-të-çmimit, ofruesi i ganache-cli, ndihmës-i-pda-së-solana, ndihmës-i-vendosjes-së-foundry-sëNgarkesa është një e vetme https.get-and-Exec vijë në post-instalim
C2 është falas Pingi tunel — një shërbim gjenerik tunelimi për zhvilluesit që sulmuesi po e përdor si C2 të përkohshëm. Paketa shkarkon çfarëdo që kthen tuneli dhe e fut atë në child_process.execNuk ka kontroll integriteti, nuk ka nënshkrime, nuk ka mbrojtje të fazës së dytë. Çfarëdo që tuneli i operatorit po i shërben sot, është ajo që funksionon.
Paketa më agresive, ndihmës-i-vendosjes-së-foundry-t:1.8.96, zëvendëson inline https.get me përdridhem dhe një truk këmbënguljeje:
Varianti C: një fasadë e lëmuar, pa detonator (ende)
Nëntë paketat e mbetura — verifikuesi-i-rezervës-së-portofolit, skanues-i-sigurisë-së-env-së, set mjetesh për themelim (një gabim i qëllimshëm shtypi i Foundry), solna-web3 (një gabim tipik i Solanës), kontrollues sigurie për portofolin, plugin-i-profiler-it-të-gazit-hardhat, ethers-multicall-utils, auditori-defi-env, etherjs-utils — kam pa skript pas instalimit dhe asnjë exfil i dukshëm në shikim të parë. Ata ndajnë botuesin, frontet e markës, modelin e emërtimit Web3 dhe në disa raste standardin identik README me variantet aktive. Ne po i trajtojmë ato si pjesë të së njëjtës fushatë dhe kemi rekomanduar heqjen parandaluese, por ende nuk i kemi numëruar plotësisht shkaktarët e tyre të kohës së ekzekutimit. Pjesa e fjetur mund të jetë një pikëmbështetje që operatori po e rezervon për një ndryshim në të ardhmen - i njëjti model që PhantomBot përdori në mesin e majit, ku operatori ndërroi një vjedhës kredencialesh me një rekrut të botnet pa e ribotuar emrin e paketës.
Afati kohor dhe Katalogu
Paketa më e hershme e datuar në fushatë është me versionin më të ulët: validuesi i çelësit zinxhir: 0.2.3 defi-env-auditor:0.3.2 duken si pika të hershme eksperimentale. Në kohën kur botuesi arriti ndihmësi-i-konfigurimit-të-tartufit:1.7.0 ndihmës-i-vendosjes-së-foundry-t:1.8.96, inflacioni i versionit ishte i qëllimshëm — duke zgjedhur numra që lexoheshin si prejardhja e një pakete të vendosur. Asnjë nga 22 nuk ka ndonjë histori të mëparshme legjitime nën atë emër të saktë në npm.
Katalogu i plotë, i grupuar sipas variantit:
### Varianti A — mbledhës kredencialesh (postinstalimi + MCP-time scanner.js, MD5 b461106e47a1f5966159cd6e92541505)
| paketë | Version | I sinjalizuar në Burimet e Zbulimit |
|---|---|---|
mnemonic-safety-check | 0.5.2 | po |
solidity-deploy-guard | 0.4.4 | po |
web3-secrets-detector | 1.2.6 | po |
eth-wallet-sentinel | 1.0.9 | po |
deployment-key-auditor | 0.7.3 | po |
defi-threat-scanner | 2.1.2 | po |
crypto-credential-scanner | 2.0.2 | po |
chain-key-validator | 0.2.3 | po |
### Varianti B — Tuneli Pinggy https.get → exec (pa dukshmëri të burimit të zbulimit para këtij raporti)
| paketë | Version | Shije pas instalimit |
|---|---|---|
truffle-config-helper | 1.7.0 | https.get → exec(stdout) |
chainlink-price-feed-aggregator | 1.1.12 | https.get telemetry call |
ganache-cli-provider | 1.7.51 | https.get telemetry call |
solana-pda-helper | 1.0.46 | https.get telemetry call |
foundry-deploy-helper | 1.8.96 | curl + chmod +x /tmp/.node-cache & |
### Varianti C — në gjendje joaktive, dyshohet për shkaktues në kohën e ekzekutimit (nuk ka dukshmëri të burimit të zbulimit para këtij raporti)
| paketë | Version | Shënimet |
|---|---|---|
wallet-backup-verifier | 1.0.1 | |
env-security-scanner | 1.6.0 | |
foundy-toolkit | 1.5.79 | typosquat i shkritores |
solna-web3 | 1.5.98 | typosquat i solanës |
wallet-security-checker | 1.0.3 | |
hardhat-gas-profiler-plugin | 1.7.86 | |
ethers-multicall-utils | 1.3.15 | |
defi-env-auditor | 0.3.2 | |
etherjs-utils | 1.0.39 |
Kolonat Variant-A dhe Variant-B nuk zgjidhen rastësisht. Emrat Variant-A shiten të gjithë si mjetet e auditimit të sigurisë — “kontroll sigurie”, “deploy guard”, “detektor sekretesh”, “rojtar portofolesh”, “auditor çelësash”, “skaner kërcënimesh”, “skaner kredencialesh”, “validator çelësash zinxhir”. Ato synojnë një zhvillues ose agjent të inteligjencës artificiale që kërkon një mjet për të vlerësuar sigurinë e një projekti Web3. Emrat Variant-B shiten të gjithë si ndihmës për ndërtimin dhe vendosjen për të njëjtin ekosistem Web3 — Truffle, Chainlink, Ganache, mjetet PDA Solana, Foundry. Ndarja pasqyron modelin mendor të një zhvilluesi normal Web3 të "fazës së auditimit" kundrejt "fazës së vendosjes". Cilado fazë që të arrini, botuesi ka përgatitur një kurth për të.
Treguesit e Kompromisit
Rrjeti dhe skedarët
| IOC-të | variant | 목적,en |
|---|---|---|
https://ddjidd564.github.io/defi-security-best-practices/config.json | A | Zgjidhës dinamik i webhook-ut i pritur përmes GitHub Pages. |
https://webhook.site/8d334534-1c63-4f4f-a0d7-95c446c8b233 | A | Pika fundore e kolektorit të nxjerrjes aktuale, gjithashtu e integruar si një rezervë. |
rqnyz-2605-7280-7--2000-c51.run.pinggy-free.link/npm/-/binary/telemetry | B | Tuneli Pinggy përdoret për të shpërndarë ngarkesa binare të largëta. |
scanner.js MD5 b461106e47a1f5966159cd6e92541505 | A | Ngarkesë identike e skanerit e ripërdorur në të 8 paketat Variant-A. |
/tmp/.node-cache | B | Skeda ekzekutuese e shkëputur u hodh poshtë nga foundry-deploy-helper:1.8.96. |
Botues
- emri i përdoruesit npm: ddjidd5640
- email: 1623682356@qq.com (i paverifikuar)
- Email dhe SCM verifikim: asnjë
- Pako në llogari: 22, të gjitha të listuara në katalogun më sipër
- Aktiviteti më i hershëm i dukshëm: validuesi i çelësit zinxhir: 0.2.3 (Varianti A)
- Aktiviteti i fundit i dukshëm: chain-key-validator:0.2.3 dhe crypto-credential-scanner:2.0.2 (të dyja brenda 24 orëve para këtij shkrimi)
Fasadat e markës (të përdorura në autor / README / GH false org)
- “Gilda e Sigurisë së Kriptos” — mbështetur nga një org bosh në GitHub cryptosec-guild
- “Web3 Audit Collective” — mbështetur nga një org bosh në GitHub w3audit
- “Aleanca e Sigurisë DeFi” — e mbështetur nga një org bosh në GitHub siguri e sigurt
- Llogaria referuese GH ddjidd564 — strehuesi i config.json të dynamic-webhook
sjelljes
- nyja -e leximi i ndonjërit prej tyre pas instalimit .ssh, .ethereum, .bitcoin, .zili, .bash_historia, .zsh_history, .git-kredencialet me .slice(0, 200) dhe duke u bashkuar me | ndarësit janë një gjurmë gishtash pothuajse unike për Variant A.
- Importimi ./scanner.js nga një paketë që regjistrohet si një MCP server me mjete të emëruara kredencialet e_zbuluara_të_kërkimit ose foljet e "auditimit të sigurisë" të formuluara në mënyrë të ngjashme janë një konfirmim i Variant-A.
- Një nyje -e postinstall që merr nga çdo host *.run.pinggy-free.link dhe e dërgon përgjigjen në child_process.exec është një konfirmim i Variant-B pavarësisht nga mbështjellësi.
Atribuimi dhe Motivimi
Ka mjaftueshëm për një gjurmë gishtash të pjesshme të botuesit dhe jo aq sa duhet për një identifikim të vërtetë. Email. 1623682356@qq.com është një adresë postare QQ — email falas në internet i Tencent, popullor në Kinën kontinentale — dhe pjesa numerike lokale është ID-ja e përdoruesit QQ; ne e trajtojmë këtë vetëm si sinjal të butë, pasi adresat në format QQ regjistrohen në mënyrë të thjeshtë. Llogaria npm nuk ka zbulim dyfaktorësh, nuk ka email të verifikuar, nuk ka email të verifikuar SCM lidhja. Triada e markave “Crypto Security Guild” / “Web3 Audit Collective” / “DeFi Security Alliance” është sajuar me shumicë — asnjëra prej të trejave nuk ekziston jashtë kësaj fushate — dhe organizatat mbështetëse GitHub janë guaska boshe të krijuara për të populluar lidhjet e faqeve npm.
Dy modele ia vlen të përmenden, sepse ato shfaqen në fushata ngjitur. I pari është parafabrikimi i markës si provë socialeOperatori nuk zgjodhi emrat ekzistues të projekteve për t'i shtypur; ata krijuan një narrativë të tërë besimi nga e para, duke e ditur se një Ndërtimi i agjentit të inteligjencës artificiale pipeline ose një zhvillues i nxituar që skanon faqen e npm do të përputhet me modelin "duket si një organizatë sigurie" në vend të "është një organizatë sigurie". Kjo është e njëjta qasje për të cilën paralajmëroi literatura e slopsquatting - paketa të akorduara me llojin e emrit që do të përdorte një LLM. shpik Nëse kërkohet një mjet sigurie Web3, i përgatitur mjaftueshëm mirë që LLM të mos e verifikojë dy herë. Mbledhje këmbësh është termi i shpikur së fundmi për paketat keqdashëse, emrat e të cilave përputhen me emrat e zëvendësuesve që LLM-të halucinojnë kur një paketë autoritare nuk ekziston; kjo fushatë është kushëriri i saj më agresiv, ku operatori gjithashtu sajon organizatën së cilës do t'i përkiste zëvendësuesi.
Modeli i dytë është Aktivizimi në kohën e MCP-sëDeri në atë kohë skaner.js ekzekutohet, instalimi ka përfunduar dhe zhvilluesi ka vazhduar. Shkaktari është agjenti i inteligjencës artificiale që thërret një mjet — kredencialet e_zbuluara_të_kërkimit, në rastin e Variant-A — gjë që agjenti do ta bëjë absolutisht, sepse kjo është e gjithë arsyeja pse iu dha paketa. Puna keqdashëse ndodh gjatë mirë pjesë e rrjedhës së punës, kur zhvilluesi ka më shumë gjasa të jetë duke parë asistentin e tij të inteligjencës artificiale të ketë sukses në një detyrë që ai kërkoi. Është një ndryshim i vogël në sjellje nga "exfil on" më i vjetër. instaloni npm"model, dhe shmang me kujdes sandboxing-un në kohën e instalimit.
Nuk po përmendim një aktor kërcënimi. Sinjalet (email QQ, një llogari e vetme, shpërthim njëditor me 22 paketa, dy pirgje paralele C2) janë po aq të qëndrueshme me një operator të përhershëm, një ekip të vogël ose një nga ekipet e përmbytjes së paketave që kanë qenë të dukshme në telemetrinë npm gjatë viteve 2025–2026. Ajo që ne mund Ajo që themi është se ky operator ka një ekosistem të qartë të preferuar (Ethereum + Solana + mjetet Foundry/Hardhat), një viktimë të qartë të preferuar (zhvilluesit e Web3 dhe agjentët e IA-së që punojnë në projektet Web3) dhe një model të qartë të preferuar të qëndrueshmërisë (shkaktar i kohës së ekzekutimit në kohë MCP plus një rezervë binar e shkëputur).
Ndikimi, Trendet dhe Çfarë Mund të Bëjnë Mbrojtësit
Paralajmërimi ynë i hershëm pipeline kapur 8 e 22 paketa gjatë gjithë kohëzgjatjes së fushatës — gjashtë në spastrimin fillestar dhe dy të tjera që mbërritën më vonë po atë ditë gjatë kalimit të grumbullimit të fushatës. 14 paketat e tjera ishin aktive në npm për ditë të tëra. pa u shfaqur kurrë në asnjë nga burimet e zbulimit që monitorojmë, dhe në kohën e shkrimit mbeten të instalueshme. Ky boshllëk ka rëndësi sepse:
- Varianti A është i heshtur gjatë instalimitLeximi i dotfile ndodh, por bulk exfil aktivizohet vetëm kur një agjent i IA-së thirr mjetet MCP të paketës. A standard sandbox-i i vëzhgimit pas instalimit do të shohë nyja -e bllok dhe vendos se është i vogël dhe me sa duket inerte.
- Varianti B është një rresht i vetëm. Nuk ka asgjë nga e cila një klasifikues i programeve keqdashëse mund të mësojë — asnjë ngatërrim, asnjë ngarkesë e koduar, asnjë domen me pamje të dyshimtë. Tuneli Pinggy është një shërbim legjitim për zhvilluesit. E vetmja gjë e dyshimtë është se një "ndihmës konfigurimi" duhet të telefonojë fare në shtëpi.
- Varianti C duket plotësisht i pastër. Nuk ka instalim hooksNga çdo sinjal statik, është normale.
Një listë e shkurtër kontrolli për mbrojtësit për epokën e mjeteve MCP
Tre veprime konkrete që do ta kishin kapur këtë fushatë më herët:
- Pesho botuesin, jo paketën. Njëzet e dy paketa nën një llogari QQ-mail njëvjeçare pa SCM Verifikimi është një sinjal më i ndritshëm se çdo veçori për paketë. Fluksi ynë i paralajmërimit të hershëm kapi paketat e para sepse gjurmët e gishtave të botuesit u dalluan - duke rekomanduar një rezultat të reputacionit të botuesit që çdo klasifikues i sigurt, jobindës ose me programe keqdashëse për paketë mund ta zvogëlojë.
- Trajtojini indikacionet e konfigurimit dinamik si keqdashëse derisa të provohet e kundërta. Një paketë që zgjidh pikën e saj fundore dalëse në kohën e ekzekutimit nga një dokument i palës së tretë (GitHub Pages, GitHub Gist, Pastebin, objekt S3, kudo tjetër) nuk ka asnjë arsye legjitime për ta bërë këtë për telemetrinë. Pikat fundore reale të telemetrisë janë të koduara dhe të dokumentuara.
- Auditoni paketat e serverit MCP sipas sipërfaqes së tyre të reklamuar të mjetit. Variant-A paketon të gjitha mjetet reklamuese të emëruara
search_leaked_credentials,validate_chain_key,deploy_safe, dhe folje të ngjashme "auditimi". Një host MCP që shfaq një mjet, përshkrimi i të cilit pretendon të skanojë drejtoritë e projektit për kredencialet, duhet të kërkojë një regjistrim të qartë të operatorit përpara se agjenti ta thërrasë atë në një bazë të vërtetë kodi. Qëllimi i MCP është se cikli i agjentit nuk ka asnjë mënyrë për të ditur nësesearch_leaked_credentialsështë një kërkim kredencialesh ose është një nxjerrës kredencialesh.
Për zhvilluesit që mund të kenë instaluar tashmë një nga 22 paketat: supozojmë çdo çelës teksti të thjeshtë në ~ / .ssh, ~/.ethereum, ~/.bitcoin, ~/.solana, ~/.envose ~/.git-kredencialet është i kompromentuar, rrotulloni çdo kredencial emri i të cilit përputhet me listën e filtrave të variablave env më sipër, dhe në Linux/macOS kontrolloni për një skedar të ekzekutueshëm në /tmp/.node-cache (dhe çdo proces jetim i filluar prej tij). Riinstalimi i versionit legjitim të mjeteve të imituara (shkritore, zhardhok këpurdhash, kapelë e vështirë, ganache, etj.) nuk e heq skedarin binar të hequr.
Tranch-i i fjetur i Variant-C është pjesa e kësaj historie që plaket më keq. Nëntë paketa me një profil instalimi të pastër dhe një botues të vendosur janë pikërisht lloji i inventarit që një operator mban në rezervë. Nëse ato shpërthejnë më vonë - siç bëri PhantomBot kur... axois-utils Ripaketimi u shndërrua nga vjedhja e kredencialeve në një rekrut të botnet-it — ata do të shpërthejnë kundër çdo konsumatori të regjistrit që ka fiksuar një paketë Variant-C midis ditës së sotme dhe heqjes. Fiksimi i një pakete keqdashëse sipas versionit nuk ju mbron nga një botues që kontrollon çdo version.
Referencat
- [faqja e botuesit npm për ddjidd5640](https://www.npmjs.com/~ddjidd5640) — 22 paketa të listuara aktualisht në këtë llogari. Burim autoritar për katalogun në kohën e shkrimit.
- [faqja e paketës npm për skaner-kredencialesh-kripto](https://www.npmjs.com/package/crypto-credential-scanner) — shembull i një objekti Variant-A; README, historiku i versioneve dhe lidhjet e autorit janë të dukshme këtu.





