Chaque semaine, nos systèmes de détection de logiciels malveillants analysent des milliers de nouveaux paquets et de mises à jour sur des registres publics comme npm et PyPI. Cette semaine n'a pas fait exception. Nous avons confirmé 165 paquets malveillants entre le 17 et le 24 juillet 2026, sur npm et PyPI, menés par une campagne à grande vitesse et plusieurs nouveaux groupes d'usurpation d'identité.
L'événement le plus important était bingo-ai Sur PyPI, encore une fois : près de 85 versions confirmées en l’espace de 23 minutes le 21 juillet, soit le même modèle de publication automatisée que nous avions signalé dans ce package la semaine dernière.
Nous avons également confirmé d'autres activités de la part de gcli-control sur PyPI, un package de notre équipe de recherche présenté en détail cette semaineUn RAT Windows complet (enregistrement des frappes au clavier, capture webcam/microphone, surveillance du presse-papiers, vol d'identifiants de navigateur, persistance) utilise npoint.io, un service d'hébergement JSON gratuit, pour ses commandes et son contrôle, plutôt qu'un domaine appartenant à l'attaquant. La première vague d'attaques (versions 0.1.0 à 0.7.1) a atteint sa pleine capacité en environ 13.5 heures, les 21 et 22 juillet. Le rapport de cette semaine montre que la campagne s'est poursuivie : cinq autres versions (0.8.0 à 0.12.0) ont suivi à un rythme plus soutenu les 23 et 24 juillet.
Nous avons également confirmé un cluster d'usurpation d'identité Twilio de neuf paquets sur npm (twilio-serverless, twilio-functions, twilio-internal(et d'autres), tous publiés le 21 juillet avec des numéros de version gonflés, un schéma classique de confusion de dépendances. Un deuxième groupe ciblait les outils crypto/DeFi sur npm, neuf packages incluant uniswap-sdk-v4, wagmi-react et ethers-secure, publié le 23 juillet.
Plus modeste mais notable : la récurrence du thème « utilitaire de formatage de date » dans trois campagnes distinctes, et n8n-nodes-pwn, un paquet automation-node au nom suspect a été confirmé le 22 juillet.
Cet aperçu hebdomadaire fait partie de notre programme en cours Résumé des codes malveillants, où nous validons les nouvelles menaces et fournissons des renseignements exploitables pour aider les équipes DevSecOps à protéger leurs pipelineAvant que des dégâts ne surviennent. Analysons nos découvertes de cette semaine et leur importance.
| Écosystème | Forfait | Confirmé |
|---|---|---|
| NPM | javas-crypto:2.0.4 | Le 17 juillet 2026 |
| NPM | shadxino:2.0.8 | Le 17 juillet 2026 |
| NPM | clover-codelab-remote-pay-cloud:99.9.9 | Le 17 juillet 2026 |
| NPM | hehehee:2.0.4 | Le 17 juillet 2026 |
| NPM | shadxino:2.0.9 | Le 18 juillet 2026 |
| NPM | relativité-pdfjs-dist:5.8.2 | Le 20 juillet 2026 |
| NPM | triage_bot_utilisant_sdkv3:2.0.1 | Le 19 juillet 2026 |
| NPM | aftermath-finance:99.0.0 | Le 19 juillet 2026 |
| NPM | aftermath-sui:99.0.0 | Le 19 juillet 2026 |
| NPM | aftermathfi:99.0.0 | Le 19 juillet 2026 |
| NPM | @yuva2210/okx-poc-preinstall:1.0.1 | Le 22 juillet 2026 |
| NPM | @yuva2210/okx-poc-rce-impact:2.0.0 | Le 22 juillet 2026 |
| NPM | @yuva2210/okx-poc-rce-impact:1.0.0 | Le 22 juillet 2026 |
| NPM | twilio-serverless:99.99.99 | Le 21 juillet 2026 |
| NPM | twilio-functions:99.99.99 | Le 21 juillet 2026 |
| NPM | twilio-assets : 99.99.99 | Le 21 juillet 2026 |
| NPM | twilio-internal:99.99.99 | Le 21 juillet 2026 |
| NPM | twilio-deploy:99.99.99 | Le 21 juillet 2026 |
| NPM | twiliointernal-messaging-toolbox:99.99.99 | Le 21 juillet 2026 |
| NPM | twilio-platform-async-data-fetch:99.99.99 | Le 21 juillet 2026 |
| NPM | org-twilio-phone-numbers-utils:99.99.99 | Le 21 juillet 2026 |
| NPM | twilio-platform-request:99.99.99 | Le 21 juillet 2026 |
| NPM | org-twilio-phone-numbers-utils:99.99.100 | Le 21 juillet 2026 |
| NPM | twilio-platform-async-data-fetch:99.99.100 | Le 21 juillet 2026 |
| NPM | twilio-platform-request:99.99.100 | Le 21 juillet 2026 |
| NPM | twiliointernal-messaging-toolbox:99.99.100 | Le 21 juillet 2026 |
| NPM | Supply Hub : 1.0.1 | Le 21 juillet 2026 |
| NPM | Supply Hub : 1.0.2 | Le 21 juillet 2026 |
| NPM | @offa/offa-uwk:999.0.0 | Le 21 juillet 2026 |
| NPM | @offa/offa-uwk:999.0.1 | Le 21 juillet 2026 |
| NPM | date-format-utils-xz:1.0.1 | Le 21 juillet 2026 |
| NPM | date-format-utils-xz:1.0.2 | Le 21 juillet 2026 |
| NPM | date-format-utils-xz:1.0.4 | Le 21 juillet 2026 |
| NPM | @bpa-internal/bpa-utils:99.99.99 | Le 22 juillet 2026 |
| NPM | signzy-field-level-encrypter:12.9.12 | Le 22 juillet 2026 |
| pypi | bingo-ai:6.2.241 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.239 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.238 | Le 21 juillet 2026 |
| NPM | signzy-field-level-encrypter:12.9.13 | Le 22 juillet 2026 |
| pypi | bingo-ai:6.2.236 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.235 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.234 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.233 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.232 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.231 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.230 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.229 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.228 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.227 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.226 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.225 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.224 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.223 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.222 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.221 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.218 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.217 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.216 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.215 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.214 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.213 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.212 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.211 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.210 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.206 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.205 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.204 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.203 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.202 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.201 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.200 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.198 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.197 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.196 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.195 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.194 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.193 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.192 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.191 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.190 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.189 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.188 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.187 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.186 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.185 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.184 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.183 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.179 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.177 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.174 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.173 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.172 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.169 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.168 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.167 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.165 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.244 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.163 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.162 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.160 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.159 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.158 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.157 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.156 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.155 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.154 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.153 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.152 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.151 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.150 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.149 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.147 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.146 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.145 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.144 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.143 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.142 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.141 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.138 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.137 | Le 21 juillet 2026 |
| pypi | bingo-ai:6.2.136 | Le 21 juillet 2026 |
| NPM | @knofler/ai-management:0.3.0 | Le 22 juillet 2026 |
| pypi | gcli-control:0.1.0 | Le 22 juillet 2026 |
| NPM | faust-cont:1.0.0 | Le 22 juillet 2026 |
| pypi | gcli-control:0.5.0 | Le 22 juillet 2026 |
| pypi | gcli-control:0.2.0 | Le 22 juillet 2026 |
| pypi | gcli-control:0.6.0 | Le 22 juillet 2026 |
| pypi | gcli-control:0.7.0 | Le 22 juillet 2026 |
| NPM | n8n-nodes-pwn:1.0.1 | Le 22 juillet 2026 |
| NPM | n8n-nodes-pwn:1.0.2 | Le 22 juillet 2026 |
| pypi | gcli-control:0.7.1 | Le 22 juillet 2026 |
| pypi | make-helper:0.1.0 | Le 22 juillet 2026 |
| pypi | gcli-control:0.8.0 | Le 23 juillet 2026 |
| NPM | correcteur de connaissances : 1.0.1 | Le 23 juillet 2026 |
| NPM | forge-extended:1.0.1 | Le 23 juillet 2026 |
| NPM | tidal-embed-player:1.0.1 | Le 23 juillet 2026 |
| NPM | content-publisher-sdks:1.0.1 | Le 23 juillet 2026 |
| NPM | client de langage VCL Fastly : 1.0.0 | Le 23 juillet 2026 |
| NPM | scripts d'enregistrement d'outils : 1.0.0 | Le 23 juillet 2026 |
| NPM | uniswap-sdk-v4:1.0.0 | Le 23 juillet 2026 |
| NPM | ccxt-trading:1.0.0 | Le 23 juillet 2026 |
| NPM | wagmi-react:1.0.0 | Le 23 juillet 2026 |
| NPM | ethers-secure:1.0.0 | Le 23 juillet 2026 |
| NPM | viem-toolkit:1.0.0 | Le 23 juillet 2026 |
| NPM | rpc-endpoint-rotator:1.0.0 | Le 23 juillet 2026 |
| NPM | hardhat-gas-tracker:1.0.0 | Le 23 juillet 2026 |
| NPM | eth-crypto-utils:1.0.0 | Le 23 juillet 2026 |
| NPM | token-list-fetcher:1.0.0 | Le 23 juillet 2026 |
| NPM | hardhat-gas-tracker:1.0.1 | Le 23 juillet 2026 |
| NPM | token-list-fetcher:1.0.1 | Le 23 juillet 2026 |
| NPM | eth-crypto-utils:1.0.1 | Le 23 juillet 2026 |
| NPM | rpc-endpoint-rotator:1.0.1 | Le 23 juillet 2026 |
| pypi | gcli-control:0.9.0 | Le 23 juillet 2026 |
| pypi | gcli-control:0.10.0 | Le 23 juillet 2026 |
| NPM | flux sonore-premium: 1.0.0 | Le 24 juillet 2026 |
| pypi | gcli-control:0.11.0 | Le 24 juillet 2026 |
| pypi | gcli-control:0.11.1 | Le 24 juillet 2026 |
| NPM | détecteur-radar-detecteur:1.0.1 | Le 24 juillet 2026 |
| pypi | gcli-control:0.11.2 | Le 24 juillet 2026 |
| pypi | gcli-control:0.12.0 | Le 24 juillet 2026 |
| NPM | datefmt-pro:1.0.1 | Le 24 juillet 2026 |
| NPM | datefmt-pro:1.0.0 | Le 24 juillet 2026 |
| NPM | datefmt-pro:1.0.2 | Le 24 juillet 2026 |
| NPM | @daylightqc/date-fmt-lite:1.0.0 | Le 24 juillet 2026 |
| NPM | @daylightqc/date-fmt-lite:1.1.1 | Le 24 juillet 2026 |
Plus de 165 colis. Une semaine. La balance continue de grimper.
Le résumé de cette semaine reflète la même tendance : les attaquants publient plus vite que les registres ne suppriment, et plus vite qu’une analyse hebdomadaire ne peut les détecter. Un seul paquet PyPI, bingo-ai, est passée de la première version à près de 85 versions confirmées en environ 23 minutes, une publication automatisée à une vitesse qu'aucun processus de révision manuelle ne peut égaler. Parallèlement, gcli-control Cela montre que le volume n'est pas le seul risque : un RAT complet qui ne prenait même pas la peine de dissimuler sa nature, relayant ses commandes via npoint.io, un service d'hébergement JSON gratuit, de sorte que son trafic se fondait dans l'activité normale des développeurs, sans qu'aucun domaine appartenant à l'attaquant ne puisse être bloqué. Les clusters d'usurpation d'identité de Twilio et de crypto/DeFi révèlent un troisième schéma : des déploiements coordonnés de plusieurs paquets utilisant des numéros de version gonflés pour remporter une course à la confusion des dépendances face aux noms de paquets internes.
Alerte précoce aux logiciels malveillants Xygeni Il surveille en temps réel npm, PyPI et d'autres registres, signalant les menaces au moment de leur publication, avant qu'elles n'atteignent une compilation, avant qu'un agent d'IA ne les installe de manière autonome et avant qu'un relais caché ou un paquet provoquant une confusion de dépendances ait la possibilité de s'exécuter. bingo-ai expédie des dizaines de versions en moins d'une demi-heure, ou gcli-control Le serveur C2 transite par un service déjà autorisé par vos règles de sortie ; une détection effectuée après coup arrive déjà trop tard.
Xygéni Open Source Security La plateforme offre aux équipes DevSecOps la détection et la priorisation en temps réel nécessaires pour anticiper les pressions coordonnées sur la chaîne d'approvisionnement. pipelineRestez propres sans ralentir vos équipes.






