Shai hulud - mga pakete ng npm - pag-atake sa supply chain

Shai-Hulud: Paliwanag sa npm Packages Worm

Tl; DR

Noong Setyembre 14, 2025, natukoy ng mga mananaliksik Shai Hulud, isang bulate na nagpaparami sa sarili na nakatago sa loob mga pakete ng npm, ginagawang isang buong-saklaw ang isang nakagawiang pag-update ng dependency supply chain na atakeUnang nakita sa @ctrl/tinycolor pakete ni Daniel dos Santos Pereira, kinukuha ni Shai-Hulud ang mga sikreto, inilalabas ang mga ito sa pamamagitan ng mga repo at workflow ng GitHub, at muling inilalathala ang sarili nito sa buong registry gamit ang mga ninakaw na kredensyal. Sa loob ng ilang araw, ang bilang ng mga nahawaang pakete ay tumaas mula dose-dosenang hanggang daan-daan, na nagpapatunay na Shaihulud ay hindi lamang isang trojan kundi isang worm na idinisenyo upang awtomatikong kumalat sa buong npm ecosystem.

Epekto: Nasa panganib ang sinumang developer o CI runner na nag-i-install ng mga pampublikong npm package.

Mga agarang aksyon: harangan ang mga kilalang bersyon, lumipat sa mga lockfile-only na pag-install, paikutin ang mga npm at GitHub token, i-audit ang mga workflow, at subaybayan ang mga Indicator of Compromise (IoC).

Ano ang Mangyayari?

Ang Pag-atake ng supply chain ng Shai-Hulud sa mga pakete ng npm ay isa sa mga pinakanakakagambalang insidente sa mga nakaraang panahon. Hindi tulad ng mga nakahiwalay na trojan, ang worm na ito ay humahalo pagnanakaw ng kredensyal, awtomatikong pag-exfiltration, at self-replicationDahil dito, ang tagal ng impeksyon ay lumiit mula linggo hanggang oras na lamang.

Para sa mga DevOps team, malinaw ang aral: kung ang bawat pag-install ay kayang magpatupad ng code, ang bawat dependency update ay isang potensyal na breach point.

Posibleng Paunang Vector at Targeted na mga Kredensyal

Maagang pagsusuri nagpapahiwatig na ang pag-atake ay malamang na nagsimula sa mga ninakaw na kredensyalHalimbawa, ang mga kampanyang phishing na nanggagaya sa npm login o maaaring nakuha ng mga MFA prompt ang mga developer token. Nang makuha ng mga attacker ang unang foothold na iyon, kumalat ang worm sa pamamagitan ng pag-embed ng sarili nito sa mga npm package at pagnanakaw ng higit pang mga sikreto mula sa:

  • mga file ng pag-configure ng npm gaya ng .npmrc, kadalasang naglalaman ng mga token ng pag-publish.
  • Mga variable ng kapaligiran at mga config gamit ang mga GitHub PAT at CI/CD mga sikreto
  • Mga endpoint ng metadata ng cloud (AWS, GCP, Azure) na nagbubunga ng panandaliang kredensyal para sa paggalaw sa gilid.

Samakatuwid, ang pagnanakaw ng kredensyal ang naging pangunahing dahilan. Gamit ang mga wastong npm token at mga sikreto ng GitHub, maaaring mag-replicate nang mag-isa ang Shai-Hulud sa maraming pakete at repositoryo nang walang karagdagang pagsisikap ng tao.

Epekto ng Ehekutibo ng Pag-atake sa Supply Chain ng Shai-Hulud

Aktibo pa rin ang Shai-Hulud hanggang ngayon. Pinapabilis ng worm na ito ang timeline ng pagtama. Ang dating inabot ng ilang linggo gamit ang isang trojan ay nabubuo na ngayon sa loob ng ilang oras. Bilang resulta, mas mabilis at mas mahirap pigilan ang pagkalat. Ito ay sumusulong sa pamamagitan ng:

  • Pagnanakaw ng mga npm publish token at mga sikreto ng GitHub.
  • Muling paglalathala ng sarili nito sa iba pang mga pakete ng npm.
  • Pagdaragdag ng mga malisyosong daloy ng trabaho sa GitHub Actions para sa persistence.

