Every week, our malware detection systems scan thousands of new and updated packages across public registries like npm and PyPI. This week was no exception. We confirmed 165 malicious packages between July 17 and July 24, 2026, across npm and PyPI, led by one high-velocity campaign and several new impersonation clusters.
Y digwyddiad unigol mwyaf oedd bingo-ai on PyPI, again: nearly 85 versions confirmed in a 23-minute window on July 21, the same automated publishing pattern we flagged in this package last week.
We also confirmed further activity from gcli-control on PyPI, a package our research team profiled in detail this week: a fully-featured Windows RAT (keylogging, webcam/mic capture, clipboard monitoring, browser-credential theft, persistence) that routes its command-and-control through npoint.io, a free JSON-hosting service, rather than an attacker-owned domain. The initial burst (versions 0.1.0 to 0.7.1) escalated to full capability in about 13.5 hours on July 21–22. This week’s digest shows the campaign didn’t stop there: five more versions (0.8.0 through 0.12.0) followed at a steadier pace through July 23–24.
We also confirmed a nine-package Twilio impersonation cluster on npm (twilio-serverless, twilio-functions, twilio-internal, and others), all published July 21 with inflated version numbers, a classic dependency-confusion pattern. A second cluster targeted crypto/DeFi tooling on npm, nine packages including uniswap-sdk-v4, wagmi-react, a ethers-secure, published July 23.
Smaller but notable: a repeating “date formatting utility” naming theme across three separate campaigns, and n8n-nodes-pwn, a suspiciously named automation-node package confirmed July 22.
Mae'r ciplun wythnosol hwn yn rhan o'n cynllun parhaus Crynodeb Cod Maleisus, lle rydym yn dilysu bygythiadau newydd ac yn darparu gwybodaeth ymarferol i helpu timau DevSecOps i amddiffyn eu pipelinecyn i ddifrod ddigwydd. Gadewch i ni ddadansoddi'r hyn a ganfuom yr wythnos hon a pham ei fod yn bwysig.
| ecosystem | pecyn | Cadarnhawyd |
|---|---|---|
| npm | javas-crypto:2.0.4 | Gorffennaf 17, 2026 |
| npm | shadxino:2.0.8 | Gorffennaf 17, 2026 |
| npm | clover-codelab-remote-pay-cloud:99.9.9 | Gorffennaf 17, 2026 |
| npm | hehehee:2.0.4 | Gorffennaf 17, 2026 |
| npm | shadxino:2.0.9 | Gorffennaf 18, 2026 |
| npm | relativity-pdfjs-dist:5.8.2 | Gorffennaf 20, 2026 |
| npm | triage_bot_using_sdkv3:2.0.1 | Gorffennaf 19, 2026 |
| npm | aftermath-finance:99.0.0 | Gorffennaf 19, 2026 |
| npm | aftermath-sui:99.0.0 | Gorffennaf 19, 2026 |
| npm | aftermathfi:99.0.0 | Gorffennaf 19, 2026 |
| npm | @yuva2210/okx-poc-preinstall:1.0.1 | Gorffennaf 22, 2026 |
| npm | @yuva2210/okx-poc-rce-impact:2.0.0 | Gorffennaf 22, 2026 |
| npm | @yuva2210/okx-poc-rce-impact:1.0.0 | Gorffennaf 22, 2026 |
| npm | twilio-serverless:99.99.99 | Gorffennaf 21, 2026 |
| npm | twilio-functions:99.99.99 | Gorffennaf 21, 2026 |
| npm | twilio-assets:99.99.99 | Gorffennaf 21, 2026 |
| npm | twilio-internal:99.99.99 | Gorffennaf 21, 2026 |
| npm | twilio-deploy:99.99.99 | Gorffennaf 21, 2026 |
| npm | twiliointernal-messaging-toolbox:99.99.99 | Gorffennaf 21, 2026 |
| npm | twilio-platform-async-data-fetch:99.99.99 | Gorffennaf 21, 2026 |
| npm | org-twilio-phone-numbers-utils:99.99.99 | Gorffennaf 21, 2026 |
| npm | twilio-platform-request:99.99.99 | Gorffennaf 21, 2026 |
| npm | org-twilio-phone-numbers-utils:99.99.100 | Gorffennaf 21, 2026 |
| npm | twilio-platform-async-data-fetch:99.99.100 | Gorffennaf 21, 2026 |
| npm | twilio-platform-request:99.99.100 | Gorffennaf 21, 2026 |
| npm | twiliointernal-messaging-toolbox:99.99.100 | Gorffennaf 21, 2026 |
| npm | supplyhub:1.0.1 | Gorffennaf 21, 2026 |
| npm | supplyhub:1.0.2 | Gorffennaf 21, 2026 |
| npm | @offa/offa-uwk:999.0.0 | Gorffennaf 21, 2026 |
| npm | @offa/offa-uwk:999.0.1 | Gorffennaf 21, 2026 |
| npm | date-format-utils-xz:1.0.1 | Gorffennaf 21, 2026 |
| npm | date-format-utils-xz:1.0.2 | Gorffennaf 21, 2026 |
| npm | date-format-utils-xz:1.0.4 | Gorffennaf 21, 2026 |
| npm | @bpa-internal/bpa-utils:99.99.99 | Gorffennaf 22, 2026 |
| npm | signzy-field-level-encrypter:12.9.12 | Gorffennaf 22, 2026 |
| pypi | bingo-ai:6.2.241 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.239 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.238 | Gorffennaf 21, 2026 |
| npm | signzy-field-level-encrypter:12.9.13 | Gorffennaf 22, 2026 |
| pypi | bingo-ai:6.2.236 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.235 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.234 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.233 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.232 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.231 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.230 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.229 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.228 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.227 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.226 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.225 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.224 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.223 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.222 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.221 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.218 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.217 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.216 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.215 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.214 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.213 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.212 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.211 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.210 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.206 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.205 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.204 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.203 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.202 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.201 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.200 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.198 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.197 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.196 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.195 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.194 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.193 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.192 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.191 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.190 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.189 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.188 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.187 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.186 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.185 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.184 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.183 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.179 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.177 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.174 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.173 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.172 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.169 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.168 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.167 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.165 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.244 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.163 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.162 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.160 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.159 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.158 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.157 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.156 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.155 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.154 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.153 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.152 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.151 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.150 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.149 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.147 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.146 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.145 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.144 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.143 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.142 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.141 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.138 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.137 | Gorffennaf 21, 2026 |
| pypi | bingo-ai:6.2.136 | Gorffennaf 21, 2026 |
| npm | @knofler/ai-management:0.3.0 | Gorffennaf 22, 2026 |
| pypi | gcli-control:0.1.0 | Gorffennaf 22, 2026 |
| npm | faust-cont:1.0.0 | Gorffennaf 22, 2026 |
| pypi | gcli-control:0.5.0 | Gorffennaf 22, 2026 |
| pypi | gcli-control:0.2.0 | Gorffennaf 22, 2026 |
| pypi | gcli-control:0.6.0 | Gorffennaf 22, 2026 |
| pypi | gcli-control:0.7.0 | Gorffennaf 22, 2026 |
| npm | n8n-nodes-pwn:1.0.1 | Gorffennaf 22, 2026 |
| npm | n8n-nodes-pwn:1.0.2 | Gorffennaf 22, 2026 |
| pypi | gcli-control:0.7.1 | Gorffennaf 22, 2026 |
| pypi | make-helper:0.1.0 | Gorffennaf 22, 2026 |
| pypi | gcli-control:0.8.0 | Gorffennaf 23, 2026 |
| npm | knowledge-grader:1.0.1 | Gorffennaf 23, 2026 |
| npm | forge-extended:1.0.1 | Gorffennaf 23, 2026 |
| npm | tidal-embed-player:1.0.1 | Gorffennaf 23, 2026 |
| npm | content-publisher-sdks:1.0.1 | Gorffennaf 23, 2026 |
| npm | fastly-vcl-language-client:1.0.0 | Gorffennaf 23, 2026 |
| npm | tool-registry-scripts:1.0.0 | Gorffennaf 23, 2026 |
| npm | uniswap-sdk-v4:1.0.0 | Gorffennaf 23, 2026 |
| npm | ccxt-trading:1.0.0 | Gorffennaf 23, 2026 |
| npm | wagmi-react:1.0.0 | Gorffennaf 23, 2026 |
| npm | ethers-secure:1.0.0 | Gorffennaf 23, 2026 |
| npm | viem-toolkit:1.0.0 | Gorffennaf 23, 2026 |
| npm | rpc-endpoint-rotator:1.0.0 | Gorffennaf 23, 2026 |
| npm | hardhat-gas-tracker:1.0.0 | Gorffennaf 23, 2026 |
| npm | eth-crypto-utils:1.0.0 | Gorffennaf 23, 2026 |
| npm | token-list-fetcher:1.0.0 | Gorffennaf 23, 2026 |
| npm | hardhat-gas-tracker:1.0.1 | Gorffennaf 23, 2026 |
| npm | token-list-fetcher:1.0.1 | Gorffennaf 23, 2026 |
| npm | eth-crypto-utils:1.0.1 | Gorffennaf 23, 2026 |
| npm | rpc-endpoint-rotator:1.0.1 | Gorffennaf 23, 2026 |
| pypi | gcli-control:0.9.0 | Gorffennaf 23, 2026 |
| pypi | gcli-control:0.10.0 | Gorffennaf 23, 2026 |
| npm | soundflow-premium: 1.0.0 | Gorffennaf 24, 2026 |
| pypi | gcli-control:0.11.0 | Gorffennaf 24, 2026 |
| pypi | gcli-control:0.11.1 | Gorffennaf 24, 2026 |
| npm | tracker-radar-detector:1.0.1 | Gorffennaf 24, 2026 |
| pypi | gcli-control:0.11.2 | Gorffennaf 24, 2026 |
| pypi | gcli-control:0.12.0 | Gorffennaf 24, 2026 |
| npm | datefmt-pro:1.0.1 | Gorffennaf 24, 2026 |
| npm | datefmt-pro:1.0.0 | Gorffennaf 24, 2026 |
| npm | datefmt-pro:1.0.2 | Gorffennaf 24, 2026 |
| npm | @daylightqc/date-fmt-lite:1.0.0 | Gorffennaf 24, 2026 |
| npm | @daylightqc/date-fmt-lite:1.1.1 | Gorffennaf 24, 2026 |
165+ o Becynnau. Un Wythnos. Mae'r Raddfa'n Dal i Ddringo.
Mae crynodeb yr wythnos hon yn adlewyrchu'r un trywydd: mae ymosodwyr yn cyhoeddi'n gyflymach nag y mae cofrestrfeydd yn ei ddileu, ac yn gyflymach nag y gall sgan wythnosol ei ddal. Pecyn PyPI sengl, bingo-ai, went from first version to nearly 85 confirmed versions in about 23 minutes, automated publishing at a speed no manual review process can match. Meanwhile, gcli-control shows that volume isn’t the only risk: a fully-featured RAT that didn’t bother hiding what it was, instead relaying its commands through npoint.io, a free JSON-hosting service, so its traffic blends into ordinary developer activity with no attacker-owned domain to block. And the Twilio and crypto/DeFi impersonation clusters show a third pattern entirely: coordinated, multi-package drops using inflated version numbers to win a dependency-confusion race against internal package names.
Rhybudd Cynnar am Feddalwedd Ddrwgwedd Xygeni monitors npm, PyPI, and other registries in real time, flagging threats at the moment of publication, before they reach a build, before an AI agent installs them autonomously, and before a covert relay or a dependency-confusion package has a chance to execute. When bingo-ai ships dozens of versions in under half an hour, or gcli-control routes its C2 through a service your egress rules already allow, detection that runs after the fact is already too late.
Xygeni's Open Source Security mae'r platfform yn rhoi'r canfod a'r blaenoriaethu amser real sydd eu hangen ar dimau DevSecOps i aros ar flaen y gad o ran pwysau cydlynol yn y gadwyn gyflenwi, felly mae eich pipelines aros yn lân heb arafu eich timau.






