Every week, our malware detection systems scan thousands of new and updated packages across public registries like npm, PyPI, and OpenVSX. We confirmed 180 malicious packages between July 24 and July 30, 2026, led by one high-velocity versioning campaign and a large impersonation cluster targeting a major payments .
El evento individual más importante fue zevairouter on npm: 55 versions confirmed across the week (plus 10 more from its companion zevairouter-cli), the same high-frequency auto-publishing pattern behind last week’s bingo-ai . gcli-control on PyPI, the RATA we profiled last week, kept climbing too, adding five more versions (0.12.1 hasta 0.13.0).
The week’s largest impersonation cluster hit npm on July 27: 17 packages mimicking internal PayPal service names (identityauthorizationserv, merchantprefsservice-paypal, xo-member-components, and others), all published at version 28.0.0 within the same few minutes, a classic dependency-confusion pattern. A separate cluster of 12 fake VS Code extensions surfaced on OpenVSX, impersonating real developer tools like vscode-helm y vscode-dbt.
Menor but notable: a paquete de 14 cluster of “markscan,” “akrai,” and “iphouse”-named lookalikes confirmed in a single 4-minute window on July 28.
Esta semana snapshot is part of our en marcha Resumen de código malicioso, donde estamos validate new threats and provide actionable intelligence to help DevSecOps teams protect their pipelines before damage ocurre.
*In case you missed it: last week we also broke down Pícaro por diseño, the first documented case of an AI model hacking another company entirely on its own initiative, no malicious package, no human attacker.
| Ecosistema | PREMIUM | Confirmado |
|---|---|---|
| npm | @daylightqc/date-fmt-lite:1.1.2 | 24 de julio de 2026 |
| npm | subapp-pkg-util:99.0.1 | 24 de julio de 2026 |
| openvsx | cesium/gltf-vscode:0.0.1 | 24 de julio de 2026 |
| openvsx | jaybarnes/chatgpt-vscode-plugin:0.0.2 | 24 de julio de 2026 |
| openvsx | cesium/gltf-vscode:0.0.1 | 24 de julio de 2026 |
| pipi | gcli-control:0.12.1 | 24 de julio de 2026 |
| pipi | gcli-control:0.12.3 | 24 de julio de 2026 |
| pipi | gcli-control:0.12.2 | 24 de julio de 2026 |
| pipi | gcli-control:0.12.4 | 24 de julio de 2026 |
| npm | @cryptosrvc/shift-sdk-v4:1.0.77 | 24 de julio de 2026 |
| npm | @cryptosrvc/no-brainer-sdk:1.0.18 | 24 de julio de 2026 |
| npm | @cryptosrvc/shift-exchange-root:3.9.9 | 24 de julio de 2026 |
| npm | @shiftmarkets/shift-sdk-v4:1.0.77 | 24 de julio de 2026 |
| npm | @shiftmarkets/shift-exchange-root:3.9.9 | 24 de julio de 2026 |
| npm | @shiftmarkets/no-brainer-sdk:1.0.18 | 24 de julio de 2026 |
| npm | shiftmarkets-sdk:2.1.0 | 24 de julio de 2026 |
| npm | shift-v4-sdk:1.0.5 | 24 de julio de 2026 |
| npm | shift-sdk-v5:5.0.1 | 24 de julio de 2026 |
| npm | @cryptosrvc/shift-exchange-root:1.9.9 | 24 de julio de 2026 |
| npm | @shiftmarkets/shift-exchange-root:2.9.9 | 24 de julio de 2026 |
| npm | @cryptosrvc/shift-exchange-root:2.9.9 | 24 de julio de 2026 |
| npm | @shiftmarkets/shift-exchange-root:1.9.9 | 24 de julio de 2026 |
| pipi | gcli-control:0.13.0 | 24 de julio de 2026 |
| npm | com.db.dbk.ui-forms:99.0.0 | 24 de julio de 2026 |
| npm | dbk-ui-forms:99.0.0 | 24 de julio de 2026 |
| npm | com.db.dbk.ui-forms:99.0.1 | 24 de julio de 2026 |
| npm | dbk-ui-forms:99.0.1 | 24 de julio de 2026 |
| npm | fundraiserservicepp:1.5.0 | 25 de julio de 2026 |
| npm | fundraiserservicepp:1.7.0 | 25 de julio de 2026 |
| código vs | Airtune:1.0.0 | 25 de julio de 2026 |
| npm | fundraiserservpp:1.9.0 | 25 de julio de 2026 |
| npm | fundraiserservpp:2.0.0 | 25 de julio de 2026 |
| npm | zevairouter:1.0.122 | 25 de julio de 2026 |
| npm | zevairouter:1.0.121 | 25 de julio de 2026 |
| npm | zevairouter:1.0.120 | 25 de julio de 2026 |
| npm | zevairouter:1.0.119 | 25 de julio de 2026 |
| npm | zevairouter:1.0.118 | 25 de julio de 2026 |
| npm | zevairouter:1.0.117 | 25 de julio de 2026 |
| npm | zevairouter:1.0.116 | 25 de julio de 2026 |
| npm | zevairouter:1.0.115 | 25 de julio de 2026 |
| npm | zevairouter:1.0.114 | 25 de julio de 2026 |
| npm | zevairouter:1.0.113 | 25 de julio de 2026 |
| npm | zevairouter:1.0.112 | 25 de julio de 2026 |
| npm | zevairouter:1.0.111 | 25 de julio de 2026 |
| npm | zevairouter:1.0.110 | 25 de julio de 2026 |
| npm | zevairouter-cli:1.0.109 | 25 de julio de 2026 |
| npm | zevairouter:1.0.109 | 25 de julio de 2026 |
| npm | zevairouter-cli:1.0.108 | 25 de julio de 2026 |
| npm | zevairouter:1.0.108 | 25 de julio de 2026 |
| npm | zevairouter-cli:1.0.107 | 25 de julio de 2026 |
| npm | zevairouter:1.0.107 | 25 de julio de 2026 |
| npm | zevairouter-cli:1.0.106 | 25 de julio de 2026 |
| npm | zevairouter:1.0.106 | 25 de julio de 2026 |
| npm | zevairouter-cli:1.0.105 | 25 de julio de 2026 |
| npm | zevairouter:1.0.105 | 25 de julio de 2026 |
| npm | zevairouter-cli:1.0.104 | 25 de julio de 2026 |
| npm | zevairouter:1.0.104 | 25 de julio de 2026 |
| npm | zevairouter-cli:1.0.103 | 25 de julio de 2026 |
| npm | zevairouter:1.0.103 | 25 de julio de 2026 |
| npm | zevairouter-cli:1.0.102 | 25 de julio de 2026 |
| npm | page-navigation:1.0.1 | 25 de julio de 2026 |
| npm | merchantprefsservice-paypal:28.0.0 | 27 de julio de 2026 |
| npm | payoutsvettingserv-paypal:28.0.0 | 27 de julio de 2026 |
| npm | identityscimapiserv:28.0.0 | 27 de julio de 2026 |
| npm | identityauthorizationserv:28.0.0 | 27 de julio de 2026 |
| npm | gpaas-paypal:28.0.0 | 27 de julio de 2026 |
| npm | f0-fpti-tracking-manager:28.0.0 | 27 de julio de 2026 |
| npm | servicio de recaudación de fondos:28.0.0 | 27 de julio de 2026 |
| npm | f0-data-constructor:28.0.0 | 27 de julio de 2026 |
| npm | f0-form-manipulator:28.0.0 | 27 de julio de 2026 |
| npm | crm-reportinsightserv-paypal:28.0.0 | 27 de julio de 2026 |
| npm | riskunifiedgatewayserv:28.0.0 | 27 de julio de 2026 |
| npm | pp-react-ui5:28.0.0 | 27 de julio de 2026 |
| npm | xo-twofa:28.0.0 | 27 de julio de 2026 |
| npm | nemo-jaws:28.0.0 | 27 de julio de 2026 |
| npm | preferenceslifecycle-paypal:28.0.0 | 27 de julio de 2026 |
| npm | xo-member-components:28.0.0 | 27 de julio de 2026 |
| npm | stargateproxyserv:28.0.0 | 27 de julio de 2026 |
| npm | zevairouter:1.0.102 | 27 de julio de 2026 |
| npm | zevairouter-cli:1.0.101 | 27 de julio de 2026 |
| npm | zevairouter:1.0.101 | 27 de julio de 2026 |
| npm | zevairouter-cli:1.0.100 | 27 de julio de 2026 |
| npm | zevairouter:1.0.100 | 27 de julio de 2026 |
| npm | edulabs:1.0.7 | 27 de julio de 2026 |
| npm | zevairouter:1.0.123 | 27 de julio de 2026 |
| npm | edulabs:1.0.8 | 27 de julio de 2026 |
| npm | basic-vite:1.0.0 | 27 de julio de 2026 |
| openvsx | chiehyu/vscode-astyle:0.0.1 | 27 de julio de 2026 |
| npm | zevairouter:1.0.129 | 27 de julio de 2026 |
| npm | zevairouter:1.0.131 | 27 de julio de 2026 |
| npm | zevairouter:1.0.130 | 27 de julio de 2026 |
| npm | zevairouter:1.0.128 | 27 de julio de 2026 |
| npm | zevairouter:1.0.127 | 27 de julio de 2026 |
| npm | zevairouter:1.0.134 | 27 de julio de 2026 |
| npm | zevairouter:1.0.136 | 27 de julio de 2026 |
| npm | zevairouter:1.0.135 | 27 de julio de 2026 |
| npm | zevairouter:1.0.133 | 27 de julio de 2026 |
| npm | zevairouter:1.0.132 | 27 de julio de 2026 |
| npm | zevairouter:1.0.126 | 27 de julio de 2026 |
| npm | zevairouter:1.0.125 | 27 de julio de 2026 |
| npm | zevairouter:1.0.138 | 27 de julio de 2026 |
| npm | zevairouter:1.0.137 | 27 de julio de 2026 |
| npm | zevairouter:1.0.124 | 27 de julio de 2026 |
| openvsx | spikespaz/vscode-smoothtype:0.0.1 | 27 de julio de 2026 |
| npm | electrode-ota-ui-app:99.0.0 | 27 de julio de 2026 |
| npm | electrode-ota-ui-app:99.0.1 | 27 de julio de 2026 |
| openvsx | lego-education/ev3-micropython:0.0.1 | 27 de julio de 2026 |
| npm | zevairouter:1.0.139 | 27 de julio de 2026 |
| npm | zevairouter:1.0.140 | 27 de julio de 2026 |
| npm | zevairouter:1.0.141 | 27 de julio de 2026 |
| npm | dynstrg-howto:1.0.1 | 27 de julio de 2026 |
| npm | messenger-style:1.0.1 | 27 de julio de 2026 |
| openvsx | geddski/macros:0.0.1 | 27 de julio de 2026 |
| openvsx | bastienboutonnet/vscode-dbt:0.0.1 | 27 de julio de 2026 |
| openvsx | technosophos/vscode-helm:0.0.1 | 27 de julio de 2026 |
| openvsx | heaths/vscode-guid:0.0.1 | 27 de julio de 2026 |
| npm | zevairouter:1.0.142 | 27 de julio de 2026 |
| openvsx | ofhumanbondage/react-proptypes-intellisense:0.0.1 | 27 de julio de 2026 |
| openvsx | dbankier/vscode-instant-markdown:0.0.1 | 27 de julio de 2026 |
| npm | markscan-utils:1.0.0 | 28 de julio de 2026 |
| npm | markscan-api:1.0.0 | 28 de julio de 2026 |
| npm | akrai-report:1.0.0 | 28 de julio de 2026 |
| npm | markscan-reports:1.0.0 | 28 de julio de 2026 |
| npm | markscan-utils:1.0.0 | 28 de julio de 2026 |
| npm | iphouse-core:1.0.0 | 28 de julio de 2026 |
| npm | Informe Akrai nuevo: 1.0.0 | 28 de julio de 2026 |
| npm | markscan-api:1.0.0 | 28 de julio de 2026 |
| npm | akrai-report:1.0.0 | 28 de julio de 2026 |
| npm | iphouse-api:1.0.0 | 28 de julio de 2026 |
| npm | iphouse:1.0.0 | 28 de julio de 2026 |
| npm | markscan-core:1.0.0 | 28 de julio de 2026 |
| npm | markscan-reports:1.0.0 | 28 de julio de 2026 |
| npm | markscan:1.0.0 | 28 de julio de 2026 |
| pipi | vtranalytic:8.0.0 | 28 de julio de 2026 |
| npm | zevairouter:1.0.143 | 28 de julio de 2026 |
| npm | glia-functions-tools:0.2.1 | 28 de julio de 2026 |
| npm | zevairouter:1.0.144 | 28 de julio de 2026 |
| npm | zevairouter:1.0.145 | 28 de julio de 2026 |
| npm | zevairouter:1.0.146 | 28 de julio de 2026 |
| npm | zevairouter:1.0.147 | 28 de julio de 2026 |
| npm | zevairouter:1.0.148 | 28 de julio de 2026 |
| npm | zevairouter:1.0.149 | 28 de julio de 2026 |
| npm | zevairouter:1.0.150 | 28 de julio de 2026 |
| npm | zevairouter:1.0.151 | 28 de julio de 2026 |
| npm | zevairouter:1.0.153 | 28 de julio de 2026 |
| npm | zevairouter:1.0.152 | 28 de julio de 2026 |
| npm | zevairouter:1.0.154 | 28 de julio de 2026 |
| npm | @ks-video/kwai-player-web:9.1.2 | 28 de julio de 2026 |
| npm | @nextco/utils:5.0.0 | 28 de julio de 2026 |
| npm | vscode-designer-14:14.0.1 | 29 de julio de 2026 |
| npm | jobber-app-template-react:1.0.1 | 29 de julio de 2026 |
| npm | technical-challenge:1.0.1 | 29 de julio de 2026 |
| npm | date-sanitize-helper:1.0.0 | 29 de julio de 2026 |
| npm | num-format-helper:1.0.0 | 29 de julio de 2026 |
| npm | csv-parser-helper:1.0.0 | 29 de julio de 2026 |
| npm | text-line-parser:1.0.0 | 29 de julio de 2026 |
| npm | json-to-table-util:1.0.0 | 29 de julio de 2026 |
| npm | style-class-utils:1.0.0 | 29 de julio de 2026 |
| npm | array-sort-helper:1.0.0 | 29 de julio de 2026 |
| npm | sn-flow-client:1.0.2 | 29 de julio de 2026 |
| npm | toll_free:1.0.2 | 29 de julio de 2026 |
| npm | manchas:2.1.1 | 29 de julio de 2026 |
| npm | sn-flow-client:1.0.1 | 29 de julio de 2026 |
| npm | wolverinechat:1.0.1 | 29 de julio de 2026 |
| npm | matlab-azure-devops-extension:1.0.1 | 29 de julio de 2026 |
| npm | gran-comando-clientes-pi:99.0.0 | 29 de julio de 2026 |
| npm | @mypwn/greatcall.customers.commandapi:99.0.1 | 29 de julio de 2026 |
| npm | @mypwn/greatcall.customers.commandapi:99.0.0 | 29 de julio de 2026 |
| npm | test2221:2.2.4 | 30 de julio de 2026 |
| npm | test22221:2.2.8 | 30 de julio de 2026 |
| npm | @ey-china/ey-assistant:1.0.1 | 30 de julio de 2026 |
| npm | @ey-china/ey-assistant:1.0.0 | 30 de julio de 2026 |
| npm | hyper-kube-config:1.1.1 | 30 de julio de 2026 |
| npm | osinthell:1.6.9 | 30 de julio de 2026 |
| npm | osinthell:1.6.6 | 30 de julio de 2026 |
| npm | osinthell:1.9.1 | 30 de julio de 2026 |
| npm | osinthell:1.9.5 | 30 de julio de 2026 |
| npm | flydev:0.0.1 | 30 de julio de 2026 |
| npm | @qtestorgz/sdk:1.0.0-test-publish | 30 de julio de 2026 |
| npm | @qtestorgz/sdk:1.0.0 | 30 de julio de 2026 |
The Registry Never Sleeps: 180+ Malicious Packages This Week
This week’s digest reflects the same trajectory: attackers publish faster than registries remove, and faster than a weekly scan can catch. A single npm package, zevairouter, went from one version to 55+ confirmed versions across the week, the same automated publishing speed no manual review process can match, joined by a further 10 versions of its companion zevairouter-cli. Meanwhile, a single coordinated drop of 17 packages impersonating internal PayPal service names shows a different pattern entirely: not volume from one package, but a synchronized, multi-package release at version 28.0.0, timed within minutes, built to win a dependency-confusion race before anyone notices. And a 12-package wave of fake VS Code extensions on OpenVSX shows the pressure isn’t limited to npm and PyPI either; it’s spreading across every registry a developer’s toolchain touches.
Alerta temprana de malware de Xygeni monitors npm, PyPI, OpenVSX, 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 dependency-confusion package or a fake extension has a chance to execute. When zevairouter ships dozens of versions in a single week, or 17 lookalike packages drop within minutes of each other, detection that runs after the fact is already too late.
xygenis Open Source Security La plataforma brinda a los equipos de DevSecOps la detección y priorización en tiempo real necesarias para mantenerse a la vanguardia de la presión coordinada de la cadena de suministro, por lo que su pipelineMantén la limpieza sin ralentizar a tus equipos.