Sino ang apektado:

Ang sinumang pangkat na nag-i-install ng mga pampublikong npm package ay nalalantad. Bukod dito, ang mga developer na may naka-cache na npm o GitHub token ay nahaharap sa mataas na panganib. Ang mga CI runner na gumagamit ng malawak na saklaw na mga sikreto ay mahina rin.

Panganib sa negosyo

Mabilis na lumalala ang epekto sa negosyo. Ang mga ninakaw na token ay maaaring humantong sa pagkuha ng account, pag-hijack ng package, at maging sa maling paggamit sa cloud. Bukod pa rito, ang pagtitiyaga sa mga daloy ng trabaho sa GitHub ay nagpapahirap sa paglilinis nito. Samakatuwid,, dapat ituring ng mga koponan ang Shai-Hulud bilang isang patuloy na insidente, hindi isang saradong insidente.

Paano Gumagana ang Shai-Hulud Supply Chain Attack sa mga npm Package

Mga layunin at motibo ng umaatake

Ang kampanya ay nag-o-optimize para sa tatlong bagay:

  • Ang unang layunin ay ang magnakaw ng mga kredensyal nang malawakan mula sa mga laptop ng developer at mga CI runner. Kabilang dito ang mga npm publish token, mga GitHub token, at mga cloud credential. Sa katunayan, maraming pagsusuri ang nagpapatunay ng sistematikong pag-aani ng sikreto, tulad ng pagpapatakbo ng TruffleHog at pag-query sa mga cloud metadata endpoint.
  • Ang pangalawang layunin ay ang awtomatikong kumalat sa pamamagitan ng pag-abuso sa mga karapatan sa paglalathala ng mga nakompromisong tagapangalaga. Bilang resulta, mabilis na lumalawak ang isang pundasyon at nagiging marami, dahil lumilitaw ang mga bagong nahawaang bersyon ng ibang mga pakete nang walang karagdagang pagsisikap ng tao.
  • Ang ikatlong layunin ay ang manatili at mag-exfiltrate nang maaasahan sa pamamagitan ng imprastraktura ng GitHub. Lumilikha ang mga umaatake ng isang pampublikong repo na pinangalanang "Shai-Hulud" na may double base64 data.json, at bilang karagdagan, nagtatanim sila ng isang daloy ng trabaho na nagse-serialize ${{ toJSON(mga lihim) }} at pino-post ito sa isang static na webhook.

Kabilang sa malamang na kabayaran ang pangmatagalang access sa mga registry at source code, mabilis na paglipat sa mga cloud account, at ang opsyon na gawing armas pa ang supply chain. Ipinapakita ng pampublikong pag-uulat na ang mga pribadong repo ay na-flip sa publiko gamit ang isang "-migrasyon" hulapi, na nagpapataas ng pagkakalantad at momentum ng datos

Sa loob ng Shai-Hulud Payload: bundle.js sa mga Pakete ng npm

Naglalayag ang Shai-Hulud bilang isang malaki, naka-bundle sa Webpack at lubhang pinaliit File ng JavaScript (bundle.js, mga 3–3.7 MB) na isinasagawa mula sa isang postinstall sumabit package.jsonDahil dito, Awtomatikong tini-trigger ng bawat pag-install ang payload. Itinatago ng disenyong ito ang mga identifier, kino-compress ang daloy ng kontrol, at itinutulak ang lahat ng lohika sa isang artifact na isinasagawa habang nag-i-install. Palaging kinukumpirma ng mga analyst ang Webpack bundling, hindi pangkaraniwang laki ng file, at pagpapatupad sa oras ng pag-install.

Mga katangiang obfuscation at anti-analysis na makikita mo sa mga sample:

  • Pinaliit na graph ng modyul na may mga numeric module ID, kalat-kalat na mga komento, at patag na daloy ng kontrol. Bukod dito, Pinapahirap ng istrukturang ito ang manu-manong pagsusuri.
  • Pagtatago ng string sa pamamagitan ng mga base64 layer at mga construction helper. Halimbawa, Ang paulit-ulit na base64 encoding at decoding ay karaniwang lumilitaw sa paligid ng mga exfiltration routine.
  • Dinamikong pagpapadala sa pamamagitan ng evalmga pattern ng estilo at mga nabuong katawan ng function, samakatuwid ay nagbibigay-daan sa code na baguhin ang pag-uugali sa runtime.
  • Pag-filter ng OS na mas gusto ang Linux at macOS execution lalo na sa mga CI runner at developer laptop.

