TL; DR
2025 жылдың 14 қыркүйегінде зерттеушілер анықтады Шай Хулуд, ішінде жасырынған өздігінен көбейетін құрт npm пакеттері, күнделікті тәуелділікті жаңартуды толық көлемде жаңарту жеткізу тізбегі шабуылыАлғаш рет байқалды @ctrl/tinycolor Даниел дос Сантос Перейраның пакеті, Shai-Hulud құпияларды жинайды, оларды GitHub репозиторийлері мен жұмыс процестері арқылы шығарады және ұрланған тіркелгі деректерін пайдаланып тізілім бойынша қайта жариялайды. Бірнеше күн ішінде жұқтырылған пакеттер саны ондағаннан жүздегенге дейін өсті, бұл растайды Шайхулуд бұл жай ғана троян емес, сонымен қатар npm экожүйесінде автоматты түрде таралу үшін жасалған құрт.
Әсері: кез келген әзірлеуші немесе CI жүгірушісі жалпыға қолжетімді npm пакеттерін орнататын қауіпте.
Шұғыл әрекеттер: белгілі нұсқаларды бұғаттау, тек құлыптау файлына арналған орнатуларға ауысу, npm және GitHub токендерін бұру, жұмыс процестерін аудиттеу және ымыраға келу индикаторларын (IoC) бақылау.
Не болады?
The Шай-Хулуд жеткізу тізбегіне NPM пакеттеріне шабуыл жасалды соңғы кездегі ең үлкен қайғылы оқиғалардың бірі. Оқшауланған трояндардан айырмашылығы, бұл құрт араласады тіркелгі деректерін ұрлау, автоматтандырылған эксфильтрация және өзін-өзі репликациялауНәтижесінде, инфекцияның таралу уақыты бірнеше аптадан бірнеше сағатқа дейін қысқарды.
DevOps командалары үшін сабақ айқын: егер әрбір орнату кодты орындай алса, онда әрбір тәуелділік жаңартуы ықтимал бұзушылық нүктесі болып табылады.
Мүмкін бастапқы векторлық және мақсатты тіркелгі деректері
Ерте талдау шабуылдың басталған болуы мүмкін екенін көрсетеді ұрланған куәліктерМысалы, фишингтік науқандар npm-ді алдайды login немесе MFA шақырулары әзірлеуші токендерін басып алған болуы мүмкін. Шабуылдаушылар алғашқы тірек болғаннан кейін, құрт өзін npm пакеттеріне ендіру және келесілерден көбірек құпияларды ұрлау арқылы тарады:
- npm конфигурация файлдары сияқты
.npmrc, көбінесе жариялау токендерін қамтиды. - Қоршаған ортаның айнымалылары және GitHub PATs көмегімен конфигурациялайды және CI/CD құпиялар.
- Бұлттық метадеректер соңғы нүктелері (AWS, GCP, Azure) көлденең қозғалыс үшін қысқа мерзімді сенімхат береді.
Сондықтан, тіркелгі деректерін ұрлау іске қосу алаңына айналды. Жарамды npm токендері мен GitHub құпиялары арқылы Shai-Hulud қосымша адам күшін жұмсамай-ақ бірнеше пакеттер мен репозиторийлерде өзін-өзі көшіре алды.
Шай-Хулуд жеткізу тізбегіне шабуылдың атқарушы әсері
Шай-Хулуд бүгін де белсенді. Бұл құрт әсер ету уақытын жылдамдатады. Бұрын троянмен бірнеше апта жұмыс істеген нәрсе қазір бірнеше сағат ішінде жүзеге асады. Нәтижесінде, таралуы жылдамырақ және оны бақылау қиынырақ. Ол келесі жолдармен дамиды:
- npm жариялау токендерін және GitHub құпияларын ұрлау.
- Басқа npm пакеттеріне қайта жариялануда.
- Тұрақтылық үшін зиянды GitHub Actions жұмыс ағындарын қосу.
Кім зардап шегеді:
Ашық npm пакеттерін орнататын кез келген команда қауіпке ұшырайды. Сонымен қатар, кэштелген npm немесе GitHub токендері бар әзірлеушілер жоғары тәуекелге тап болады. Кең ауқымды құпияларды пайдаланатын CI жүгірушілері де осал.
Іскерлік тәуекел
Бизнеске әсері тез өседі. Ұрланған токендер тіркелгіні басып алуға, пакеттерді ұрлауға және тіпті бұлтты дұрыс пайдаланбауға әкелуі мүмкін. Сонымен қатар, GitHub жұмыс процестеріндегі тұрақтылық тазалауды қиындатады. Сондықтан, командалар Шай-Хулудты жабық емес, үздіксіз болып жатқан оқиға ретінде қарастыруы керек.
Шай-Хулуд жеткізу тізбегіне шабуыл npm пакеттерінде қалай жұмыс істейді
Шабуылдаушының мақсаттары мен мотивтері
Науқан үш нәрсені оңтайландырады:
- Бірінші мақсат – ауқымды түрде сенім грамоталарын ұрлау әзірлеуші ноутбуктарынан және CI жүгірушілерінен. Бұған npm жариялау токендері, GitHub токендері және бұлттық тіркелгі деректері кіреді. Шын мәнінде, бірнеше талдаулар TruffleHog іске қосу және бұлттық метадеректерді сұрау сияқты жүйелі құпия жинауды растайды.
- Екінші мақсат – автоматты түрде таралады бұзылған қызмет көрсетушілердің жариялау құқықтарын теріс пайдалану арқылы. Нәтижесінде, бір тірек тез арада көптеген пакеттерге таралады, себебі басқа пакеттердің жаңа жұқтырылған нұсқалары қосымша адам күшінсіз пайда болады.
- Үшінші мақсат – сенімді түрде сақталады және сүзіп шығарылады GitHub инфрақұрылымы арқылы. Шабуылдаушылар қос базалы «Shai-Hulud» атты қоғамдық репозиторий жасайды64 data.json, және сонымен қатар олар серияланатын жұмыс процесін орнатады ${{ toJSON(secrets) }} және оны статикалық веб-хукқа орналастырады.
Мүмкін болатын нәтижеге тізілімдер мен бастапқы кодқа ұзақ мерзімді қол жеткізу, бұлттық тіркелгілерге жылдам бүйірлік көшу және жеткізу тізбегін одан әрі қаруландыру мүмкіндігі кіреді. Жария есеп беру жеке репозиторийлердің жарияға айналдырылғанын көрсетеді «-миграция» деректер экспозициясын және импульсін арттыратын жұрнақ
Шай-Хулуд жүк көлігінің ішінде: bundle.js npm пакеттерінде
Шай-Хулуд кемелерімен үлкен, веб-пакеттерге біріктірілген және қатты минификацияланған JavaScript файлы (bundle.js, шамамен 3–3.7 МБ) бастап орындалады орнатудан кейінгі ілмек пакет.jsonНәтижесінде, Әрбір орнату пайдалы жүктемені автоматты түрде іске қосады. Бұл дизайн идентификаторларды жасырады, басқару ағынын қысады және барлық логиканы орнату кезінде орындалатын бір артефактқа итереді. Сарапшылар Webpack бумаларын, ерекше файл өлшемін және орнату уақытының орындалуын үнемі растайды.
Үлгілерде көрінетін обфускация және талдауға қарсы белгілер:
- Минифицирленген модульдік график сандық модуль идентификаторларымен, сирек түсініктемелермен және тегістелген басқару ағынымен. Сонымен қатар, бұл құрылым қолмен шолуды өте қиындатады.
- Жіпті жасыру base64 қабаттары және құрылыс көмекшілері арқылы. Мысалы, base64 кодтау және декодтау әдетте эксфильтрация процедураларының айналасында пайда болады.
- Динамикалық жіберу арқылы бағалау-style үлгілері және генерацияланған функция денелері, осылайша кодтың орындалу уақытында мінез-құлықты өзгертуіне мүмкіндік береді.
- ОС сүзгісі Linux және macOS жүйелерін, әсіресе CI жүгірушілері мен әзірлеуші ноутбуктарында орындауды жөн көру.
Функционалдық тұрғыдан алғанда, жиынтық модульдік болып табылады. Writeups операциялық жүйені анықтау, файлдық жүйе және git құпия сканерлеу, бұлттық SDK қатынасы, GitHub API операциялары және қолдаушыға тиесілі басқа пакеттерді өңдейтін тарату қозғалтқышы үшін модульдерді сипаттайды. Шын мәнінде, StepSecurity және ReversingLabs екеуі де зиянды ілмекпен пакеттерді автоматты түрде жаңартатын функцияны ерекшелейді.
Shai-Hulud бағдарламасында орнату уақытын орындау: npm пакеттері құртты қалай іске қосады
Шабуыл қашан басталады postinstall түйінін іске қосады bundle.js. Осы кезде скрипт жадтағы жұмыс күйін инициализациялайды және ашады, бұл құрттың толық жұмыс істеуіне негіз болады.
Ашу және жинау
- Пайдалы жүктеме process.env файлын жүктейді және жергілікті файлдарды жоғары энтропиялық құпиялар мен токен префикстерін сканерлейді. Сонымен қатар, ол TruffleHog іске қосу арқылы қамту аясын кеңейтеді.
- Ол қысқа мерзімді тіркелгі деректерін жинау үшін бұлттық метадеректер нүктелерінен сұрау салады. Мысалы, қоңыраулар
169.254.169.254AWS жүйесінде немесеmetadata.google.internalGCP-де көбінесе жұқтырған хосттарда пайда болады. - Демек, Табылған кез келген тіркелгі деректері жаңа npm пакеттерін жариялау немесе GitHub жұмыс процестерін іске қосу үшін дереу пайдалануға болады.
Эксфильтрация
- Құрт GitHub атты жаңа репозиторий жасайды. Шай Хулуд және қос base64-кодталған деп жазады
data.jsonплатформа мәліметтерімен, қоршаған ортаның қалдықтарымен және құпиялармен. Көріп отырғаныңыздай, қорғаушылар қайда қарау керектігін білсе, бұл шулы мінез-құлықты байқау оңай. - Сондай-ақ, ол көбінесе GitHub Actions жұмыс ағынын ... деп аталатын тармаққа орналастырады. шай-хулуд, бұл серияланады
${{ toJSON(secrets) }}және деректерді статикалық веб-хукқа орналастырады. Сонымен қатар, бұл жұмыс процесі біреу оны белсенді түрде жойғанша сақталады.
Таралуы
- Кез келген npm токені анықталған кезде, пайдалы жүктеме бұзылған қолдаушыға тиесілі барлық пакеттерді санайды. Содан кейін ол әрбір tarball файлын алып, bundle.js және postinstall жазбасын енгізеді және пакетті қайта жариялайды.
- Нәтижесінде, бірнеше сағат ішінде ондаған жұқтырған пакеттер пайда болуы мүмкін, бұл экожүйедегі жарылыс радиусын көбейтеді.
Тұрақтылық және әсер ету
Құрт зиянды жұмыс процестерін белсенді ұстайды және бірнеше жағдайда жеке репозиторийлерді public-ке ауыстырады «-миграция» жұрнақ. Жалпы алғанда, бұл шабуылдаушының тірек орнын сақтауын және деректердің ағып кетуін барынша арттыруын қамтамасыз етеді.
Негізгі анықтау туралы ескертпе
Бұл ерекше қолданыс ${{ toJSON(secrets) }} Әрекеттерде жұмыс процестері сирек кездеседі. Сондықтан, Командалар оны аң аулау кезінде жоғары сигналдық индикатор ретінде қарастыруы керек.
Сіз іздеуіңіз керек тазартылған жұмыс процесінің үлгісі
Бұл ерекше қолданыс дейін JSON(құпиялар) in Actions бұл оқиғадағы жоғары сигналдық индикатор болып табылады.
Жоғары деңгейлі тарату псевдокоды (қауіпсіз, сипаттамалық)
Сарапшылар бұл циклды ауқымды түрде бақылады, бұл жұқтырған пакеттердің ондағаннан жүздегенге дейін тез секіруін түсіндіреді.
Неліктен бұл пакеттік экожүйедегі құрт?
Құрт - бұл әр кезеңде оператордың қолмен жасалатын қадамдарын қажет етпей, өздігінен таралатын зиянды бағдарлама. Операциялық жүйелерде құрттар әдетте бір машинадан екіншісіне ауысу үшін желілік осалдықтарды пайдаланады. Керісінше, Shai-Hulud npm тізілімінде жұмыс істейді. Оның тиімді жолы - тіркелгі деректерін қайта пайдалану.
Құрт ұрланған npm жариялау токендерін пайдаланады. Жарамды тіркелгі деректерін алғаннан кейін, ол жұқтырған нұсқаларды сол қызмет көрсетушіге тиесілі басқа пакеттерде қайта жариялайды. Кейіннен бұл пакеттерді күдіктенбейтін әзірлеушілер немесе CI жүгірушілері орнатады және цикл қайталанады.
Осы себепті қауіпсіздік сарапшылары, соның ішінде Қараңғы оқу, Шай-Хулудты келесідей жіктеңіз өздігінен көбейетін құрт қарапайым троян немесе типографиялық қателік емес. Айырмашылығы маңызды: троян әдетте бір хостты бұзады, бірақ құрт экожүйеде өз әсерін автоматты түрде күшейтеді.
«Қалай жұмыс істейді» шпаргалкасы
Шай-Хулудтың өмірлік циклін қорытындылау үшін мына бір кемшілікті айтуға боладыcisоның негізгі кезеңдерін жіктеу:
- Пакет орнатудан кейінгі орнатылған және
bundle.jsорындайды. - Пайдалы жүктеме орта айнымалыларын жояды, файлдарды және git тарихын сканерлейді, іске қосады ТрюфельХогжәне бұлттық метадеректер қызметтеріне сұраулар жасайды. Демек, табылған кез келген құпия бірден пайдалы болады.
- Эксфильтрация екі жолмен жүреді: біріншіден, атты қоғамдық репозиторий құру арқылы Шай Хулуд қос base64-кодталған
data.jsonекіншіден, GitHub Actions жұмыс процесін орналастыру арқылы${{ toJSON(secrets) }}веб-хукқа. - Ұрланған кез келген npm токенін пайдаланып, құрт бұзылған қолдаушыға тиесілі барлық басқа пакеттерді сол зиянды ілмекпен қайта жариялайды. Осылайша, инфекция тез көбейеді.
- Соңында, шабуылдаушы көбірек құпияларды, таратуға арналған көбірек пакеттерді сақтайды және табандылық GitHub тіркелгілері мен репозиторийлерінің ішінде.
Бұл шабуыл класынан іс жүзінде қалай аулақ болуға болады
Шай-Хулуд – ояту қоңырауы. Токендерді ұрлап, өзін қайта жариялайтын құрт болашаққа қауіп төндірмейді, ол тірі npm пакеттерінің экожүйесі бүгін. Мұндай түрдің алдын алу үшін жеткізу тізбегі шабуылы, командаларға бағдарламаланатын, автоматтандырылған және тікелей орындалатын басқару элементтері қажет CI/CD pipelines. Бұл сіз қазірдің өзінде енгізе алатын қорғаныс құралдарымен бірдей. Ксигени.
Қақпада жаман артефактілерді тоқтатыңыз
npm пакеттері мен тарболдарын әзірлеушілерге немесе CI тапсырмаларына жеткенге дейін сканерлеу керек. bundle.js файлдар, күдікті орнатудан кейінгі hooksжәне түсініксіздік белгілерінің барлығы ерте қауіпті белгілер ретінде қызмет етеді. Сонымен қатар, салқындату кезеңдерін және бекітілген нұсқаларды орындау pipelines жаңа, тексерілмеген шығарылымдардың автоматты түрде тұтынылуына жол бермейді.
Қатты CI/CD әдепкі бойынша
Guardrails in CI/CD маңызды. Олар жаңа сценарийлерді немесе екілік файлдарды енгізетін біріктірулерді немесе орнатуларды қабылдамайды. Сонымен қатар, олар құпияларды сериялайтын немесе сыртқы жазбаларды жасауға тырысатын жұмыс ағындарын бұғаттайды. Командалар сонымен қатар тек құлыптау файлын орнатуды талап етуі керек (npm ci) барлығы бойынша pipelineсондықтан тәуелділік жиынтықтары қайталанатын және қауіпсіз болып қалады.
Токеннің жарылыс радиусын азайтыңыз
Құпиялар сәтсіздіктің жалғыз нүктесіне айналмауы керек. Кодты, конфигурацияларды және pipeline үшін шығару ашық тіркелгі деректеріТокендер қысқа мерзімге тар шеңберде болуы керек және экспозиция анықталған кезде автоматты түрде айналуы керек. Әдетте, күдікті постинсталляцияны орындаған хостта пайдаланылған кез келген токенді бұзылған деп қарастырыңыз.
Құрттың мінез-құлқын ертерек көріңіз
Аномалды анықтау маңызды. Мысалы, npm жариялау оқиғаларындағы кенеттен күрт секірулер, себепсіз пайда болатын жаңа жұмыс процестері немесе таңқаларлық кодталған файлдармен толтырылған жаңа қоғамдық репозиторийлер құрттардың белсенділігі туралы сигнал бере алады. Сондықтан топтар ескертулерді тез арада жіберіп, осы ескерту белгілерін көрсететін кез келген техникалық қызмет көрсетушілерді немесе жүгірушілерді оқшаулауы керек.
Құрылымдарды бұзбай тез жөндеңіз
Жылдамдық пен қауіпсіздік бірге болуы керек. Автоматтандырылған. pull requests бұзылған npm пакеттерін тексерілген нұсқалармен ауыстыра алады. Сонымен қатар, қолжетімділік және пайдалану мүмкіндігі талдау жаңартулардың минималды және тұрақты болуын қамтамасыз етеді. Соңында, шабуылдың одан әрі таралуына жол бермей, әсер ету расталғаннан кейін зақымдалған CI жүгірушілерін таза кескіндерден қалпына келтіріңіз.
Келісім көрсеткіштері (IoC)
Шай-Хулудты талдаған кезде командалар екеуіне де назар аударуы керек статикалық IoC файлдарда және мінез-құлықтық IoC in pipelineБұл сигналдар бірге инфекцияларды ерте анықтауға және құрттың одан әрі таралуына дейін жауап беруге көмектеседі.
Статикалық IoC-лар
Келесі SHA-256 дайджесттерінің сәйкестігі байқалды bundle.js үлгілер:
- 46faab8ab153fae6e80e7cca38eab363075bb524edd79e42269217a083628f09
- 81d2a004a1bca6ef87a1caf7d0e0b355ad1764238e40ff6d1b1cb77ad4f595c3
- dc67467a39b70d1cd4c1f7f7a459b35058163592f4a9e8fb4dffcbba98ef210c
Сонымен қатар, келесі қайталанатын үлгілерге назар аударыңыз:
- A
bundle.jsпакеттің түбірінде. "postinstall": "node bundle.js"ішіндеpackage.json.- Аталған репозиторийлер Шай Хулуд.
- GitHub жұмыс процестерін қамтиды
${{ toJSON(secrets) }}.
Мінез-құлықтық IoC
Файл қолтаңбаларынан басқа, құрт белсенділігі өзін мінез-құлық арқылы көрсетеді. Мысалы:
- Кенеттен npm жарылыстары бір қолдаушыдан оқиғаларды жариялайды.
- Деректерді сыртқы соңғы нүктелерге жіберетін жаңа жұмыс процестері.
- CI жүгірушілерінен іске қосылған шығыс POST сұраулары.
- Жақында кодталған блобтары бар қоғамдық репозиторийлер жасалды.
Жылдам аң аулау
Қорытынды: Шай-Хулудтан алынған сабақтар
The Шай-Хулуд жеткізу тізбегіне шабуыл npm пакеттеріндегі қате бүгінгі бағдарламалық жасақтама жеткізу тізбегінің қаншалықты нәзік екенін көрсетеді. Бұл құрт зиянды кодты қосудан да көп нәрсе жасады. Ол токендерді ұрлап, деректерді жіберіп, содан кейін өзін автоматты түрде қайта жариялады. Осыған байланысты шабуыл апталардың орнына бірнеше сағат ішінде тарады.
Әзірлеушілер мен DevOps командалары үшін сабақтар айқын:
- Әрбір орнату кодты іске қосады. Тіпті қарапайым npm пакеті де postinstall құртын жасыра алады.
- Әрбір токеннің жоғары құндылығы бар. Ұрланғаннан кейін оны зиянды бағдарламаларды одан әрі тарату үшін пайдалануға болады.
- әрбір pipeline тексерулерді қажет етеді. жоқ guardrails Тәуелділіктерге, жұмыс процестеріне және құпияларға қатысты бір ғана келісім өндіріске тез әсер етуі мүмкін.
Сондықтан, Shai-Hulud сияқты шабуылдарды тоқтату үшін автоматты және оңай орындалатын басқару элементтері қажет. Командалар орнату алдында npm пакеттерін сканерлеуі, құлыптау файлының құрастырылымдарын пайдалануы, таңқаларлық жариялау әрекетін анықтауы және токендердің қысқа мерзімді болуын қамтамасыз етуі керек. Бұл қадамдар енді міндетті емес. Керісінше, олар қазіргі заманғы тұрақтылықтың негізі болып табылады. pipelines.
Xygeni компаниясында біз Шай-Хулуд жеткізу тізбегіне шабуылды бүкіл ашық бастапқы кодты экожүйе үшін ескерту ретінде қарастырамыз. Тұрақты алға жылжудың жолы - жеткізу тізбегінің қауіпсіздігін код, npm пакеттері және т.б. сияқты даму процесіне тікелей енгізу. pipelineқосылу.
Төменде Shai-Hulud жүйесінде бұзылған деп хабарланған npm пакеттері мен нұсқаларының толық тізімі берілген. Оны құлыптау файлдарыңызды, тізілімдеріңізді және CI тексеру үшін пайдаланыңыз. pipelineэкспозиция үшін s.
Қауіпті пакеттер тізімі
📦 Бұзылған npm пакеттерінің алдын ала шолуы
| Пакеттің атауы | нұсқа | Жариялау күні |
|---|---|---|
| json-ережелері-қозғалтқышы-жеңілдетілген | 0.2.1 | 2025-09-14T17:58:51.203Z |
| ұшқыш | 0.8.8 | 2025-09-14T18:35:07.600Z |
| mcp-білім-графигі | 1.2.1 | 2025-09-14T18:35:09.494Z |
| ұшақ капсуласы | 0.3.1 | 2025-09-14T18:35:09.521Z |
| секіру қақпасы | 0.0.2 | 2025-09-14T18:35:09.651Z |
| tvi-cli | 0.1.5 | 2025-09-14T18:35:10.996Z |
| @thangved/кері шақыру терезесі | 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/react-table | 6.10.20 | 2025-09-14T20:37:08.597Z |
| @hestjs/демо | 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/config-manager | 0.1.1 | 2025-09-14T20:45:55.066Z |
| @nexe/logger | 0.1.3 | 2025-09-14T20:45:55.170Z |
| @hestjs/logger | 0.1.6 | 2025-09-14T20:45:55.197Z |
| @hestjs/тексеру | 0.1.6 | 2025-09-14T20:45:55.595Z |
| @hestjs/core | 0.2.1 | 2025-09-14T20:45:55.888Z |
➡️ Бұзылған пакеттердің толық тізімін қараңыз
| Пакеттің атауы | нұсқа | Жариялау күні |
|---|---|---|
| json-ережелері-қозғалтқышы-жеңілдетілген | 0.2.1 | 2025-09-14T17:58:51.203Z |
| ұшқыш | 0.8.8 | 2025-09-14T18:35:07.600Z |
| mcp-білім-графигі | 1.2.1 | 2025-09-14T18:35:09.494Z |
| ұшақ капсуласы | 0.3.1 | 2025-09-14T18:35:09.521Z |
| секіру қақпасы | 0.0.2 | 2025-09-14T18:35:09.651Z |
| tvi-cli | 0.1.5 | 2025-09-14T18:35:10.996Z |
| @thangved/кері шақыру терезесі | 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/react-table | 6.10.20 | 2025-09-14T20:37:08.597Z |
| @hestjs/демо | 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/config-manager | 0.1.1 | 2025-09-14T20:45:55.066Z |
| @nexe/logger | 0.1.3 | 2025-09-14T20:45:55.170Z |
| @hestjs/logger | 0.1.6 | 2025-09-14T20:45:55.197Z |
| @hestjs/тексеру | 0.1.6 | 2025-09-14T20:45:55.595Z |
| @hestjs/core | 0.2.1 | 2025-09-14T20:45:55.888Z |
| @hestjs/cqrs | 0.1.6 | 2025-09-14T20:45:55.966Z |
| @hestjs/скаляр | 0.1.7 | 2025-09-14T20:45:56.386Z |
| ng2-файлды жүктеу | 7.0.3 | 2025-09-15T02:44:29.555Z |
| конденсатор-хабарландыруөңдегіші | 0.0.2 | 2025-09-15T04:54:48.431Z |
| конденсатор-плагин-вонаж | 1.0.2 | 2025-09-15T04:54:48.501Z |
| конденсатор-плагин-денсаулық қолданбасы | 0.0.2 | 2025-09-15T04:54:48.704Z |
| конденсатор және Android рұқсаттары | 0.0.4 | 2025-09-15T04:54:48.753Z |
| voip-callkit | 1.0.2 | 2025-09-15T04:54:49.223Z |
| конденсатор-плагин-ihealth | 1.1.8 | 2025-09-15T04:55:08.113Z |
| @art-ws/common | 2.0.22 | 2025-09-15T05:21:15.411Z |
| @art-ws/config-eslint | 2.0.4 | 2025-09-15T05:21:17.199Z |
| ngx-ws | 1.1.5 | 2025-09-15T05:21:17.514Z |
| @art-ws/slf | 2.0.15 | 2025-09-15T05:21:17.524Z |
| @art-ws/http-сервер | 2.0.21 | 2025-09-15T05:21:17.745Z |
| pm2-gelf-json | 1.0.4 | 2025-09-15T05:21:18.413Z |
| @art-ws/di | 2.0.28 | 2025-09-15T05:21:18.488Z |
| @art-ws/di-node | 2.0.13 | 2025-09-15T05:21:18.849Z |
| @art-ws/config-ts | 2.0.7 | 2025-09-15T05:21:19.408Z |
| @art-ws/db-context | 2.0.21 | 2025-09-15T05:21:19.814Z |
| @art-ws/openapi | 0.1.9 | 2025-09-15T05:21:19.969Z |
| @art-ws/web-app | 1.0.3 | 2025-09-15T05:21:20.383Z |
| @art-ws/ssl-info | 1.0.9 | 2025-09-15T05:21:20.927Z |




