TL; DR
Mnamo Septemba 14, 2025, watafiti walibaini Shai Hulud, mdudu anayejinakili mwenyewe aliyefichwa ndani vifurushi vya npm, kugeuza sasisho la utegemezi wa kawaida kuwa kipimo kamili ushambuliaji wa mnyororo. Alionekana kwa mara ya kwanza katika @ctrl/rangi ndogo Kifurushi cha Daniel dos Santos Pereira, Shai-Hulud huvuna siri, huzichuja kupitia hifadhi na mtiririko wa kazi wa GitHub, na hujichapisha tena kwenye sajili kwa kutumia vitambulisho vilivyoibiwa. Ndani ya siku chache, idadi ya vifurushi vilivyoambukizwa iliongezeka kutoka makumi hadi mamia, ikithibitisha kwamba Shaihulud si trojan nyingine tu bali ni mdudu aliyeundwa kuenea kiotomatiki katika mfumo ikolojia wa npm.
Athari: Msanidi programu yeyote au mkimbiaji wa CI anayesakinisha vifurushi vya umma vya npm yuko hatarini.
Vitendo vya haraka: Zuia matoleo yanayojulikana, badilisha hadi usakinishaji wa faili zilizofungwa pekee, zungusha tokeni za npm na GitHub, mtiririko wa kazi wa ukaguzi, na ufuatilie Viashiria vya Maelewano (IoCs).
Nini Kitatokea?
The Shambulio la mnyororo wa usambazaji wa Shai-Hulud katika vifurushi vya npm ni mojawapo ya matukio yenye usumbufu mkubwa katika kumbukumbu za hivi karibuni. Tofauti na trojans zilizotengwa, minyoo hii huchanganyika wizi wa hati miliki, uchujaji kiotomatiki, na kujinakili mwenyeweKwa hivyo, muda wa maambukizi ulipungua kutoka wiki hadi saa chache tu.
Kwa timu za DevOps, somo liko wazi: ikiwa kila usakinishaji unaweza kutekeleza msimbo, basi kila sasisho la utegemezi ni sehemu inayoweza kukiuka.
Vekta ya Awali Inayowezekana na Hati Lengwa
Uchambuzi wa mapema inaonyesha kwamba shambulio hilo huenda lilianza na vitambulisho vilivyoibiwaKwa mfano, kampeni za ulaghai zinadanganya npm login au vidokezo vya MFA vinaweza kuwa vimenasa tokeni za msanidi programu. Mara tu washambuliaji walipopata nafasi hiyo ya kwanza, mdudu huyo alienea kwa kujiingiza kwenye vifurushi vya npm na kuiba siri zaidi kutoka:
- faili za usanidi wa npm kama
.npmrc, mara nyingi huwa na tokeni za kuchapisha. - Vigezo vya mazingira na husanidi na GitHub PATs na CI/CD siri.
- Sehemu za mwisho za metadata ya wingu (AWS, GCP, Azure) hutoa sifa za muda mfupi za kusonga kwa pembeni.
Kwa hivyo, wizi wa hati miliki ukawa njia ya uzinduzi. Kwa tokeni halali za npm na siri za GitHub, Shai-Hulud angeweza kujinakili katika vifurushi na hazina nyingi bila juhudi za ziada za kibinadamu.
Athari za Kiutendaji za Shambulio la Mnyororo wa Ugavi wa Shai-Hulud
Shai-Hulud bado inaendelea kufanya kazi hadi leo. Mdudu huyu huharakisha muda wa athari. Kile kilichochukua wiki kadhaa na Trojan sasa kinajitokeza kwa saa kadhaa. Matokeo yake, kuenea ni kwa kasi na vigumu zaidi kudhibiti. Inasonga mbele kwa:
- Kuiba tokeni za kuchapisha za npm na siri za GitHub.
- Kujichapisha upya katika vifurushi vingine vya npm.
- Kuongeza mtiririko wa kazi hasidi wa Vitendo vya GitHub kwa ajili ya kuendelea.
Nani ameathirika:
Timu yoyote inayosakinisha vifurushi vya umma vya npm huwekwa wazi. Zaidi ya hayo, wasanidi programu walio na tokeni za npm au GitHub zilizohifadhiwa wanakabiliwa na hatari kubwa. Waendeshaji wa CI wanaotumia siri zenye upana pia wako katika hatari.
Hatari ya biashara
Athari ya biashara inakua haraka. Tokeni zilizoibiwa zinaweza kusababisha umiliki wa akaunti, utekaji nyara wa vifurushi, na hata matumizi mabaya ya wingu. Zaidi ya hayo, kuendelea katika mtiririko wa kazi wa GitHub hufanya iwe vigumu kusafisha., timu lazima zimchukulie Shai-Hulud kama tukio linaloendelea, si tukio lililofungwa.
Jinsi Shambulio la Shai-Hulud la Ugavi Linavyofanya Kazi katika Vifurushi vya npm
Malengo na nia ya mshambuliaji
Kampeni inaboresha kwa mambo matatu:
- Lengo la kwanza ni kuiba sifa kwa kiwango kutoka kwa kompyuta za mkononi za wasanidi programu na viendeshaji vya CI. Hii inajumuisha tokeni za kuchapisha za npm, tokeni za GitHub, na vitambulisho vya wingu. Kwa kweli, uchanganuzi mwingi unathibitisha uvunaji wa siri wa kimfumo, kama vile kuendesha TruffleHog na kuuliza sehemu za mwisho za metadata ya wingu.
- Lengo la pili ni sambaza kiotomatiki kwa kutumia vibaya haki za uchapishaji za wasimamizi walioathiriwa. Matokeo yake, nafasi moja hupanuka haraka hadi nyingi, kwa kuwa matoleo mapya yaliyoambukizwa ya vifurushi vingine huonekana bila juhudi za ziada za kibinadamu.
- Lengo la tatu ni huendelea na huchuja kwa uhakika kupitia miundombinu ya GitHub. Washambuliaji huunda jumba la umma linaloitwa "Shai-Hulud" lenye besi mbili64 data.json, na zaidi ya hayo wanaanzisha mtiririko wa kazi unaofanya mfululizo ${{ kwaJSON(siri) }} na kuichapisha kwenye mtandao tuli.
Faida inayowezekana ni pamoja na ufikiaji wa muda mrefu wa sajili na msimbo wa chanzo, uhamishaji wa haraka wa upande kwenye akaunti za wingu, na chaguo la kutumia mnyororo wa usambazaji zaidi. Ripoti za umma zinaonyesha hazina za kibinafsi zimebadilishwa kwa umma na "-uhamiaji" kiambishi tamati, ambacho huongeza uwazi na kasi ya data
Ndani ya Mzigo wa Shai-Hulud: kifurushi.js katika vifurushi vya npm
Shai-Hulud husafirisha kama kubwa, imeunganishwa kwenye kifurushi cha wavuti na imefupishwa sana Faili ya JavaScript (kifurushi.js, takriban MB 3–3.7) ambayo hutekeleza kutoka baada ya kusakinisha unganisha kifurushi.jsonKwa hivyo, Kila usakinishaji huanzisha mzigo kiotomatiki. Muundo huu huficha vitambulisho, hubana mtiririko wa udhibiti, na husukuma mantiki yote kwenye kipengee kimoja kinachofanya kazi wakati wa usakinishaji. Wachambuzi huthibitisha mara kwa mara ujumuishaji wa vifurushi vya wavuti, ukubwa usio wa kawaida wa faili, na utekelezaji wa muda wa usakinishaji.
Sifa za kuficha na kupinga uchambuzi utakazoziona katika sampuli:
- Grafu ya moduli iliyopunguzwa yenye vitambulisho vya moduli za nambari, maoni machache, na mtiririko wa udhibiti uliobanwa. Zaidi ya hayo,, Muundo huu hufanya mapitio ya mwongozo kuwa magumu sana.
- Kuficha kamba kupitia tabaka za msingi64 na wasaidizi wa ujenzi. Kwa mfano, Usimbaji na usimbaji unaorudiwa wa base64 kwa kawaida huonekana karibu na utaratibu wa kuchuja.
- Usambazaji wa nguvu kwa njia ya eval-mitindo ya mitindo na miili ya utendaji inayozalishwa, kwa hivyo kuwezesha msimbo kubadilisha tabia wakati wa utekelezaji.
- Uchujaji wa mfumo wa uendeshaji kupendelea utekelezaji wa Linux na macOS haswa kwenye viendeshaji vya CI na kompyuta za mkononi za watengenezaji.
Kutoka kwa pembe inayofanya kazi, kifungu ni cha moduli. Writeups huelezea moduli za ugunduzi wa mfumo wa uendeshaji, mifumo ya faili na skani za siri za git, ufikiaji wa SDK ya wingu, shughuli za API za GitHub, na injini ya uenezaji inayohariri vifurushi vingine ambavyo mhudumu anamiliki. Kwa kweli, StepSecurity na ReversingLabs zote huangazia kitendakazi kinachosasisha kiotomatiki vifurushi kwa kutumia ndoano hasidi.
Utekelezaji wa Wakati wa Usakinishaji katika Shai-Hulud: Jinsi Vifurushi vya npm Vinavyosababisha Mdudu
Shambulio linaanza wakati baada ya kusakinisha huendesha nodi kifurushi.js. Katika hatua hii, hati huanzisha na kufungua hali ya kufanya kazi katika kumbukumbu, na kuweka msingi wa utendaji kamili wa mdudu.
Ugunduzi na Uvunaji
- Malipo ya mzigo hutupa process.env na kuchanganua faili za ndani kwa siri za entropy ya juu na viambishi awali vya tokeni. Zaidi ya hayo, inapanua wigo kwa kuendesha TruffleHog.
- Inauliza sehemu za mwisho za metadata ya wingu ili kukusanya vitambulisho vya muda mfupi. Kwa mfano, simu kwa
169.254.169.254kwenye AWS aumetadata.google.internalkwenye GCP mara nyingi huonekana katika wenyeji walioambukizwa. - Hivyo, Kitambulisho chochote kinachopatikana kinaweza kutumika mara moja kuchapisha vifurushi vipya vya npm au kusukuma mtiririko wa kazi wa GitHub.
exfiltration
- Mdudu huunda repo mpya ya GitHub inayoitwa Shai Hulud na huandika msimbo wa msingi maradufu64
data.jsonpamoja na maelezo ya jukwaa, matuta ya mazingira, na siri. Kama inavyoonekana, tabia hii ya kelele ni rahisi kuiona ikiwa watetezi wanajua wapi pa kuangalia. - Pia huanzisha mtiririko wa kazi wa Vitendo vya GitHub, mara nyingi kwenye tawi linaloitwa shai-hulud, ambayo huweka mfululizo
${{ toJSON(secrets) }}na huchapisha data kwenye mtandao tuli. Zaidi ya hayo, mtiririko huu wa kazi unaendelea hadi mtu aiondoe kikamilifu.
Uenezi
- Kwa tokeni yoyote ya npm iliyogunduliwa, mzigo wa malipo huorodhesha vifurushi vyote vinavyomilikiwa na mlezi aliyeathiriwa. Kisha, huchota kila tarball, huingiza bundle.js na ingizo la baada ya kusakinisha, na kuchapisha tena kifurushi.
- Kwa hivyo, vifurushi vingi vilivyoambukizwa vinaweza kuonekana katika muda wa saa chache, na kuzidisha kipenyo cha mlipuko katika mfumo ikolojia.
Uvumilivu na mfiduo
Mdudu huweka kazi mbaya za kazi na, katika visa kadhaa, hubadilisha hifadhi za kibinafsi kuwa za umma na "-uhamiaji" kiambishi tamati. Kwa ujumla, hii inahakikisha mshambuliaji anadumisha nafasi na kuongeza uvujaji wa data.
Dokezo la kugundua ufunguo
Matumizi haya yasiyo ya kawaida ya ${{ toJSON(secrets) }} katika mtiririko wa kazi wa Actions ni nadra. Kwa hiyo, Timu zinapaswa kuichukulia kama kiashiria cha ishara kubwa wakati wa uwindaji.
Muundo wa mtiririko wa kazi uliosafishwa unaopaswa kutafuta
Matumizi haya yasiyo ya kawaida ya kwa JSON (siri) katika Vitendo ni kiashiria cha ishara kubwa katika tukio hili.
Msimbo bandia wa uenezaji wa kiwango cha juu (salama, maelezo)
Wachambuzi waliona mzunguko huu kwa kiwango kikubwa, ambacho kinaelezea ongezeko la haraka kutoka makumi kadhaa hadi mamia ya vifurushi vilivyoambukizwa.
Kwa nini hii ni minyoo katika mfumo ikolojia wa kifurushi
Mdudu ni programu hasidi inayoenea yenyewe bila kuhitaji hatua za mwendeshaji kwa mikono katika kila hatua. Katika mifumo ya uendeshaji, minyoo kwa kawaida hutumia udhaifu wa mtandao kuhama kutoka mashine moja hadi nyingine. Kwa upande mwingine, Shai-Hulud hufanya kazi ndani ya sajili ya npm. Njia yake bora ni kupitia utumiaji tena wa kitambulisho.
Mdudu hutumia tokeni za kuchapisha za npm zilizoibiwa. Mara tu inapopata vitambulisho halali, huchapisha tena matoleo yaliyoambukizwa chini ya vifurushi vingine vinavyomilikiwa na mhudumu huyo huyo. Baadaye, vifurushi hivyo husakinishwa na watengenezaji wasio na shaka au waendeshaji wa CI, na mzunguko huo hurudia.
Kwa sababu hii, wachambuzi wa usalama, wakiwemo Usomaji Giza, ainisha Shai-Hulud kama minyoo inayojinakilisha yenyewe badala ya trojan rahisi au tukio la uchapaji. Tofauti ni muhimu: trojan kwa kawaida huhatarisha mwenyeji mmoja, lakini minyoo huongeza athari yake kiotomatiki katika mfumo ikolojia.
Karatasi ya udanganyifu ya "Jinsi inavyofanya kazi"
Kwa muhtasari wa mzunguko wa maisha wa Shai-Hulud, hapa kuna tatizocismchanganuo wa hatua zake kuu:
- Kifurushi chenye baada ya kusakinisha imewekwa, na
bundle.jshutekeleza. - Vigezo vya mazingira ya utupaji wa mzigo, huchanganua faili na historia ya git, huendeshwa TruffleHog, na huuliza huduma za metadata ya wingu. Kwa hivyo, siri yoyote inayopatikana inakuwa muhimu mara moja.
- Kuchuja hutokea kwa njia mbili: kwanza, kwa kuunda repo ya umma inayoitwa Shai Hulud yenye msimbo wa base64 mara mbili
data.jsonpili, kwa kuanzisha mtiririko wa kazi wa Vitendo vya GitHub unaochapisha${{ toJSON(secrets) }}kwa mtandao. - Kwa kutumia tokeni yoyote ya npm iliyoibiwa, mdudu huchapisha tena vifurushi vingine vyote vinavyomilikiwa na mhudumu aliyeathiriwa kwa kutumia ndoano ile ile mbaya. Kwa njia hii, maambukizi huongezeka haraka.
- Hatimaye, mshambuliaji ana siri zaidi, vifurushi zaidi vya kusambaza, na kuendelea ndani ya akaunti na hazina za GitHub.
Jinsi ya kuepuka aina hii ya shambulio, kivitendo
Shai-Hulud ni simu ya kuamsha. Mdudu anayeiba tokeni na kujichapisha tena si hatari ya siku zijazo, ni moja kwa moja mfumo ikolojia wa vifurushi vya npm leo. Ili kuzuia aina hii ya ushambuliaji wa mnyororo, timu zinahitaji vidhibiti vinavyoweza kupangwa, otomatiki, na kutekelezwa moja kwa moja katika CI/CD pipelineHizi ni mbinu zile zile za kujilinda ambazo tayari unaweza kuzitumia Xygeni.
Acha vitu vibovu kwenye lango
Unapaswa kuchanganua vifurushi vya npm na tarball kabla hazijafikia wasanidi programu au kazi za CI. bundle.js faili, kusakinisha baada ya kutiliwa shaka hooks, na alama za kuficha hisia zote hutumika kama bendera nyekundu za mapema. Zaidi ya hayo, kutekeleza vipindi vya kupoa na matoleo yaliyobanwa katika pipelines huzuia kutolewa kwa bidhaa mpya, ambazo hazijapimwa kutumiwa kiotomatiki.
Harden CI/CD kwa default
Guardrails in CI/CD ni muhimu. Wanakataa ujumuishaji au usakinishaji unaoanzisha hati mpya au jozi. Wakati huo huo, wanazuia mtiririko wa kazi unaoweka siri mfululizo au kujaribu machapisho ya nje. Timu zinapaswa pia kuhitaji usakinishaji wa faili za kufuli pekee (npm ci) kote pipelineKwa hivyo seti za utegemezi hubakia zinazoweza kuzalishwa tena na salama.
Punguza radius ya mlipuko wa tokeni
Siri hazipaswi kuwa sehemu moja ya kushindwa. Changanua msimbo, usanidi, na kila mara pipeline pato kwa vitambulisho vilivyofichuliwaTokeni zinapaswa kuchunguzwa kwa ufupi, zikipewa muda mfupi wa matumizi, na kuzungushwa kiotomatiki wakati mfiduo unagunduliwa. Kama sheria, chukulia tokeni yoyote inayotumika kwenye seva mwenyeji iliyotekeleza usakinishaji wa baada ya kushukiwa kama iliyoathiriwa.
Tazama tabia ya minyoo mapema
Ugunduzi wa anomaly ni muhimu. Kwa mfano, ongezeko la ghafla katika matukio ya kuchapisha ya npm, mtiririko mpya wa kazi unaoonekana bila sababu, au hifadhi mpya za umma zilizojazwa faili za ajabu zilizosimbwa zinaweza kuashiria shughuli za minyoo. Kwa hivyo, timu zinapaswa kutoa arifa haraka na kuwatenga watunzaji au waendeshaji wowote wanaoonyesha ishara hizi za onyo.
Rekebisha haraka bila kuvunja miundo
Kasi na usalama lazima viende pamoja. Kiotomatiki pull requests inaweza kubadilisha vifurushi vya npm vilivyoathiriwa na matoleo yaliyothibitishwa. Zaidi ya hayo, ufikiaji na unyonyaji Uchambuzi unahakikisha uboreshaji unabaki mdogo na thabiti. Hatimaye, jenga upya viendeshaji vya CI vilivyoathiriwa kutoka kwa picha safi mara tu mfiduo unapothibitishwa, na kuzuia shambulio lisisambae zaidi.
Viashiria vya Maelewano (IoCs)
Wakati wa kuchanganua Shai-Hulud, timu zinapaswa kuangalia zote mbili IoC tuli katika faili na IoC za kitabia in pipelines. Kwa pamoja, ishara hizi husaidia kugundua maambukizi mapema na kujibu kabla ya minyoo kuenea zaidi.
IoC tuli
Ulinganisho wa SHA-256 unaofuata umezingatiwa bundle.js sampuli:
- 46faab8ab153fae6e80e7cca38eab363075bb524edd79e42269217a083628f09
- 81d2a004a1bca6ef87a1caf7d0e0b355ad1764238e40ff6d1b1cb77ad4f595c3
- dc67467a39b70d1cd4c1f7f7a459b35058163592f4a9e8fb4dffcbba98ef210c
Zaidi ya hayo, angalia mifumo hii inayojirudia:
- A
bundle.jskwenye mzizi wa kifurushi. "postinstall": "node bundle.js"ndani yapackage.json.- Majengo ya kuhifadhia vitu yamepewa majina Shai Hulud.
- Mtiririko wa kazi wa GitHub unaojumuisha
${{ toJSON(secrets) }}.
IoC za Kitabia
Zaidi ya sahihi za faili, shughuli ya minyoo hujidhihirisha kupitia tabia. Kwa mfano:
- Milipuko ya ghafla ya npm yachapisha matukio kutoka kwa mhudumu mmoja.
- Mifumo mipya ya kazi inayosukuma data hadi kwenye sehemu za nje za kazi.
- Maombi ya POST yanayotoka yalisababishwa na wakimbiaji wa CI.
- Hifadhi za umma zilizoundwa hivi karibuni zenye matone yaliyosimbwa.
Uwindaji wa haraka
Hitimisho: Masomo kutoka kwa Shai-Hulud
The Shambulio la mnyororo wa usambazaji wa Shai-Hulud katika vifurushi vya npm inaonyesha jinsi mnyororo wa usambazaji wa programu wa leo umekuwa dhaifu. Mdudu huyu alifanya zaidi ya kuongeza msimbo hasidi. Aliiba tokeni, akatuma data, na kisha akajichapisha tena kiotomatiki. Kwa sababu hii, shambulio hilo lilienea kwa saa nyingi badala ya wiki.
Kwa watengenezaji na timu za DevOps, masomo yako wazi:
- Kila usakinishaji huendesha msimbo. Hata kifurushi cha kawaida cha npm kinaweza kuficha mdudu wa baada ya kufunga.
- Kila tokeni ina thamani kubwa. Mara tu ikiibiwa, inaweza kutumika kueneza programu hasidi zaidi.
- Kila pipeline inahitaji ukaguzi. Bila guardrails kuhusu utegemezi, mtiririko wa kazi, na siri, maelewano moja yanaweza kuathiri uzalishaji haraka.
Kwa hivyo, kusimamisha mashambulizi kama Shai-Hulud kunahitaji vidhibiti ambavyo ni vya kiotomatiki na rahisi kutekeleza. Timu zinapaswa kuchanganua vifurushi vya npm kabla ya kusakinisha, kutumia miundo ya faili za kufuli, kugundua shughuli za uchapishaji zisizo za kawaida, na kuweka tokeni zisidumu kwa muda mrefu. Hatua hizi si za hiari tena. Badala yake, ndizo msingi wa ustahimilivu katika kisasa. pipelines.
Katika Xygeni, tunaona shambulio la mnyororo wa ugavi wa Shai-Hulud kama onyo kwa mfumo mzima wa chanzo huria. Njia endelevu ya kusonga mbele ni kuleta usalama wa mnyororo wa ugavi moja kwa moja katika mchakato wa uundaji, mahali ambapo msimbo, vifurushi vya npm, na pipelineunganisha.
Hapa chini kuna orodha kamili ya vifurushi na matoleo ya npm yaliyoripotiwa kuwa yameathiriwa katika Shai-Hulud. Itumie kuangalia faili zako za kufuli, sajili, na CI pipelines kwa ajili ya kufichuliwa.
Orodha ya vifurushi vilivyoathiriwa
📦 Hakikisho la Vifurushi vya npm Vilivyoathiriwa
| Jina la pakiti | version | Chapisha Tarehe |
|---|---|---|
| json-rules-injini-iliyorahisishwa | 0.2.1 | 2025-09-14T17:58:51.203Z |
| rubani wa ndege | 0.8.8 | 2025-09-14T18:35:07.600Z |
| grafu ya maarifa ya mcp | 1.2.1 | 2025-09-14T18:35:09.494Z |
| mkuu wa ndege | 0.3.1 | 2025-09-14T18:35:09.521Z |
| lango la kuruka | 0.0.2 | 2025-09-14T18:35:09.651Z |
| televisheni | 0.1.5 | 2025-09-14T18:35:10.996Z |
| @thangved/dirisha la kupigia simu | 1.1.4 | 2025-09-14T20:31:38.479Z |
| @tnf-dev/api | 1.0.8 | 2025-09-14T20:31:39.547Z |
| @tnf-dev/js | 1.0.8 | 2025-09-14T20:31:41.251Z |
| @tnf-dev/mui | 1.0.8 | 2025-09-14T20:31:41.259Z |
| @tnf-dev/core | 1.0.8 | 2025-09-14T20:31:42.728Z |
| @teselagen/meza ya majibu | 6.10.20 | 2025-09-14T20:37:08.597Z |
| @hestjs/onyesho | 0.1.2 | 2025-09-14T20:45:52.348Z |
| @nexe/eslint-config | 0.1.1 | 2025-09-14T20:45:53.625Z |
| @hestjs/eslint-config | 0.1.2 | 2025-09-14T20:45:55.044Z |
| @nexe/kidhibiti-usanidi | 0.1.1 | 2025-09-14T20:45:55.066Z |
| @nexe/msajili | 0.1.3 | 2025-09-14T20:45:55.170Z |
| @hestjs/msajili | 0.1.6 | 2025-09-14T20:45:55.197Z |
| @hestjs/uthibitishaji | 0.1.6 | 2025-09-14T20:45:55.595Z |
| @hestjs/msingi | 0.2.1 | 2025-09-14T20:45:55.888Z |
➡️ Tazama Orodha Kamili ya Vifurushi Vilivyoathiriwa
| Jina la pakiti | version | Chapisha Tarehe |
|---|---|---|
| json-rules-injini-iliyorahisishwa | 0.2.1 | 2025-09-14T17:58:51.203Z |
| rubani wa ndege | 0.8.8 | 2025-09-14T18:35:07.600Z |
| grafu ya maarifa ya mcp | 1.2.1 | 2025-09-14T18:35:09.494Z |
| mkuu wa ndege | 0.3.1 | 2025-09-14T18:35:09.521Z |
| lango la kuruka | 0.0.2 | 2025-09-14T18:35:09.651Z |
| televisheni | 0.1.5 | 2025-09-14T18:35:10.996Z |
| @thangved/dirisha la kupigia simu | 1.1.4 | 2025-09-14T20:31:38.479Z |
| @tnf-dev/api | 1.0.8 | 2025-09-14T20:31:39.547Z |
| @tnf-dev/js | 1.0.8 | 2025-09-14T20:31:41.251Z |
| @tnf-dev/mui | 1.0.8 | 2025-09-14T20:31:41.259Z |
| @tnf-dev/core | 1.0.8 | 2025-09-14T20:31:42.728Z |
| @teselagen/meza ya majibu | 6.10.20 | 2025-09-14T20:37:08.597Z |
| @hestjs/onyesho | 0.1.2 | 2025-09-14T20:45:52.348Z |
| @nexe/eslint-config | 0.1.1 | 2025-09-14T20:45:53.625Z |
| @hestjs/eslint-config | 0.1.2 | 2025-09-14T20:45:55.044Z |
| @nexe/kidhibiti-usanidi | 0.1.1 | 2025-09-14T20:45:55.066Z |
| @nexe/msajili | 0.1.3 | 2025-09-14T20:45:55.170Z |
| @hestjs/msajili | 0.1.6 | 2025-09-14T20:45:55.197Z |
| @hestjs/uthibitishaji | 0.1.6 | 2025-09-14T20:45:55.595Z |
| @hestjs/msingi | 0.2.1 | 2025-09-14T20:45:55.888Z |
| @hestjs/cqrs | 0.1.6 | 2025-09-14T20:45:55.966Z |
| @hestjs/scalar | 0.1.7 | 2025-09-14T20:45:56.386Z |
| upakiaji wa faili ya ng2 | 7.0.3 | 2025-09-15T02:44:29.555Z |
| kidhibiti-arifa cha capacitor | 0.0.2 | 2025-09-15T04:54:48.431Z |
| programu-jalizi ya capacitor | 1.0.2 | 2025-09-15T04:54:48.501Z |
| programu-jalizi-ya-afya ya programu-jalizi ya capacitor | 0.0.2 | 2025-09-15T04:54:48.704Z |
| ruhusa za capacitorandroid | 0.0.4 | 2025-09-15T04:54:48.753Z |
| kifaa cha kupiga simu cha voip | 1.0.2 | 2025-09-15T04:54:49.223Z |
| programu-jalizi-ya-kipaza sauti-ya-afya | 1.1.8 | 2025-09-15T04:55:08.113Z |
| @sanaa-ws/kawaida | 2.0.22 | 2025-09-15T05:21:15.411Z |
| @sanaa-ws/usanidi-eslint | 2.0.4 | 2025-09-15T05:21:17.199Z |
| ngx-ws | 1.1.5 | 2025-09-15T05:21:17.514Z |
| @sanaa-ws/slf | 2.0.15 | 2025-09-15T05:21:17.524Z |
| @sanaa-ws/http-server | 2.0.21 | 2025-09-15T05:21:17.745Z |
| pm2-gelf-json | 1.0.4 | 2025-09-15T05:21:18.413Z |
| @sanaa-ws/di | 2.0.28 | 2025-09-15T05:21:18.488Z |
| @sanaa-ws/nodi-di | 2.0.13 | 2025-09-15T05:21:18.849Z |
| @sanaa-ws/usanidi-ts | 2.0.7 | 2025-09-15T05:21:19.408Z |
| @sanaa-ws/db-muktadha | 2.0.21 | 2025-09-15T05:21:19.814Z |
| @art-ws/openapi | 0.1.9 | 2025-09-15T05:21:19.969Z |
| @art-ws/wavuti programu | 1.0.3 | 2025-09-15T05:21:20.383Z |
| @sanaa-ws/ssl-info | 1.0.9 | 2025-09-15T05:21:20.927Z |