Mula sa isang functional na anggulo, ang bundle ay modular. Inilalarawan ng mga writeup ang mga module para sa OS discovery, filesystem at git secret scan, cloud SDK access, GitHub API operations, at isang propagation engine na nag-e-edit ng iba pang mga package na pagmamay-ari ng maintainer. Sa katunayan, parehong itinatampok ng StepSecurity at ReversingLabs ang isang function na awtomatikong nag-a-update ng mga package gamit ang malisyosong hook.

Pagsasagawa ng Install-Time sa Shai-Hulud: Paano Pinapaandar ng mga npm Package ang Worm

Nagsisimula ang pag-atake kapag Ang node ay pinapatakbo pagkatapos ng pag-install. bundle.js. Sa puntong ito, ini-initialize at binubuksan ng script ang working state sa memorya, na naghahanda para sa buong operasyon ng worm.

Pagtuklas at pag-aani

  • Ipoproseso ng payload dumps ang .env at ini-scan ang mga lokal na file para sa mga high-entropy na sikreto at mga token prefix. Bukod pa rito, pinapalawak nito ang saklaw sa pamamagitan ng pagpapatakbo ng TruffleHog.
  • Nagtatanong ito ng mga endpoint ng cloud metadata upang mangolekta ng mga panandaliang kredensyal. Halimbawa, mga tawag sa 169.254.169.254 sa AWS o metadata.google.internal sa GCP ay kadalasang lumilitaw sa mga nahawaang host.
  • Dahil dito, Ang anumang kredensyal na matagpuan ay agad na magagamit upang mag-publish ng mga bagong npm package o itulak ang mga workflow ng GitHub.

Exfiltration

  • Ang worm ay lumilikha ng isang bagong GitHub repo na pinangalanang Shai Hulud at nagsusulat ng double base64-encoded data.json kasama ang mga detalye ng plataporma, mga environment dumps, at mga sikreto. Gaya ng makikita, ang maingay na pag-uugaling ito ay madaling matukoy kung alam ng mga tagapagtanggol kung saan titingin.
  • Nagtatanim din ito ng isang daloy ng trabaho sa GitHub Actions, kadalasan sa isang sangay na pinangalanang shai-hulud, na nagse-serialize ${{ toJSON(secrets) }} at pino-post ang data sa isang static webhook. Bukod pa rito, magpapatuloy ang workflow na ito hanggang sa may aktibong mag-alis nito.

Pagtatanim ng halaman

  • Sa anumang natuklasang npm token, itatala ng payload ang lahat ng package na pagmamay-ari ng nakompromisong maintainer. Pagkatapos, kinukuha nito ang bawat tarball, nag-i-inject ng bundle.js at isang postinstall entry, at muling inilalathala ang package.
  • Bilang resulta, dose-dosenang mga nahawaang pakete ang maaaring lumitaw sa loob lamang ng ilang oras, na nagpaparami sa radius ng pagsabog sa buong ekosistema.

Pagtitiyaga at pagkakalantad

  • Pinapanatiling buhay ng worm ang mga malisyosong daloy ng trabaho at, sa ilang mga kaso, binabaligtad nito ang mga pribadong repo sa publiko gamit ang isang "-migrasyon" hulapi. Sa kabuuan, tinitiyak nito na ang umaatake ay may kakayahang makalusot at mapapakinabangan ang pagtagas ng datos.

Tala ng pagtuklas ng susi
Ang hindi pangkaraniwang paggamit na ito ng ${{ toJSON(secrets) }} Bihira ang mga daloy ng trabaho sa Mga Aksyon. Samakatuwid, dapat itong ituring ng mga koponan bilang isang high-signal indicator habang nangangaso.

