TL; DR
Ní ọjọ́ kẹrìndínlógún oṣù kọkànlá ọdún 2025, àwọn olùwádìí ṣàwárí Shai Hulud: Ìpadàbọ̀ Kejì, ìgbì tuntun ti Ikọlu NPM Ipese Pq Kọlu èyí tí ó tún ń kó àrùn bá àwọn npm packages, jí àwọn ìwé ẹ̀rí, tí ó sì ń tàn káàkiri àwọn ẹ̀rọ olùgbéjáde àti CI/CD pipelines. Láìdàbí ìṣẹ̀lẹ̀ àkọ́kọ́, àtúnṣe yìí fi àkókò ìṣiṣẹ́ Bun sílẹ̀ lójúkan, ó gbé àwọn ìlẹ̀kùn ẹ̀yìn GitHub Actions tí a fi pamọ́ síta, ó sì ní ohun èlò ìparun tí ó lè pa gbogbo àwọn ìwé àkójọ ilé rẹ́ lórí Linux, macOS, àti Windows. Láàárín wákàtí díẹ̀, iye àwọn ìdìpọ̀ tí a ti bàjẹ́ pọ̀ ju 830 lọ, èyí tí ó fìdí rẹ̀ múlẹ̀ pé èyí kìí ṣe ìyàtọ̀ tí ó rọrùn ṣùgbọ́n ìdàgbàsókè pàtàkì ti kòkòrò àtilẹ̀wá.
ikolu: eyikeyi olupilẹṣẹ tabi olusare CI ti o n fi awọn package npm gbangba sori ẹrọ le ti farahan. Awọn ẹgbẹ Java tun wa ninu ewu lẹhin ti a ti fi awọn package ti o ni akoran han ni Maven Central laifọwọyi.
Awọn iṣe lẹsẹkẹsẹ: Dídínà àwọn ẹ̀yà búburú tí a mọ̀, fi agbára mú àwọn ìfi sori ẹrọ lockfile nìkan, yí npm, GitHub, àti àwọn ẹ̀rí ìkùukùu padà, mú àwọn olùṣiṣẹ́ tí a kò mọ̀ tí a gbàlejò kúrò, kí o sì ṣe àbójútó fún àwọn IoC bíi setup_bun.js, bun_environment.js, àti àwọn ibi ìpamọ́ GitHub tí a fura sí tí ó ní “Sha1-Hulud: Ìpadàbọ̀ Kejì”.
Ohun tó yípadà: Shai Hulud nínú ìkọlù NPM Supply Chain Attack nígbà tó fò sí Maven
Ìgbì kejì ìkọlù Shai Hulud mú kí ìlọsíwájú ńlá wáyé. Nínú ìpolongo àkọ́kọ́, kòkòrò náà dúró sí inú ètò npm. Ní àkókò yìí, àwọn kòkòrò náà wọ́pọ̀ sí inú Maven Central, tí ó ń fi àwọn ẹgbẹ́ Java tí kò fọwọ́ kan npm hàn.
Ìlà Àkókò àti Fèrèsé Àmì
Ikọlu naa bẹrẹ ni November 24, 2025, kí npm tó ti fẹ̀yìntì àwọn àmì ìdánilójú àtijọ́ rẹ̀ lórí December 9.
Ó rọrùn láti jí àwọn àmì àtijọ́ wọ̀nyí kí wọ́n sì tún lò wọ́n. Nítorí pé àwọn agbésùn náà ṣì ní àǹfààní láti rí wọn nígbà tí wọ́n bá ń wo fèrèsé yìí, wọ́n lè tún ṣe àtúntẹ̀ ọgọ́rùn-ún àwọn ẹ̀yà búburú ní iyàrá gíga kí wọ́n tó parí iṣẹ́ náà.
Báwo ni Malware ṣe dé Maven
Ìforíkorí ìforúkọsílẹ̀ náà ṣẹlẹ̀ nítorí mvnpm, irinṣẹ́ àtúnṣe aládàáṣe kan tí ó ń yí àwọn páálí npm padà sí àwọn ohun ìṣẹ̀dá Maven.
mvnpm kò ṣe àyẹ̀wò ààbò. Ó kàn ń tún gbogbo ohun tí npm bá tẹ̀ jáde ṣe.
Nitorina na:
- Àpò npm tí ó ní ìṣòro (fún àpẹẹrẹ) posthog-node@4.18.1)
- A ti yipada laifọwọyi si ohun-elo Maven kan
org.mvnpm:posthog-node:4.18.1 - Wọ́n sì tẹ̀ ẹ́ jáde sí Maven Central kí ẹnikẹ́ni tó mọ̀ pé ó ní àkóràn náà.
Itumo eleyi ni Àwọn olùgbéjáde Java di olùfaragbá ìrúfin npm kan, kódà bí wọn kò bá fi npm package kan síbẹ̀ rí.
Idi Eyi Ṣe Pataki
Eleyi ni awọn kòkòrò ìforúkọsílẹ̀ àkọ́kọ́ tí a mọ̀, níbi tí ìkọlù ẹ̀wọ̀n ìpèsè kan ti tànkálẹ̀ láti àyíká kan sí òmíràn nípasẹ̀ iṣẹ́ àdánidá nìkan.
Nítorí èyí, radius ìbúgbàù náà ní àwọn iṣẹ́ Java, JVM, àti enterprise kọ awọn eto ti o gbẹkẹle Maven Central.
Kí ló mú kí Shai Hulud 2.0 jẹ́ ohun tó ṣe pàtàkì tó bẹ́ẹ̀?
Àkókò Ìṣiṣẹ́ Bun tí a lò láti yẹra fún wíwá
Àwọn olùkọlù náà yípadà láti Node.js sí àkókò ìṣiṣẹ́ Bun. Malware náà ń fi Bun sori ẹ̀rọ lórí fóònù nígbà tí ó bá ń lọ. setup_bun.js Nígbà tí a bá ń fi àpò sílẹ̀. Èyí yẹra fún àbójútó pàtó fún Node, ó sì fún àwọn agbésùn ní ìṣẹ́gun kíákíá fún ẹrù tí ó bò mọ́lẹ̀ gidigidi.
Awọn iṣe GitHub ti a lo bi ilẹkun abẹlẹ aṣẹ
Ní kete tí a bá ti fi sori ẹrọ, malware náà yóò ṣẹ̀dá olùṣiṣẹ́ GitHub Actions tí a fi pamọ́ tí ó sì ń gbàlejò fúnrarẹ̀ nínú $ILE/.dev-env/Èyí ń ṣiṣẹ́ lórí Windows, macOS, àti Linux. Àwọn olùkọlù lè ṣiṣẹ́ àṣẹ nípa fífi àwọn ìránṣẹ́ ránṣẹ́ sí GitHub Discussions lórí ibi ìpamọ́ tí ó ní ìṣòro. Fáìlì ìṣiṣẹ́ kan ń ṣe àgbékalẹ̀ àwọn ìránṣẹ́ wọ̀nyẹn ó sì ń ṣe wọ́n gẹ́gẹ́ bí àṣẹ ikarahun.
Wiper tí a ṣe sínú rẹ̀
Tí malware kò bá lè fi GitHub tàbí npm ṣe àfihàn rẹ̀, ó máa pa ìwé àkójọ ilé ẹni tí wọ́n lù ní rẹ́.
- Lórí Windows, ó ń lo del, rd, Ati ìkọ̀wé /W láti nu àwọn fáìlì.
- Lórí Linux àti macOS, ó máa ń fi àwọn ìwífún kún un ge lẹ́yìn náà ó yọ àwọn ìwé àkójọpọ̀ kúrò.
Ipolongo Ariwo Pupo kan
Bó tilẹ̀ jẹ́ pé malware náà ń lo ìkọ̀kọ̀ díẹ̀ (fún àpẹẹrẹ, nípa lílo Bun), gbogbo ìpolongo náà kò dákẹ́ rárá. Ó ń tún àwọn àkójọ tí ó ti bàjẹ́ ṣe àtúntẹ̀, ó ń ṣẹ̀dá ọgọ́rọ̀ọ̀rún tàbí ẹgbẹẹgbẹ̀rún àwọn ibi ìpamọ́ tuntun, ó ń gbé àwọn ìkọ̀sílẹ̀ ìwé ẹ̀rí sókè ní ọ̀pọ̀lọpọ̀, ó sì ń fi àwọn olùṣiṣẹ́ tí ó ti pẹ́ tí wọ́n ti ń gbàlejò sórí àwọn ẹ̀rọ olùgbéjáde. Kò sí èyí tí ó jẹ́ ìwà tí kò dára. Ìwọ̀n, iyàrá, àti “kíkékeré” ìṣiṣẹ́ ti ìkọlù yìí yàtọ̀ sí ọ̀pọ̀lọpọ̀ àwọn ìforígbárí ẹ̀rọ ìpèsè, èyí tí ó máa ń mú kí a má rí wọn fún ìgbà pípẹ́ bí ó ti ṣeé ṣe tó..
Ipa Gbòòrò
Àwọn agbébọn náà fi ọ̀pọ̀lọpọ̀ àwọn ìdìpọ̀ tí a mọ̀ dáadáa pamọ́ pẹ̀lú àràádọ́ta ọ̀kẹ́ ìgbàsílẹ̀ oṣooṣù, títí bí:
Zapier, Àwọn Domains ENS, Postman, PostHog, AsyncAPI, àti Voiceflow.
Àwọn àmì ìfìhàn tó ṣeéṣe
Ìfipamọ́ náà ṣòro níbí, kò sì sí orísun tó fìdí múlẹ̀ tó wà lẹ́yìn ìpolongo náà. Ilé iṣẹ́ ààbò pàtàkì kan sọ pé iṣẹ́ náà jọ kòkòrò Shai-Hulud tó ti wà tẹ́lẹ̀, ṣùgbọ́n ìyàtọ̀ nínú bí a ṣe ń kó ẹrù iṣẹ́ náà àti bí malware ṣe ń tàn kálẹ̀ tọ́ka sí bóyá àwọn oníṣẹ́ mìíràn yóò wà. Ìṣirò wọn fi hàn pé ọ̀pọ̀ àyíká ló gba àwọn ìpèsè tí wọ́n ti bàjẹ́ sílẹ̀ kí npm tó yọ wọ́n kúrò, èyí tó fi hàn pé wọ́n máa ń fara hàn ní ayé gidi dípò ìdánwò kúkúrú.
Nítorí pé àwọn ọgbọ́n ìṣiṣẹ́ náà ń yípadà sí ìgbì àkọ́kọ́ síbẹ̀ wọ́n yàtọ̀ síra ní àwọn ibi pàtàkì, pàápàá jùlọ nínú ètò ẹrù iṣẹ́, ìlànà ìdàgbàsókè, àti “àṣà” iṣẹ́, ó ṣeé ṣe kí ó jẹ́ pé a lè ṣe àwòkọ rẹ̀. Àwọn olùkọlù náà lè ti yá àwọn èrò láti ọ̀dọ̀ Shai-Hulud ṣùgbọ́n wọ́n ti lo irinṣẹ́ tiwọn. Èyí lè dúró fún ẹgbẹ́ mìíràn tí wọ́n ń gbìyànjú láti fara wé ìpolongo ìṣáájú náà.
Ní àkókò yìí, kò sí ẹ̀rí tó lágbára tó so ó pọ̀ mọ́ òṣèré tí a mọ̀, ẹgbẹ́ tó ní ìṣúná owó, tàbí ẹgbẹ́ tó ní àjọṣepọ̀ pẹ̀lú ìjọba. Ìfarakanra pẹ̀lú kòkòrò àtilẹ̀wá jẹ́ òótọ́, ṣùgbọ́n ìyàtọ̀ náà ṣe pàtàkì tó láti jẹ́ kí ìfàmọ́ra wà ní ẹ̀ka “tí a kò tíì fìdí rẹ̀ múlẹ̀”.
Tan sí Maven
Ilé iṣẹ́ ààbò pàtàkì kan fìdí rẹ̀ múlẹ̀ pé àwọn ìdìpọ̀ npm búburú náà ni a tún tẹ̀ jáde láìfọwọ́sí sí Maven nípasẹ̀ mvnpm, irinṣẹ́ kan tí ó ń yí àwọn páálí npm padà sí àwọn ohun èlò Maven láìsí àtúnyẹ̀wò ọwọ́.
Wọ́n gbé àpò yìí lọ sí Maven Central: org.mvnpm:posthog-node:4.18.1
Nítorí pé mvnpm kàn máa ń tún gbogbo ohun tí npm bá tẹ̀ jáde ṣe, àwọn ẹ̀yà tí ó ní àkóràn náà fara hàn nínú ètò Java kí ẹnikẹ́ni tó mọ̀ ọ́n.
Maven Central yọ àwọn ohun ìṣẹ̀ǹbáyé tí ó ní ipa lórí kúrò ní ọjọ́ kẹẹ̀ẹ́dọ́gbọ̀n oṣù kọkànlá ọdún 2025, ó sì bẹ̀rẹ̀ sí í mú àwọn ìlànà le láti dènà àwọn ìṣòro ìforúkọsílẹ̀ kan náà.
Èyí túmọ̀ sí wípé àwọn iṣẹ́ Java tí kò ní ìsopọ̀ tààrà sí npm lè ti fara hàn.
Báwo ni ìkọlù Shai Hulud 2.0 ṣe ń ṣiṣẹ́
Ṣíṣàn àkóràn
- Ẹlẹ́gbin kan fi sori ẹrọ tẹlẹ a fi ìwé àfọwọ́kọ kún package.json.
- setup_bun.js fi Bun sori ẹrọ olufaragba ti o ba sọnu.
- bun_ayika.js (ó ju ìlà 480k ti kódì tí a ti bò mọ́lẹ̀ lọ) ń ṣiṣẹ́ ní ẹ̀yìn.
- Àwọn ọ̀nà tí ó jọ TruffleHog ni wọ́n fi ń ṣe àyẹ̀wò àwọn ìwé ẹ̀rí fún malware.
- Àwọn kọ́kọ́rọ́ AWS, GCP, àti Azure
- GitHub àmi
- àwọn àmì npm
- Àwọn àṣírí ètò CI
- Àwọn kọ́kọ́rọ́ AWS, GCP, àti Azure
- A gbé àwọn dátà tí a jí gbé sórí àwọn ibi ìpamọ́ GitHub gbogbogbò tí ó ní àpèjúwe “Sha1-Hulud: Ìpadàbọ̀ Kejì”.
- Nípa lílo àwọn àmì tí a mú, malware náà ń tẹ àwọn ẹ̀yà tí ó ti bàjẹ́ ti àwọn àkójọpọ̀ jáde, ó ń kó àrùn bá àwọn ibi ìpamọ́ GitHub tí ó ṣeé wọ̀lé, ó sì ń fi àwọn olùṣiṣẹ́ tí ó ń gbàlejò ara wọn sílẹ̀ fún ṣíṣe kódì láti ọ̀nà jíjìn.
Awọn iṣan-iṣẹ GitHub irira
Nígbà ìgbì kejì ti Shai-Hulud NPM Supply Chain Attack, malware tí a ṣẹ̀dá awọn iṣan-iṣẹ iṣẹ GitHub ti o farapamọ meji nínú àwọn ibi ìkópamọ́ tí ó ti bàjẹ́. Àwọn ìṣiṣẹ́ wọ̀nyí fún àwọn olùkọlù ní ìmúṣẹ koodu láti ọ̀nà jíjìn, ìfaradà ìgbà pípẹ́, àti àǹfààní kíkún sí àwọn àṣírí ètò.
1. Iṣẹ́ ìṣiṣẹ́ ẹ̀yìn ilé (discussion.yaml)
Iṣẹ́ ìṣiṣẹ́ tó léwu jùlọ tẹ́tí sí Àwọn ìjíròrò GitHub Àwọn ìṣẹ̀lẹ̀. Nígbà tí a bá ṣẹ̀dá tàbí ṣàtúnṣe ìránṣẹ́ ìjíròrò, iṣẹ́ ìṣiṣẹ́ náà máa ń ka ara ìránṣẹ́ náà, ó sì máa ń ṣe é gẹ́gẹ́ bí pipaṣẹ ikarahun lórí ẹ̀rọ tí wọ́n fi ń pàdánù.
Ni isalẹ jẹ ẹya ti o rọrun ti iṣiṣẹ-ṣiṣe irira, ti a tun ṣe lati awọn ayẹwo ti a ṣe akiyesi:
Ìlà pàtàkì náà ni:
Èyí túmọ̀ sí wípé olùkọlù náà lè fi àṣẹ èyíkéyìí síta nínú ìjíròrò GitHub, olùkọlù náà yóò sì ṣe é lẹ́sẹ̀kẹsẹ̀. Nítorí pé àwọn olùkọlù náà sábà máa ń ní àǹfààní sí àwọn nẹ́tíwọ́ọ̀kì inú, àwọn ìwé ẹ̀rí ìkùukùu, àti àwọn àṣírí CI, ilẹ̀kùn ẹ̀yìn yìí fún olùkọlù náà ní ìmúṣẹ kódì ìjìnnà pátápátá nígbà ìkọlù Shai Hulud NPM Supply Chain Attack.
Àṣẹ Abẹ́rẹ́ Lílo
Ìṣiṣẹ́ yìí ń lo ọ̀nà tí GitHub Actions ń gbà ṣe àgbékalẹ̀ àwọn ìgbékalẹ̀. Dípò kí ó dín ìfikún sí àwọn okùn ààbò kù, ó ń ka àwọn ìjíròrò tí kò ṣe kedere ó sì ń gbé e sí ìkọ̀kọ̀ taara. Nítorí náà, olùkọlù náà kàn ní láti fi ìránṣẹ́ kan ránṣẹ́ bíi:
Nítorí pé ìwà yìí farahàn nígbà Shai Hulud NPM Supply Chain Attack, ó di ọ̀kan lára àwọn àmì tó ṣe kedere pé malware náà ń lo GitHub Actions gẹ́gẹ́ bí ikanni àṣẹ láti ọ̀nà jíjìn.
Àwọn olùsáré tí wọ́n ń gbàlejò fúnra wọn mú kí èyí burú sí i nítorí wọ́n:
- ṣiṣẹ inu awọn nẹtiwọọki ile-iṣẹ
- di awọsanma mu tabi CI/CD awọn iwe eri
- mu ṣiṣẹ pẹlu awọn igbanilaaye olumulo
- Má ṣe ní àgbékalẹ̀ sandboxing tàbí ìyàsọ́tọ̀ GitHub
Èyí fún àwọn olùkọlù ní ọ̀nà àṣẹ tí ó dúró ṣinṣin sínú àwọn àyíká inú.
Iṣẹ́ Àṣírí àti Ìkójọpọ̀ Ètò
Yàtọ̀ sí ẹnu ọ̀nà ẹ̀yìn, malware náà ń yọ ìṣiṣẹ́ mìíràn tí ète rẹ̀ ni láti kó àwọn ìwífún tó ṣe pàtàkì jọ àti láti tọ́jú wọn láti inú ètò tí ó ní àkóràn náà.
Awọn iṣẹ-ṣiṣe wọnyi n pejọ:
- àwọn ìwé ẹ̀rí ìkùukùu
- awọn oniyipada ayika
- liana awọn akojọ
- Àwọn àwòrán ìkọ̀kọ̀ tí a fi truffleHog ṣe
Wọ́n ń tọ́jú àwọn ìwífún tí a kó jọ sínú àwọn fáìlì bíi:
- ìkùukùu.json
- àyíká.json
- àwọn akoonu.json
- truffleSecrets.json
Lẹ́yìn náà, a óò gbé àwọn fáìlì wọ̀nyí sí àwọn ibi ìpamọ́ GitHub tí olùkọlù ń ṣàkóso tí a kọ àmì sí “Sha1-Hulud: Ìpadàbọ̀ Kejì”, níbi tí a ti rí ọgọ́rọ̀ọ̀rún tàbí ẹgbẹẹgbẹ̀rún àwọn ìdànù omi.
Awọn afihan ti Ibajẹ
| faili | SHA256 |
|---|---|
| setup_bun.js | a3894003ad1d293ba96d77881ccd2071446dc3f65f434669b49b3da92421901a |
| bun_ayika.js | 62ee164b9b306250c1172583f138c9614139264f889fa99614903c12755468d0 |
Miiran Red awọn asia
- .github/workflows/discussion.yaml
- $ILE/.dev-env/ tí ó ní àwọn asáré tí a kò retí
- Àwọn ibi ìpamọ́ GitHub gbogbogbò tí a ṣẹ̀dá sí àkọọ́lẹ̀ rẹ tí ó ní “Sha1-Hulud: Ìpadàbọ̀ Kejì”
Àwọn Ìwọ̀n Tí A Ṣe Àtúnṣe (gẹ́gẹ́ bí ti Oṣù Kọkànlá 26, 2025)
| ọkọọkan | ka |
|---|---|
| awọn idii npm ti bajẹ | 830 + |
| Àwọn ibi ìpamọ́ GitHub tí ó ní àkóràn | 28,000 + |
| Àwọn fáìlì ìkọ̀kọ̀ tí a gbé sórí ayélujára | 5,000 + |
| Àṣírí gbogbo tí a kó jọ | 11,858 |
| Àwọn àṣírí tó wúlò | 2,298 |
Ohun tí ó yẹ kí o ṣe nísinsìnyí: Ìdáhùn sí ìkọlù Shai Hulud NPM Supply Chain Attack
Iṣẹ́ ìkọlù Shai Hulud NPM Supply Chain Attack nílò ìdáhùn kíákíá àti ìṣètò. Níwọ́n ìgbà tí ìgbì kejì yìí tàn káàkiri npm, GitHub, àwọn ẹ̀rọ olùgbéjáde àti Maven Central pàápàá, àwọn ẹgbẹ́ gbọ́dọ̀ yára gbéra láti ṣàwárí, kí wọ́n sì tún gbogbo ìfarahàn wọn ṣe pátápátá. Àwọn ìgbésẹ̀ tí ó wà ní ìsàlẹ̀ yìí yóò ràn ọ́ lọ́wọ́ láti dáhùn ní ìtòlẹ́sẹẹsẹ tí ó tọ́ kí o sì dín ewu ìfọkànsìn síwájú sí i kù.
erin
- Wa ibi ipamọ GitHub pẹlu apejuwe “Sha1-Hulud: Wiwa Keji”.
- Wa awọn akọsilẹ fifi sori ẹrọ Bun lakoko fifi sori ẹrọ package.
- Ṣe àyẹ̀wò àwọn fáìlì package.json fún àwọn ìwé àkọsílẹ̀ ìgbésí ayé tí a kò retí, pàápàá jùlọ fi sori ẹrọ tẹlẹ.
- Ṣayẹwo fun $ILE/.dev-env/ lórí àwọn ètò olùgbékalẹ̀ tàbí CI.
- Ṣe àtúnyẹ̀wò àwọn àkọsílẹ̀ ìtẹ̀jáde GitHub àti npm fún àwọn ìtújáde tí a fura sí.
Gbigba
- Yi gbogbo awọn iwe-ẹri pada: GitHub, npm, awọsanma, awọn asiri CI, awọn bọtini API.
- Má ṣe pa àwọn olùsáré tí a kò mọ̀ tí wọ́n sì ń gbàlejò mọ́ kúrò.
- Tii iṣẹda repo fun igba diẹ.
- Yọ àwọn ẹ̀yà tí ó ní àkóràn kúrò nínú àwòrán ìgbẹ́kẹ̀lé rẹ.
Idapada
- Nu awọn eto ti o kan mọ.
- Ṣe àtúnyẹ̀wò gbogbo iṣẹ́ ìṣiṣẹ́ GitHub Actions fún àwọn fáìlì tí a fi sínú rẹ̀.
- Ṣe àwárí àwọn àkọsílẹ̀ CI rẹ fún àwọn àṣẹ tàbí ìṣiṣẹ́ tí kò wọ́pọ̀.
Tún kọ́ láti inú àwọn ẹ̀yà àkójọpọ̀ tó dára tí a mọ̀.
Bí Xygeni ṣe ń ran lọ́wọ́ láti dá àwọn ìkọlù dúró bíi Shai-Hulud nígbà tí ó padà dé lẹ́yìn náà
Lẹ́yìn ìpolongo tó lágbára bíi Shai-Hulud Second Coming, àwọn ẹgbẹ́ nílò ju àyẹ̀wò ọwọ́ lọ. Wọ́n nílò ààbò aládàáṣe tí ó ń dí malware lọ́wọ́ kí ó tó dé ọ̀dọ̀ àwọn olùgbékalẹ̀, àwọn olùṣiṣẹ́ CI, tàbí àwọn ètò ìṣelọ́pọ́. Ibí ni Xygeni ti ń fúnni ní àǹfààní pàtàkì.
Ìkìlọ̀ Àkọ́kọ́ Malware (MEW): Ṣàwárí àwọn ìhalẹ̀mọ́ kí wọ́n tó tàn kálẹ̀
Ẹ̀rọ Ìkìlọ̀ Àkọ́kọ́ ti Xygeni ń ṣe àyẹ̀wò àwọn àkójọpọ̀ tuntun àti àwọn àtúnṣe tí a ti ṣe àtúnṣe ní àkókò gidi. Ó ń fi àwọn ìwà ìfura hàn bíi:
- JavaScript tí a ti bò mọ́lẹ̀ tàbí kódù ńlá tí a so pọ̀ mọ́ra
- Àwọn ìwé àkọsílẹ̀ ìgbésí ayé tí ó ń fi àwọn àkókò ìṣiṣẹ́ ìta bíi Bun sílẹ̀
- Àwọn ìsopọ̀ àìròtẹ́lẹ̀ sí GitHub, npm tàbí àwọn ìparí ìkùukùu
- Àwọn ìkọ̀sílẹ̀ tí ó ń kọ sínú
$HOME,.dev-env/tabi awọn folda iṣẹ-ṣiṣe
MEW ṣàwárí àwọn àpẹẹrẹ tí a lò nínú ìgbì Shai-Hulud méjèèjì, èyí tí ó ń ran àwọn ẹgbẹ́ lọ́wọ́ láti hùwà padà kí àwọn agbábọ́ọ̀lù tó tan àkóràn náà kálẹ̀ síwájú sí i.
Guardrails in CI/CD dènà awọn akopọ irira
Xygeni fipá mú un guardrails tí ó dá àwọn iṣẹ́ tí kò ní ààbò dúró láìfọwọ́ṣe:
- CI pipelines ko le fi awọn idii sori ẹrọ pẹlu awọn iwe afọwọkọ ti a fi pamọ tabi fifi sori ẹrọ lẹhin-fifi sori ẹrọ
- Àwọn ìkọ́lé kò ní ṣiṣẹ́ nígbà tí àpò kan bá gbìyànjú láti ṣẹ̀dá àwọn ìṣiṣẹ́ bí
.github/workflows/discussion.yaml - Pipelines kọ awọn igbẹkẹle ti a tẹjade lati awọn orisun ti a ko gbẹkẹle tabi awọn akọọlẹ ti a kọkọ rii
Èyí dín ojú ìkọlù kù lọ́nà tó ga, ó sì ń jẹ́ kí malware má ṣiṣẹ́ nínú iṣẹ́ CI.
Idaabobo Asiri dinku rediosi bugbamu naa
Nítorí pé Shai-Hulud jí àwọn kọ́kọ́rọ́ ìkùukùu, àwọn àmì GitHub, àwọn àmì npm àti àṣírí CI, ààbò gbọ́dọ̀ dojúkọ àwọn ìwé ẹ̀rí pẹ̀lú.
- Ṣe awari awọn aṣiri ti o han ninu koodu, awọn akọọlẹ, awọn iṣan-iṣẹ ati awọn faili ayika
- Ó ń yí àwọn ìwé ẹ̀rí tó ní ewu gíga padà láìfọwọ́sowọ́pọ̀
- Ó fi agbára mú àwọn àmì ìgbà kúkúrú láti dín àdéhùn ìgbà pípẹ́ kù
Bí ẹni tí ó kọlu bá tilẹ̀ rí ọ̀nà láti wọlé ní àkọ́kọ́, àwọn kọ́kọ́rọ́ tí a jí yóò di aláìwúlò kíákíá.
Àwọn Àkíyèsí Ìkẹyìn: Ìdí Tí Ìkọlù Ṣíṣe Iṣẹ́ Àkókò NPM ti Shai Hulud Ṣíṣe Pàtàkì Sí I
awọn Àtúnbọ̀ Kejì Shai-Hulud Iṣẹlẹ fihan bi o ṣe rọrun to lati lo igbalode Ikọlu NPM Ipese Pq Kọlu le rìn káàkiri àwọn ètò-ẹ̀dá ayé. Nínú ọ̀ràn yìí, malware fò láti npm sí Maven nítorí pé àwọn irinṣẹ́ àtúnṣe aládàáṣe bíi mvnpm Àtúntẹ̀ àwọn àkójọpọ̀ tí wọ́n ti bàjẹ́ láìsí ìfìdí múlẹ̀. Nítorí náà, àwọn ẹgbẹ́ Java farahàn bí wọ́n tilẹ̀ jẹ́ pé wọn kò lo npm tààrà. Èyí fi hàn kedere pé àwọn iṣẹ́ ìforúkọsílẹ̀ alágbègbè nílò àtúnyẹ̀wò lẹ́sẹ̀kẹsẹ̀ àti ààbò tó lágbára sí i.
Jù bẹ́ẹ̀ lọ, ìwọ̀n àti ìwà ìpolongo yìí fi bí àwọn olùkọlù ṣe ń ṣiṣẹ́ lónìí hàn. Dípò kí wọ́n dákẹ́, wọ́n máa ń tẹ ọgọ́rọ̀ọ̀rún àwọn àpò jáde lẹ́ẹ̀kan náà, wọ́n máa ń kó àwọn olùṣiṣẹ́ GitHub tí wọ́n pamọ́, wọ́n máa ń jí àṣírí ní ọ̀pọ̀lọpọ̀, wọ́n sì tún máa ń fi ohun tí ń pa nǹkan run hàn tí ohunkóhun bá kùnà. Nítorí náà, àwọn àtúnyẹ̀wò ọwọ́ kò bá ìpele ìdánilẹ́kọ̀ọ́ àti iyàrá yìí mu. Àwọn ẹgbẹ́ nílò ààbò tó ń bá a lọ ní àkókò gidi ní àpò, orísun, àti pipeline fẹlẹfẹlẹ.
Kí nìdí tí ó fi ń tẹ̀síwájú Pipeline Security Ó Ṣe Pàtàkì Lọ́wọ́lọ́wọ́ Nísinsìnyí
Àwọn ìkọlù bíi Àtúnbọ̀ Kejì Shai-Hulud yóò máa tẹ̀síwájú láti yípadà. Nítorí náà, dídínà ìgbì tó ń bọ̀ nílò àwọn ìṣàkóso tó ń ṣiṣẹ́ láìfọwọ́sowọ́pọ̀ nínú CI/CD, kìí ṣe lẹ́yìn ìforígbárí náà. Ìgbèjà òde òní gbọ́dọ̀ so ìwádìí malware ní ìbẹ̀rẹ̀, ìfọwọ́sowọ́pọ̀ ìgbẹ́kẹ̀lé tó lágbára, ìfìdí múlẹ̀ ìlànà, àti ààbò ìkọ̀kọ̀ pọ̀ kí ìlànà búburú má baà lè rìn ní àyíká ìdàgbàsókè láìsí àkíyèsí.
Xygeni ṣe atilẹyin fun iyipada yii nipa fifiranṣẹ adaṣe laifọwọyi guardrails jákèjádò gbogbo ẹ̀ka ìpèsè sọ́fítíwè. Ó ń ṣàwárí àwọn páálí tí ó fura sí kí ó tó di ìgbà tí a bá fi sori ẹ̀rọ, ó ń fipá mú àwọn ẹ̀yà ìgbẹ́kẹ̀lé tí kò ní ààbò ṣiṣẹ́, ó ń dí àwọn iṣẹ́ tí kò ní ààbò lọ́wọ́, ó ń ṣàwárí àwọn àṣírí tí a ti fi hàn, ó sì ń kìlọ̀ nípa àwọn ohun tí kò wọ́pọ̀. pipeline Nítorí náà, àwọn ẹgbẹ́ náà wà ní ààbò kódà nígbà tí àwọn ìkọlù pq ìpèsè bá tàn kálẹ̀ kíákíá tí wọ́n sì kọjá ààlà àyíká.
Àkójọ àwọn àpò tí a ti bàjẹ́
Awọn idii ti o kan tun le ṣe akiyesi nipa lilo #shai-hulud / #shai-hulud-ìpadà-kejì fi àmì sí inú OpenSourceMalware.com
| package | version |
|---|---|
| 02-ìròyìn | 0.0.7 |
| @accordproject/àgbéyẹ̀wò-kọnsì | 3.24.1 |
| @accordproject/kọnsì-linter | 3.24.1 |
| @accordproject/concerto-linter-default-rulesset | 3.24.1 |
| @accordproject/àwòrán-kọnsì | 3.12.5 |
| @accordproject/àwọn oríṣiríṣi eré orin | 3.24.1 |
| @accordproject/markdown-it-cicero | 0.16.26 |
| @accordproject/ẹ̀rọ-ẹ̀rọ-àwòrán | 2.7.2 |
| @actbase/css-to-react-native-transform | 1.0.3 |
| @àgbékalẹ̀/ọmọbíbí | 0.1.32 |
| @actbase/node-server | 1.1.19 |
| @actbase/ìdáhùn-àṣeyọrí | 0.8.3 |
| @àgbékalẹ̀/àtúnṣe-àgbékalẹ̀-ìfìwéránṣẹ́ | 1.0.5 |
| @àgbékalẹ̀/àtúnṣe-kakaosdk | 0.9.27 |
| @actbase/react-native-actionsheet | 1.0.3 |
| @actbase/react-abinibi-devtools | 0.1.3 |
| @actbase/react-native-fast-image | 8.5.13 |
| @actbase/react-native-kakao-channel | 1.0.2 |
| @actbase/react-native-kakao-navi | 2.0.4 |
| @actbase/react-native-less-transformer | 1.0.6 |
| @actbase/react-native-naver-login | 1.0.1 |
| @actbase/react-native-simple-video | 1.0.13 |
| @actbase/react-native-tiktok | 1.1.3 |
| @alexcolls/nuxt-socket.io | 0.0.7 |
| @alexcolls/nuxt-ux | 0.6.2 |
| @antstackio/eslint-config-antstack | 0.0.3 |
| @antstackio/express-graphql-proxy | 0.2.8 |
| @antstackio/graphql-body-parser | 0.1.1 |
| @antstackio/json-to-graphql | 1.0.3 |
| @antstackio/shelbysam | 1.1.7 |
| @aryanhussain/mi-angle-lib | 0.0.23 |
| @asyncapi/dotnet-rabbitmq-template | 1.0.2 |
| @asyncapi/edavisualer | 1.2.2 |
| @asyncapi/go-watermill-template | 0.2.76 |
| @asyncapi/àwòrán-java | 0.3.6 |
| @asyncapi/olùṣọ́ | 0.0.3 |
| @asyncapi/php-template | 0.1.2 |
| @asyncapi/python-paho-template | 0.2.15 |
| @asyncapi/api olupin-api | 0.16.25 |
| @asyncapi/studio | 1.0.3 |
| @asyncapi/apapọ̀ wẹ́ẹ̀bù | 2.6.7 |
| @browserbasehq/bb9 | 1.2.21 |
| @browserbasehq/olùdarí-ai | 1.0.3 |
| @browserbasehq/mcp | 2.1.1 |
| @browserbasehq/mcp-server-browserbase | 2.4.2 |
| @browserbasehq/sdk-iṣẹ́ | 0.0.4 |
| @browserbasehq/ìtàgé ọwọ́ | 3.0.4 |
| @browserbasehq/àwọn ìwé-àkójọ | 1.0.1 |
| @caretive/caret-cli | 0.0.2 |
| @clausehq/flows-step-httprequest | 0.1.14 |
| @clausehq/flows-step-jsontoxml | 0.1.14 |
| @clausehq/àwọn ìṣàn-ìgbésẹ̀-mqtt | 0.1.14 |
| @clausehq/flows-step-sendgridemail | 0.1.14 |
| @clausehq/flows-step-taskscreateurl | 0.1.14 |
| @ìrìnàjò/ìtànṣán | 1.0.3 |
| @ìrìnàjò/ìsọfúnni ọjà | 1.0.2 |
| @ìrìnàjò/àkójọ-àkójọ-àkójọ-àwòrán ọjà | 2.3.1 |
| @dev-blinq/ai-qa-logic | 1.0.19 |
| @dev-blinq/kukumba-js | 1.0.131 |
| @dev-blinq/aláìní_kùùbà | 1.0.738 |
| @dev-blinq/ui-systems | 1.0.93 |
| @ensdomains/address-encoder | 1.1.5 |
| @awọn agbegbe/àkójọpọ̀ dúdú | 1.0.1 |
| @ensdomains/buffer | 0.1.2 |
| @ensdomains/ccip-read-cf-worker | 0.0.4 |
| @ensdomains/ccip-read-dns-gateway | 0.1.1 |
| @ensdomains/ccip-read-router | 0.0.7 |
| @ensdomains/ccip-read-worker-viem | 0.0.4 |
| @ensdomains/àkóónú-hash | 3.0.1 |
| @ensdomains/curvearithmetics | 1.0.1 |
| @ensdomains/cypress-metamask | 1.2.1 |
| @ensdomains/dnsprovejs | 0.5.3 |
| @ensdomains/dnssec-oracle-anchors | 0.0.2 |
| @ensdomains/dnssecoraclejs | 0.2.9 |
| @ensdomains/durin | 0.1.2 |
| @ensdomains/durin-middleware | 0.0.2 |
| @ensdomains/ens-archived-contracts | 0.0.3 |
| @awọn agbegbe/awọn avatar | 1.0.4 |
| @ensdomains/ens-contracts | 1.6.1 |
| @ensdomains/ens-test-env | 1.0.2 |
| @ensdomains/ens-ìfìdí múlẹ̀ | 0.1.1 |
| @awọn agbegbe/awọn agbegbe | 4.0.3 |
| @ensdomains/ensjs-react | 0.0.5 |
| @ensdomains/eth-ens-namehash | 2.0.16 |
| @ensdomains/hackathon-registrar | 1.0.5 |
| @ensdomains/hardhat-chai-matchers-viem | 0.1.15 |
| @ensdomains/hardhat-toolbox-viem-extended | 0.0.6 |
| @ensdomains/àwòrán | 2.1.52 |
| @ensdomains/orúkọ-wrapper | 1.0.1 |
| @ensdomains/offchain-resolver-contracts | 0.2.2 |
| @ensdomains/op-resolver-contracts | 0.0.2 |
| @ensdomains/àdírẹ́sì-àtúnṣe | 0.0.32 |
| @ensdomains/ìtúnṣe | 0.0.13 |
| @ensdomains/àìtúnṣe-wídíẹ̀ | 0.1.10 |
| @ensdomains/àtúnṣe-àkọsílẹ̀ | 1.0.1 |
| @ensdomains/àwọn olùgbékalẹ̀-àgbékalẹ̀-ẹ̀rọ | 0.0.2 |
| @ensdomains/solsha1 | 0.0.4 |
| @ensdomains/agbègbè-olùforúkọsílẹ̀ | 0.2.4 |
| @ensdomains/idanwo-utils | 1.3.1 |
| @àwọn agbègbè/thorin | 0.6.51 |
| @awọn agbegbe/ui | 3.4.6 |
| @ensdomains/unicode-confusables | 0.1.1 |
| @ensdomains/àwọn ẹnu ọ̀nà tí kò ṣeé yípadà | 0.0.3 |
| @ensdomains/vite-plugin-i18next-loader | 4.0.4 |
| @ensdomains/web3modal | 1.10.2 |
| @everreal/àwòrán-àtúnṣe | 2.0.1 |
| @everreal/validate-esmoduleinterop-imports | 1.4.4 |
| @everreal/ìwádìí wẹ́ẹ̀bù | 0.0.1 |
| @faq-component/mojuto | 0.0.4 |
| @faq-apakan/ìdáhùn | 1.0.1 |
| @fishingbooker/browser-sync-plugin | 1.0.5 |
| @fishingbooker/agbejade-react | 1.0.7 |
| @fishingbooker/ìdáhùn-ìdáhùn-ìwé | 2.0.6 |
| @fishingbooker/ìdáhùn-ìdáhùn | 2.0.1 |
| @fishingbooker/react-swiper | 0.1.5 |
| @hapheus/n8n-nodes-pgp | 1.5.1 |
| @hover-design/core | 0.0.1 |
| @hover-design/ìdáhùn | 0.2.1 |
| @ifelsedeveloper/ìlànà-àdéhùn-svm-idl | 0.1.2 |
| @ifings/ètò-àwòrán | 4.9.2 |
| @ifings/metatron3 | 0.1.5 |
| @kvytech/cli | 0.0.7 |
| @kvytech/àwọn èròjà | 0.0.2 |
| @kvytech/habbit-e2e-idanwo | 0.0.2 |
| @kvytech/medusa-plugin-ìkéde | 0.0.8 |
| @kvytech/medusa-plugin-managing | 0.0.5 |
| @kvytech/medusa-plugin-newsletter | 0.0.5 |
| @kvytech/medusa-plugin-product-reviews | 0.0.9 |
| @kvytech/medusa-plugin-promotion | 0.0.2 |
| @kvytech/wẹ́ẹ̀bù | 0.0.2 |
| @lessondesk/api-client | 9.12.3 |
| @lessondesk/babel-preset | 1.0.1 |
| @lessondesk/electron-group-api-client | 1.0.3 |
| @lessondesk/eslint-config | 1.4.2 |
| @lessondesk/àwọn àmì-ohun-ìṣe | 1.0.3 |
| @lessondesk/ìdáhùn-àtúnṣe-àtòjọ-ọ̀rọ̀ | 2.0.4 |
| @lessondesk/ọkọ ilé-ẹ̀kọ́ | 5.2.2 |
| @livecms/àtúnṣe láyìíká | 0.0.32 |
| @livecms/nuxt-live-edit | 1.9.2 |
| @louisle2/mojuto | 1.0.1 |
| @louisle2/cortex-js | 0.1.6 |
| @lpdjs/ilé ìtajà iná-ìtura-ìpèsè-iṣẹ́ | 1.0.1 |
| @markvivanco/àtúnṣe-àpù-oníṣàyẹ̀wò | 1.0.2 |
| @ntnx/ìwé ìrìnnà-wso2 | 0.0.3 |
| @ntnx/t | 0.0.101 |
| @orbitgtbelgium/mapbox-gl-draw-cut-polygon-mode | 2.0.5 |
| @orbitgtbelgium/mapbox-gl-draw-scale-yipo-ipo | 1.1.1 |
| @orbitgtbelgium/àwọn èròjà orbit | 1.2.9 |
| @orbitgtbelgium/àkókò-slider | 1.0.187 |
| @osmanekrem/bmad | 1.0.6 |
| @osmanekrem/alámójútó àṣìṣe | 1.2.2 |
| @posthog/aṣojú | 1.24.1 |
| @posthog/ai | 7.1.2 |
| @posthog/cli | 0.5.15 |
| @posthog/clickhouse | 1.7.1 |
| @posthog/mojuto | 1.5.6 |
| @posthog/ìpo-ẹ̀gún | 0.0.42 |
| @posthog/àwọn àmì | 0.36.1 |
| @posthog/lẹmọọn-ui | 0.0.1 |
| @posthog/nextjs-config | 1.5.1 |
| @posthog/nuxt | 1.2.9 |
| @posthog/piscina | 3.2.1 |
| @posthog/plugin-contrib | 0.0.6 |
| @posthog/react-rrweb-player | 1.1.4 |
| @posthog/rrdom | 0.0.31 |
| @posthog/rrwẹ́ẹ̀bù | 0.0.31 |
| @posthog/rrweb-player | 0.0.31 |
| @posthog/rrweb-record | 0.0.31 |
| @posthog/rrweb-túnṣe | 0.0.19 |
| @posthog/rrweb-snapshot | 0.0.31 |
| @posthog/rrweb-utils | 0.0.31 |
| @posthog/siphash | 1.1.2 |
| @posthog/oníṣẹ́ | 1.18.1 |
| @postman/aether-icons | 2.23.4, 2.23.3, 2.23.2 |
| @postman/csv-parse | 4.0.5, 4.0.3, 4.0.4 |
| @postman/node-keytar | 7.9.6, 7.9.4, 7.9.5 |
| @postman/aṣojú-ọ̀nà | 0.6.7, 0.6.6, 0.6.5 |
| @pradhumngautam/àpù-àpù tí ó wọ́pọ̀ | 1.0.2 |
| @pruthvi21/lo-debounce | 1.0.3 |
| @quick-start-soft/quick-document-translator | 1.4.2511142126 |
| @quick-start-soft/quick-git-clean-markdown | 1.4.2511142126 |
| @quick-start-soft/quick-markdown | 1.4.2511142126 |
| @quick-start-soft/quick-markdown-compose | 1.4.2506300029 |
| @quick-start-soft/quick-markdown-image | 1.4.2511142126 |
| @quick-start-soft/quick-markdown-print | 1.4.2511142126 |
| @quick-start-soft/quick-markdown-translator | 1.4.2509202331 |
| @quick-start-soft/quick-remove-image-background | 1.4.2511142126 |
| @quick-start-soft/quick-task-refined | 1.4.2511142126 |
| @relyt/claude-context-core | 0.1.1 |
| @seezo/sdr-mcp-server | 0.0.5 |
| @seung-ju/tókàn | 0.0.2 |
| @seung-ju/ẹ̀rọ-ẹ̀rọ-openapi | 0.0.4 |
| @seung-ju/ìdáhùn-hooks | 0.0.2 |
| @seung-ju/react-native-action-sheet | 0.2.1 |
| @sme-ui/aoma-vevasound-metadata-lib | 0.1.3 |
| @strapbuild/agbekalẹ-àtijọ́-àkókò-àgbékalẹ̀ | 2.0.4 |
| @strapbuild/react-native-perspective-image-cropper | 0.4.15 |
| @strapbuild/react-native-perspective-image-cropper-2 | 0.4.7 |
| @strapbuild/react-native-perspective-image-cropper-poojan31 | 0.4.6 |
| @suraj_h/aarin-wọpọ | 1.0.5 |
| @thedelta/eslint-config | 1.0.2 |
| @tiaanduplessis/json | 2.0.3 |
| @tiaanduplessis/react-progressbar | 1.0.2 |
| @trefox/sleekshop-js | 0.1.6 |
| @trigo/atrix | 7.0.1 |
| @trigo/atrix-elasticsearch | 2.0.1 |
| @trigo/atrix-postgres | 1.0.3 |
| @trigo/atrix-pubsub | 4.0.3 |
| @trigo/atrix-ọṣẹ | 1.0.2 |
| @trigo/atrix-swagger | 3.0.1 |
| @trigo/bool-expressions | 4.1.3 |
| @trigo/eslint-config-trigo | 3.3.1 |
| @trigo/fsm | 3.4.2 |
| @trigo/hapi-auth-signedlink | 1.3.1 |
| @trigo/pathfinder-ui-css | 0.1.1 |
| @trigo/trigo-hapijs | 5.0.1 |
| @trpc-rate-limiter/cloudflare | 0.1.4 |
| @trpc-rate-limiter/hono | 0.1.4 |
| @varsityvibe/api-client | 1.3.36 |
| @varsityvibe/àwọn ohun èlò ìlò | 5.0.6 |
| @varsityvibe/ìfìdí-ẹ̀rí-ẹ̀rí | 0.6.7 |
| @vishadtyagi / ni kikun-odun-kalẹnda | 0.1.11 |
| @voiceflow/alexa-types | 2.15.60 |
| @ìfọ́hùn/anthropic | 0.4.4 |
| @ìfọ́hùn/api-sdk | 3.28.58 |
| @voiceflow/backend-utils | 5.0.2 |
| @voiceflow/àwọn irú-ìpìlẹ̀ | 2.136.3 |
| @voiceflow/body-parser | 1.21.2 |
| @voiceflow/chat-types | 2.14.59 |
| @voiceflow/circleci-config-sdk-orb-import | 0.2.1 |
| @ìṣàn ohùn/commitìṣètò lint | 2.6.2 |
| @ìṣàn ohùn/àṣàpọ̀ | 8.9.1 |
| @voiceflow/default-prompt-wrappers | 1.7.4 |
| @voiceflow/dependency-cruiser-config | 1.8.12 |
| @voiceflow/dtos-interact | 1.40.2 |
| @voiceflow/ìfipamọ́ | 0.3.3 |
| @voiceflow/eslint-config | 7.16.4 |
| @voiceflow/eslint-plugin | 1.6.2 |
| @voiceflow/àìsí-àfikún | 1.10.2 |
| @ìfọ́hùn/àgbéjáde | 1.11.1 |
| @voiceflow/àwọn irú-gbogbogbò | 3.2.23 |
| @voiceflow/git-branch-check | 1.4.4 |
| @voiceflow/google-dfes-types | 2.17.12 |
| @voiceflow/àwọn irú-àwòrán Google | 2.21.12 |
| @voiceflow/husky-config | 1.3.1 |
| @ìflow ohùn/olùkọwé | 2.4.3 |
| @ìṣàn ohùn/àwọn ìwọ̀n | 1.5.2 |
| @voiceflow/oníṣẹ́-èdè-àdánidá | 0.5.2 |
| @voiceflow/nestjs-common | 2.75.2 |
| @voiceflow/nestjs-mongodb | 1.3.1 |
| @voiceflow/nestjs-rate-limit | 1.3.3 |
| @voiceflow/nestjs-redis | 1.3.1 |
| @voiceflow/nestjs-timeout | 1.3.1 |
| @voiceflow/npm-package-json-lint-config | 1.1.1 |
| @ìṣàn ohùn/ìṣípayá | 3.2.2 |
| @ìfọ́hùn/pino | 6.11.4 |
| @voiceflow/pino-ẹwà | 4.4.2 |
| @voiceflow/prettier-config | 1.10.2 |
| @voiceflow/ìfọ̀rọ̀wérọ̀-ìbánisọ̀rọ̀ | 1.65.4 |
| @ìṣàn ohùn/àkókò ìṣiṣẹ́ | 1.29.1 |
| @voiceflow/runtime-client-js | 1.17.3 |
| @voiceflow/sdk-runtime | 1.43.2 |
| @voiceflow/secrets-provider | 1.9.3 |
| @voiceflow/semantic-release-config | 1.4.2 |
| @voiceflow/serverless-plugin-typescript | 2.1.7 |
| @voiceflow/slate-serializer | 1.7.4 |
| @voiceflow/stitches-react | 2.3.3 |
| @ìflow ohùn/ìwé ìtàn-ìṣẹ̀dá | 1.2.2 |
| @voiceflow/stylelint-config | 1.1.1 |
| @ìflow ohùn/ìdánwò-àṣàyàn | 2.1.1 |
| @ìfọ́hùn/tsconfig | 1.12.2 |
| @voiceflow/tsconfig-paths | 1.1.5 |
| @voiceflow/utils-designer | 1.74.19 |
| @ìṣàn ohùn/verror | 1.1.5 |
| @voiceflow/vite-config | 2.6.2 |
| @voiceflow/vitest-config | 1.10.3 |
| @ìfọ́hùn/àwọn irú ohùn | 2.10.59 |
| @ìṣàn ohùn/ìṣàn ohùn | 3.32.45 |
| @voiceflow/widget | 1.7.18 |
| @zapier/ai-ìgbésẹ̀ | 0.1.20, 0.1.19, 0.1.18 |
| @zapier/babel-preset-zapier | 6.4.2, 6.4.1, 6.4.3 |
| @zapier/browserslist-config-zapier | 1.0.4, 1.0.3, 1.0.5 |
| @zapier/ìkọ̀kọ̀-ìkọ̀kọ̀ | 1.1.5, 1.1.4, 1.1.3 |
| apata-ai-crowl | 1.0.7 |
| arc-cli-fc | 1.0.1 |
| àtúnyẹ̀wò asynapi | 1.0.2 |
| atrix | 1.0.1 |
| àwòṣe_àdánidá | 1.0.491 |
| akọ́ọ̀lé-asíósì | 1.2.1 |
| a le fagilé axios | 1.0.2 |
| àkókò axios | 1.0.2 |
| àwọn egungun-css | 1.1.4 |
| ìtẹ̀wé benmostyn-frame | 1.0.1 |
| ti o dara jugpioadarí | 1.0.10 |
| adapta-ọna-meji | 1.2.2, 1.2.4, 1.2.5, 1.2.3 |
| blinqio-executions-cli | 1.0.41 |
| blob-sí-ipilẹ64 | 1.0.3 |
| bun-plugin-httpfile | 0.1.1 |
| bytecode-checker-cli | 1.0.11, 1.0.8, 1.0.9, 1.0.10 |
| àwọn baitì-sí-x | 1.0.1 |
| èlé owó-àwìn-kalc | 1.0.4 |
| capacitor-plugin-apptrackingios | 0.0.21 |
| rira afikun-kapasita | 0.1.1 |
| capacitor-plugin-scgssigninwithgoogle | 0.0.5 |
| ìtàn rira-kapasita | 0.0.10 |
| capacitor-voice-recorder-wav | 6.0.3 |
| Àwọn ìgbàsókè-ẹ̀rọ-chrome | 0.0.3 |
| imudojuiwọn-àmì-ìdásílẹ̀ claude-token | 1.0.3 |
| coinmarketcap-api | 3.1.3 |
| àwọn àwọ̀-regex | 2.0.1 |
| àṣẹ-irail | 0.5.4 |
| afiwe-obj | 1.1.1 |
| ohun tí ń dín àkópọ̀-ẹ̀yà kù | 1.0.4, 1.0.3, 1.0.2, 1.0.5 |
| kíkà-sísàlẹ̀ | 1.0.2 |
| awọn ilana CPU | 0.0.14 |
| ṣẹ̀dá-olùdarí-app | 0.1.1 |
| ṣẹ̀dá-glee-app | 0.2.3 |
| create-hardhat3-app | 1.1.4, 1.1.3, 1.1.1, 1.1.2 |
| koodu-crypto-addr-codec | 0.1.9 |
| css-dedoupe | 0.1.2 |
| dashboard-ipo òfo | 1.0.3 |
| awọn apẹẹrẹtudiouiux | 1.0.1 |
| devstart-cli | 1.0.6 |
| dialogflow-es | 1.1.4, 1.1.3, 1.1.1, 1.1.2 |
| olupin discord-bot | 0.1.2 |
| àyọkà docusaurus-plugin-fanilla-extract | 1.0.3 |
| má ṣe lọ | 1.1.2 |
| àwòṣe dotnet | 0.0.3 |
| àfikún-àfikún-ẹ̀yà-ẹ̀yà-lórí-àti-ẹ̀yà-ẹ̀yà | 0.0.2 |
| Olùdánwò ìfijiṣẹ́-ìfiránṣẹ́-ìmeeli | 1.1.1 |
| fipá mú orúkọ ẹ̀ka-iṣẹ́ | 1.1.3 |
| esbuild-plugin-brotli | 0.2.1 |
| esbuild-plugin-eta | 0.1.1 |
| esbuild-plugin-httpfile | 0.4.1 |
| eslint-config-nitpicky | 4.0.1 |
| eslint-config-trigo | 22.0.2 |
| eslint-config-zeallat-base | 1.0.4 |
| àwọn ethereum-ens | 0.8.1 |
| evm-checkcode-cli | 1.0.15, 1.0.12, 1.0.13, 1.0.14 |
| àmì-tíkà gangan | 0.3.5 |
| ìfihàn-ohun-ìdáhùn | 0.2.1 |
| awọn expressos | 1.1.3 |
| oníka ọwọ́ tó sanra | 1.0.2 |
| ìyípadà ẹ̀yà ara | 1.0.2 |
| ẹ̀rọ ìwákiri ilé ìtajà iná | 1.2.3 |
| fittxt | 1.0.3 |
| àwọn àpò ìdìpọ̀ | 1.0.2 |
| títẹ́ẹ́tẹ́-tí kò tẹ́ẹ́tẹ́ | 1.0.2 |
| formuk-aṣiṣe-focus | 2.0.1 |
| ilé ìtajà formik | 1.0.1 |
| wiwa-ìrísí | 1.0.5 |
| ẹnu-evm-ṣayẹwo-koodu2 | 2.0.3, 2.0.4, 2.0.5, 2.0.6 |
| ìdánwò àwọn irinṣẹ́ gate-evm | 1.0.7, 1.0.8, 1.0.5, 1.0.6 |
| gatsby-plugin-cname | 1.0.2 |
| ẹ̀rọ-ìdáná-mita-ọjà | 0.1.6 |
| ẹrọ-generator-ng-itobuz | 0.0.15 |
| gba-wọn-ariyanjiyan | 1.3.3 |
| github-action-for-generator | 2.1.28 |
| gitsafe | 1.0.5 |
| lọ-awoṣe | 0.1.8 |
| gulp-injection-envs | 1.2.2 |
| haufe-axera-api-client | 0.0.1 |
| ìrètí-mapboxdraw | 0.1.1 |
| ìrètí | 1.0.3 |
| àpẹẹrẹ-apẹẹrẹ-apẹẹrẹ-hover | 0.0.5 |
| httpness | 1.0.3 |
| kíkún-pupọ pupọ | 1.0.3 |
| hyperterm-hipster | 1.0.7 |
| àwọn id-css | 1.5.1 |
| àwọn id-enterprise-mcp-server | 0.0.2 |
| àwọn id-enterprise-ng | 20.1.6 |
| àwọn id-enterprise-ìtẹ̀wé | 20.1.6 |
| àwòrán-sí-uri | 1.0.2 |
| àìsùn-plugin-random-pick | 1.0.4 |
| invo | 0.2.2 |
| irin-apata-miniapp | 0.0.2 |
| bọ́tìnì-ìtọ́ | 8.0.3 |
| ìtúbúsì-igun | 0.0.1 |
| itobuz-angular-auth | 8.0.11 |
| bọ́tìnì-igun-itóbuz | 8.0.11 |
| jacob-zuma | 1.0.2 |
| ìdánwò jaetut-varit | 1.0.2 |
| aṣàwákiri-jan | 0.13.1 |
| àwọn ìsopọ̀ jquery | 1.1.3 |
| jsonsurge | 1.0.7 |
| tí a fi àkàrà kùn | 1.7.1 |
| pa-ibudo | 2.0.3 |
| koria-iṣakoso-agbegbe-geo-json-util | 1.0.7 |
| kwami | 1.5.9 |
| àwọn kódì èdè | 1.0.2 |
| iwe-aṣẹ-o-matic | 1.2.2 |
| lint-staged-imagemin | 1.3.1 |
| lite-serper-mcp-server | 0.2.2 |
| luno-api | 1.2.3 |
| ìsanwó-àfọwọ́ṣe-ẹ̀rọ-miniapp-api | 1.3.1 |
| ìkéde-plugin-media | 0.0.3 |
| àwọn àkójọpọ̀-plugin-logs medusa | 0.0.17 |
| medusa-plugin-momo | 0.0.68 |
| medusa-plugin-ọjà-atúnyẹ̀wò-kvy | 0.0.4 |
| medusa-plugin-zalopay | 0.0.40 |
| mod10-nọ́mbà-ṣàyẹ̀wò | 1.0.1 |
| ìwé-àgbékalẹ̀ ... | 1.0.1 |
| mi-saeed-lib | 0.1.1 |
| n8n-nodes-tmdb | 0.5.1 |
| n8n-nodes-vercel-ai-sdk | 0.1.7 |
| n8n-nodes-viral-app | 0.2.5 |
| àtúntò nano | 7.0.2 |
| ìgbẹ́kẹ̀lé-yíká-tókàn | 1.0.3 |
| next-simple-google-analytics | 1.1.1 |
| next-styled-nprogress | 1.0.4 |
| ngx-wúlò-swiper-prosenjit | 9.0.2 |
| ngx-wooapi | 12.0.1 |
| ile itaja deede | 1.3.1, 1.3.4, 1.3.3, 1.3.2 |
| obj-sí-css | 1.0.3 |
| okta-react-router-6 | 5.0.1 |
| ìkànnì ayélujára | 0.1.1 |
| àwọn àpótí-àpótí | 2.1.3 |
| àwọn irinṣẹ́ yíyípo-nebula-fà | 1.0.10 |
| olóòtú ìyípo-nebula | 1.0.2 |
| ọṣẹ iyipo | 0.43.13 |
| ẹgbẹ́ akọrin | 12.1.2 |
| Olùdánwò àpò | 1.0.1 |
| ohun èlò ìṣàfihàn ohun èlò-àfikún-àdáni-àdáni | 1.1.3 |
| àkíyèsí pdf | 0.0.2 |
| piclite | 1.0.1 |
| pico-uid | 1.0.4 |
| pkg-readme | 1.1.1 |
| poper-react-sdk | 0.1.2 |
| posthog-docusaurus | 2.0.6 |
| posthog-js | 1.297.3 |
| node posthog | 4.18.1, 5.13.3, 5.11.3 |
| posthog-plugin-hello-world | 1.0.1 |
| àbínibí posthog-reacting-and | 4.11.1 |
| àtúnṣe-àtúnṣe-lẹ́yìn-àtijọ́-àtijọ́ | 1.2.2 |
| tábìlì àkọ́kọ́-kan | 0.0.19 |
| prompt-eng | 1.0.50 |
| puny-req | 1.0.3 |
| ipilẹ ina-ra-auth | 1.0.3 |
| ipilẹ-ra-data-firebase | 1.0.8 |
| àwọn àmì-àkójọpọ̀-ìfàsẹ́yìn | 0.1.9 |
| ṣe-dátà-sí-òfin-òfin | 1.0.1 |
| Olùṣàyẹ̀wò-ìṣe ... | 0.1.18 |
| ayanfẹ-react | 1.0.2 |
| ìfàsẹ́yìn-ìkọ́-fọ́ọ̀mù-dúró-dúró | 3.0.2 |
| àwọn àmì-ìdáhùn-àtúnṣe | 1.0.2 |
| ìṣàfihàn-kóòdì-ìṣàfihàn | 1.0.8 |
| ìṣeto-ìkàwé-ìṣeto | 0.0.6 |
| àgbékalẹ̀-ìlànà-àgbékalẹ̀ | 1.0.2 |
| react-micromodal.js | 1.0.2 |
| react-native-datepicker-modal | 1.3.1 |
| react-native-imeeli | 2.1.1 |
| fetch-react-native | 2.0.1 |
| àwọn ìwọ̀n-ìdáhùn-àti-ẹ̀rọ-àwòrán ... | 1.0.2 |
| react-native-google-maps-directions | 2.1.2 |
| àwọn àmì-ìdáhùn-àtijọ́-àtijọ́ | 1.0.2 |
| ipele ìfìhàn-àtijọ́-ìpele-ìwé-àtijọ́ | 1.2.2 |
| àpótí àyẹ̀wò-àtúnṣe-àtijọ́-modest | 3.3.1 |
| ibi ipamọ kekere-iyipada-react-native | 2.1.1 |
| ìpè-àtijọ́-ohùn-ìpè-ìdáhùn-ohùn-ìpè-àbínibí | 1.2.2 |
| react-native-retriable-fetch | 2.0.1 |
| ìṣe-àtijọ́-lílo-modal | 1.0.3 |
| olùwárí-ìwò-àtijọ́-àtijọ́ | 1.2.2 |
| react-native-websocket | 1.0.4 |
| àwọn iṣẹ́-àtijọ́-àtijọ́-iṣẹ́-ìṣẹ́-àtijọ́ | 3.3.3 |
| àwòrán-ìdáhùn-qr | 1.1.1 |
| atunṣe | 1.0.5 |
| olùwòran rediff | 0.0.7 |
| ohun elo olulana dinku | 1.2.2, 1.2.4, 1.2.3 |
| rollup-plugin-httpfile | 0.2.1 |
| nọ́mbà ìforúkọsílẹ̀ ilé-iṣẹ́ sa-regex | 1.0.2 |
| sa-id-gen | 1.0.4 |
| kanna kanna | 1.0.3 |
| scgs-capacitor-subscribe | 1.0.11 |
| olùṣẹ̀dá scgsff | 1.0.5 |
| set-in-hold-prop | 2.0.1 |
| àwọn ìgbà-àkókò ... | 0.1.2 |
| shell-exec | 1.1.4 |
| shinhan-limit-archip | 1.0.3 |
| ọgbọ́n-lílo | 0.1.2 |
| àwọn ìtàn oní-ẹlẹ́yàmẹ̀yà | 1.0.2 |
| ìtàn oní-sólómọ́nì-v3 | 1.15.6 |
| solomon-v3-ui-wrapper | 1.6.1 |
| ṣe ìtò-nípasẹ̀ ìjìnnà-sí-ìjìnnà | 2.0.1 |
| ìwífún nípa gúúsù-Afrika-id | 1.0.2 |
| stat-fns | 1.0.1 |
| stoor | 2.3.2 |
| oloricommit | 1.0.1 |
| svelte-autocomplete-select | 1.1.1 |
| àkàrà tí a fi svelte-toasty ṣe | 1.1.3 |
| tábìlì tanstack-shadcn | 1.1.5 |
| tcsp | 2.0.2 |
| ìdánwò yíyọ tcsp | 1.0.5 |
| ìdánwò tcsp-vd | 2.4.4 |
| template-lib | 1.1.4 |
| iṣẹ́-àwòrán-micro-service | 1.0.3 |
| gbígbà tí ó le koko | 2.3.3 |
| àpù ìdánwò-àgbékalẹ̀-àpù | 1.0.4, 1.0.3, 1.0.2, 1.0.1 |
| ìdánwò-hardhat-app | 1.0.4, 1.0.3, 1.0.2, 1.0.1 |
| idanwo23112222-api | 1.0.1 |
| tiaan | 1.0.2 |
| token.js-fork | 0.7.32 |
| ohun elo-ìdáhùn-ẹ̀rọ trigo-react | 4.1.2 |
| ẹ̀rọ ìkọ̀wé | 1.2.2 |
| ìyípo-typerm | 0.2.27 |
| tí a kò lè yípadà | 1.0.4 |
| uplandi | 0.5.4 |
| gbe-soke-si-play-store | 1.0.2 |
| ìyípadà url-encode | 1.0.2 |
| àwọn àyípadà tí a kò fipamọ́-lò | 1.0.9 |
| wúlò-gúúsù-Afrika-id | 1.0.3 |
| àwòṣe vf-oss | 1.0.4, 1.0.3, 1.0.2, 1.0.1 |
| vite-plugin-httpfile | 0.2.1 |
| vue-browserupdate-nuxt | 1.0.5 |
| wẹ́ẹ̀bù-scraper-mcp | 1.1.4 |
| àwọn oríṣi wẹ́ẹ̀bù-htmx | 0.1.1 |
| tan ìmọ́lẹ̀ sí àwọn oríṣi wẹ́ẹ̀bù | 0.1.1 |
| webpack-loader-httpfile | 0.2.1 |
| ibi ìkópamọ́ ìlera-ọ̀jọ̀gbọ́n-ng | 5.1.1 |
| wenk | 1.0.9 |
| ibi ipamọ zapier-async | 1.0.3, 1.0.2, 1.0.1 |
| zapier-platform-cli | 18.0.4, 18.0.3, 18.0.2 |
| zapier-platform-core | 18.0.4, 18.0.3, 18.0.2 |
| zapier-platform-schema | 18.0.4, 18.0.3, 18.0.2 |
| àwọn ìwé-ìkọ̀wé zapier | 7.8.3 |
| zuper-cli | 1.0.1 |
| zuper-sdk | 1.0.57 |
| zuper-stream | 2.0.9 |