Sanitized na pattern ng daloy ng trabaho na dapat mong hanapin

Ang hindi pangkaraniwang paggamit na ito ng sa JSON(mga lihim) Ang in Actions ay isang mataas na signal indicator sa insidenteng ito.

Pseudo-kodigo ng mataas na antas ng pagpapalaganap (ligtas, naglalarawan)

Naobserbahan ng mga analyst ang malawakang pagbabagong ito, na siyang dahilan ng mabilis na pagtalon mula sa dose-dosenang mga nahawaang pakete patungo sa daan-daang mga ito.

Bakit ito isang bulate sa isang ecosystem ng pakete

Ang worm ay malware na kusang kumakalat nang hindi nangangailangan ng mga manu-manong hakbang sa bawat yugto. Sa mga operating system, karaniwang sinasamantala ng mga worm ang mga kahinaan ng network upang lumipat mula sa isang makina patungo sa isa pa. Sa kabaligtaran, ang Shai-Hulud ay gumagana sa loob ng npm registry. Ang mahusay na landas nito ay sa pamamagitan ng muling paggamit ng kredensyal.

Sinasamantala ng worm ang mga ninakaw na npm publish token. Sa sandaling makakuha ito ng mga wastong kredensyal, muling inilalathala nito ang mga nahawaang bersyon sa ilalim ng iba pang mga pakete na pagmamay-ari ng parehong maintainer. Kasunod nito, ang mga paketeng iyon ay ini-install ng mga walang kamalay-malay na developer o CI runner, at ang cycle ay nauulit.

Dahil dito, ang mga analyst ng seguridad, kabilang ang Madilim na Pagbasa, uriin ang Shai-Hulud bilang isang bulate na nagpaparami sa sarili sa halip na isang simpleng trojan o insidente ng typosquatting. Mahalaga ang pagkakaiba: ang isang trojan ay karaniwang nakakaapekto sa isang host, ngunit ang isang worm ay awtomatikong nagpapalakas ng epekto nito sa isang ecosystem.

Cheatsheet na "Paano Ito Gumagana"

Para ibuod ang siklo ng buhay ni Shai-Hulud, narito ang isang concise pagsisiyasat ng mga pangunahing hakbang nito:

  • Isang pakete na may postinstall ay naka-install, at bundle.js nagpapatupad.
  • Ang payload ay nagtatapon ng mga environment variable, nag-i-scan ng mga file at git history, at nagpapatakbo ng TruffleHog, at nagtatanong sa mga serbisyo ng cloud metadata. Dahil dito, anumang lihim na matagpuan ay agad na magiging kapaki-pakinabang.
  • Ang exfiltration ay nangyayari sa dalawang paraan: una, sa pamamagitan ng paglikha ng isang pampublikong repo na pinangalanang Shai Hulud na may dobleng naka-encode na base64 data.json; pangalawa, sa pamamagitan ng pagtatanim ng isang daloy ng trabaho sa GitHub Actions na nagpo-post ${{ toJSON(secrets) }} sa isang webhook.
  • Gamit ang anumang ninakaw na npm token, muling inilalathala ng worm ang lahat ng iba pang mga pakete na pagmamay-ari ng nakompromisong maintainer na may parehong malisyosong hook. Sa ganitong paraan, mabilis na dumarami ang impeksyon.
  • Sa huli, ang umaatake ay may mas maraming sikreto, mas maraming pakete na ikakalat, at pagtitiyaga sa loob ng mga account at repositoryo ng GitHub.

Paano maiiwasan ang ganitong uri ng pag-atake, sa praktikal na paraan

Ang Shai-Hulud ay isang wake-up call. Ang isang worm na nagnanakaw ng mga token at muling naglalathala ng sarili ay hindi isang panganib sa hinaharap, ito ay live sa ekosistema ng mga pakete ng npm ngayon. Upang maiwasan ang ganitong uri ng supply chain na atake, ang mga koponan ay nangangailangan ng mga kontrol na maaaring i-program, awtomatiko, at direktang ipinapatupad sa CI/CD pipelines. Ito ang parehong mga depensa na maaari mo nang ipatupad Xygeni.

Pigilan ang mga masasamang artifact sa gate

Dapat mong i-scan ang mga npm package at tarball bago pa man makarating ang mga ito sa mga developer o CI job. Napakalaki bundle.js mga file, kahina-hinalang post-install hooks, at ang mga pananda ng obfuscation ay pawang nagsisilbing maagang mga pulang bandila. Bukod dito, ang pagpapatupad ng mga panahon ng cool-off at mga naka-pin na bersyon sa pipelinePinipigilan ng s ang awtomatikong pagkonsumo ng mga sariwa at hindi nasuring mga inilabas.

Harden CI/CD bilang default

Guardrails in CI/CD ay mahalaga. Tinatanggihan nila ang mga merge o pag-install na nagpapakilala ng mga bagong script o binary. Kasabay nito, hinaharangan nila ang mga workflow na nagse-serialize ng mga sikreto o sumusubok ng mga panlabas na post. Dapat ding mangailangan ang mga team ng mga lockfile-only na pag-install (npm ci) sa lahat pipelinepara mananatiling maaaring kopyahin at ligtas ang mga set ng dependency.

Bawasan ang radius ng token blast

Ang mga sikreto ay hindi dapat maging isang punto lamang ng pagkabigo. Patuloy na i-scan ang code, mga config, at pipeline output para sa mga nakalantad na kredensyalAng mga token ay dapat na mahigpit na saklawin, bigyan ng maikling lifetime, at awtomatikong iikot kapag natukoy ang exposure. Bilang panuntunan, ituring na nakompromiso ang anumang token na ginamit sa isang host na nagsagawa ng kahina-hinalang post-install.

Makita nang maaga ang kilos ng bulate

Ang detalyeng anomalya ay susi. Halimbawa, ang biglaang pagtaas ng mga kaganapan sa pag-publish ng npm, mga bagong daloy ng trabaho na lumilitaw nang walang dahilan, o mga bagong pampublikong repo na puno ng mga kakaibang naka-encode na file ay maaaring magpahiwatig ng aktibidad ng worm. Samakatuwid, dapat mabilis na maglabas ng mga alerto ang mga koponan at ihiwalay ang anumang mga maintainer o runner na nagpapakita ng mga palatandaang babala na ito.

Ayusin nang mabilis nang hindi nasisira ang mga build

Dapat magkasama ang bilis at kaligtasan. Awtomatiko pull requests maaaring palitan ang mga nakompromisong npm package ng mga na-verify na bersyon. Bukod pa rito, kakayahang maabot at kakayahang magamit Tinitiyak ng pagsusuri na mananatiling minimal at matatag ang mga pag-upgrade. Panghuli, muling buuin ang mga apektadong CI runner mula sa malilinis na imahe kapag nakumpirma na ang pagkakalantad, upang maiwasan ang pagkalat ng atake.

Mga Indicator ng Compromise (IoCs)

Kapag sinusuri ang Shai-Hulud, dapat bantayan ng mga pangkat ang pareho mga static na IoC sa mga file at mga IoC sa pag-uugali in pipelines. Kapag pinagsama-sama, ang mga senyales na ito ay nakakatulong na matukoy nang maaga ang mga impeksyon at tumugon bago pa kumalat ang bulate.

Mga Static IoC

Ang mga sumusunod na SHA-256 digest ay tumutugma na naobserbahan bundle.js mga halimbawa:

  • 46faab8ab153fae6e80e7cca38eab363075bb524edd79e42269217a083628f09
  • 81d2a004a1bca6ef87a1caf7d0e0b355ad1764238e40ff6d1b1cb77ad4f595c3
  • dc67467a39b70d1cd4c1f7f7a459b35058163592f4a9e8fb4dffcbba98ef210c

Bukod pa rito, bantayan ang mga paulit-ulit na pattern na ito:

  • A bundle.js sa ugat ng pakete.
  • "postinstall": "node bundle.js" loob package.json.
  • Mga repositoryong pinangalanan Shai Hulud.
  • Mga daloy ng trabaho sa GitHub na naglalaman ng ${{ toJSON(secrets) }}.

Mga IoC sa Pag-uugali

Higit pa sa mga lagda ng file, ang aktibidad ng worm ay nagpapakita ng sarili sa pamamagitan ng pag-uugali. Halimbawa:

  • Biglaang pagsabog ng mga kaganapan sa pag-publish ng npm mula sa isang tagapangalaga.
  • Mga bagong daloy ng trabaho na nagtutulak ng data sa mga panlabas na endpoint.
  • Ang mga papalabas na kahilingan sa POST ay na-trigger mula sa mga CI runner.
  • Mga pampublikong repo na nilikha kamakailan na may mga naka-encode na blob.

Mabilisang pangangaso

Konklusyon: Mga Aral mula sa Shai-Hulud

Ang Pag-atake sa supply chain ng Shai-Hulud Ipinapakita ng mga npm package kung gaano karupok ang supply chain ng software ngayon. Hindi lang basta nagdagdag ng malisyosong code ang ginawa ng worm na ito. Ninakaw nito ang mga token, nagpadala ng data, at pagkatapos ay awtomatikong muling inilathala ang sarili nito. Dahil dito, kumalat ang pag-atake sa loob ng ilang oras sa halip na ilang linggo.

Para sa mga developer at DevOps team, malinaw ang mga aral:

  • Ang bawat pag-install ay nagpapatakbo ng code. Kahit ang isang karaniwang npm package ay maaaring magtago ng postinstall worm.
  • Ang bawat token ay may mataas na halaga. Kapag ninakaw na, maaari itong gamitin upang lalong magkalat ng malware.
  • Bawat pipeline nangangailangan ng mga tseke. Wala guardrails sa mga dependency, workflow, at mga sikreto, ang isang kompromiso ay maaaring mabilis na makaapekto sa produksyon.

Samakatuwid, ang paghinto sa mga pag-atake tulad ng Shai-Hulud ay nangangailangan ng mga kontrol na awtomatiko at madaling ipatupad. Dapat i-scan ng mga team ang mga npm package bago mag-install, gumamit ng mga lockfile build, tumuklas ng kakaibang aktibidad sa pag-publish, at panatilihing panandalian ang mga token. Hindi na opsyonal ang mga hakbang na ito. Sa halip, ang mga ito ang pundasyon ng katatagan sa modernong teknolohiya. pipelines.

Sa Xygeni, nakikita namin ang pag-atake sa supply chain ng Shai-Hulud bilang isang babala para sa buong open source ecosystem. Ang napapanatiling paraan ay ang direktang pagdadala ng seguridad ng supply chain sa proseso ng pag-unlad, sa punto kung saan ang code, mga npm package, at pipelinekumonekta.

Nasa ibaba ang kumpletong listahan ng mga npm package at bersyon na naiulat na nakompromiso sa Shai-Hulud. Gamitin ito upang suriin ang iyong mga lockfile, registry, at CI. pipelines para sa pagkakalantad.

Listahan ng mga nakompromisong pakete

📦 Preview ng mga Nakompromisong Pakete ng npm

Pangalan ng package bersyon I-publish ang Petsa
pinasimpleng engine ng json-rules0.2.12025-09-14T17:58:51.203Z
piloto ng himpapawid0.8.82025-09-14T18:35:07.600Z
mcp-knowledge-graph1.2.12025-09-14T18:35:09.494Z
pinuno ng eroplano0.3.12025-09-14T18:35:09.521Z
jumpgate0.0.22025-09-14T18:35:09.651Z
tvi-cli0.1.52025-09-14T18:35:10.996Z
@thangved/callback-window1.1.42025-09-14T20:31:38.479Z
@tnf-dev/api1.0.82025-09-14T20:31:39.547Z
@tnf-dev/js1.0.82025-09-14T20:31:41.251Z
@tnf-dev/mui1.0.82025-09-14T20:31:41.259Z
@tnf-dev/core1.0.82025-09-14T20:31:42.728Z
@teselagen/react-table6.10.202025-09-14T20:37:08.597Z
@hestjs/demo0.1.22025-09-14T20:45:52.348Z
@nexe/eslint-config0.1.12025-09-14T20:45:53.625Z
@hestjs/eslint-config0.1.22025-09-14T20:45:55.044Z
@nexe/config-manager0.1.12025-09-14T20:45:55.066Z
@nexe/logger0.1.32025-09-14T20:45:55.170Z
@hestjs/logger0.1.62025-09-14T20:45:55.197Z
@hestjs/pagpapatunay0.1.62025-09-14T20:45:55.595Z
@hestjs/core0.2.12025-09-14T20:45:55.888Z
➡️ Tingnan ang Buong Listahan ng mga Nakompromisong Pakete
Pangalan ng package bersyon I-publish ang Petsa
pinasimpleng engine ng json-rules0.2.12025-09-14T17:58:51.203Z
piloto ng himpapawid0.8.82025-09-14T18:35:07.600Z
mcp-knowledge-graph1.2.12025-09-14T18:35:09.494Z
pinuno ng eroplano0.3.12025-09-14T18:35:09.521Z
jumpgate0.0.22025-09-14T18:35:09.651Z
tvi-cli0.1.52025-09-14T18:35:10.996Z
@thangved/callback-window1.1.42025-09-14T20:31:38.479Z
@tnf-dev/api1.0.82025-09-14T20:31:39.547Z
@tnf-dev/js1.0.82025-09-14T20:31:41.251Z
@tnf-dev/mui1.0.82025-09-14T20:31:41.259Z
@tnf-dev/core1.0.82025-09-14T20:31:42.728Z
@teselagen/react-table6.10.202025-09-14T20:37:08.597Z
@hestjs/demo0.1.22025-09-14T20:45:52.348Z
@nexe/eslint-config0.1.12025-09-14T20:45:53.625Z
@hestjs/eslint-config0.1.22025-09-14T20:45:55.044Z
@nexe/config-manager0.1.12025-09-14T20:45:55.066Z
@nexe/logger0.1.32025-09-14T20:45:55.170Z
@hestjs/logger0.1.62025-09-14T20:45:55.197Z
@hestjs/pagpapatunay0.1.62025-09-14T20:45:55.595Z
@hestjs/core0.2.12025-09-14T20:45:55.888Z
@hestjs/cqrs0.1.62025-09-14T20:45:55.966Z
@hestjs/scalar0.1.72025-09-14T20:45:56.386Z
pag-upload-ng-file-ng27.0.32025-09-15T02:44:29.555Z
tagapangasiwa ng notification ng kapasitor0.0.22025-09-15T04:54:48.431Z
kapasitor-plugin-vonage1.0.22025-09-15T04:54:48.501Z
capacitor-plugin-healthapp0.0.22025-09-15T04:54:48.704Z
mga pahintulot ng kapasitorandroid0.0.42025-09-15T04:54:48.753Z
voip-callkit1.0.22025-09-15T04:54:49.223Z
capacitor-plugin-ihealth1.1.82025-09-15T04:55:08.113Z
@art-ws/common2.0.222025-09-15T05:21:15.411Z
@art-ws/config-eslint2.0.42025-09-15T05:21:17.199Z
ngx-ws1.1.52025-09-15T05:21:17.514Z
@art-ws/slf2.0.152025-09-15T05:21:17.524Z
@art-ws/http-server2.0.212025-09-15T05:21:17.745Z
pm2-gelf-json1.0.42025-09-15T05:21:18.413Z
@art-ws/di2.0.282025-09-15T05:21:18.488Z
@art-ws/di-node2.0.132025-09-15T05:21:18.849Z
@art-ws/config-ts2.0.72025-09-15T05:21:19.408Z
@art-ws/db-context2.0.212025-09-15T05:21:19.814Z
@art-ws/openapi0.1.92025-09-15T05:21:19.969Z
@art-ws/web-app1.0.32025-09-15T05:21:20.383Z
@art-ws/ssl-info1.0.92025-09-15T05:21:20.927Z
mga tool sa pagsusuri ng komposisyon ng software ng mga tool sa sca
Unahin, ayusin, at i-secure ang mga panganib ng iyong software
Kunin ang Iyong Libreng Account.
Walang kinakailangang credit card.

I-secure ang Iyong Pag-develop at Paghahatid ng Software

kasama ang Xygeni Product Suite