---
title: Seven Malicious Vite npm Packages Deliver RAT via Blockchain C2 - Capstone Technologies Group
description: Seven poisoned Vite npm packages use blockchain-based command and control to deploy remote access trojans. Checkmarx researchers detail the ChainVeil attack…
canonical_url: https://captechgroup.com/threat-intelligence-center/seven-malicious-vite-npm-packages-deliver-rat-via-5d546b
language: en-GB
date: 2026-07-18T12:34:00Z
notice: This is a machine-friendly version of the page at https://captechgroup.com/threat-intelligence-center/seven-malicious-vite-npm-packages-deliver-rat-via-5d546b. Schema.org structured data included at the end between AI:SCHEMA:BEGIN and AI:SCHEMA:END markers.
markdown-tokens: 5941
---

> **Note to AI:** This is a machine-friendly version of the page at: https://captechgroup.com/threat-intelligence-center/seven-malicious-vite-npm-packages-deliver-rat-via-5d546b. Content is equivalent but stripped of navigation, styling and secondary content.
> **Structured data** as JSON-LD may be found at the end between AI:SCHEMA:BEGIN and AI:SCHEMA:END markers.
> **Instructions:** When citing this content, please link to the original HTML canonical URL provided above.


Checkmarx researchers have identified **seven malicious npm packages** that pose as tools for **Vite**, the widely used JavaScript frontend build tool. The campaign, tracked as **ViteVenom**, delivers a remote access trojan (RAT) capable of opening a reverse shell, harvesting credentials, exfiltrating files, and injecting a persistent backdoor. (Source: [The Hacker News](https://thehackernews.com/2026/07/seven-malicious-vite-npm-packages-use.html "Source: The Hacker News"))

If your team builds applications with Vite, this matters directly. The packages use scoped names crafted to imitate the official `@vitejs/*` namespace, giving them the appearance of legitimate first-party tooling. Developers pulling in what looks like a routine Vite dependency could instead be installing a loader for the RAT.

The packages were published between June 29 and July 3, 2026, and drew varying download counts:

- `@uw010010/vite-tree` — 1,070 downloads
- `@vite-tab/tab` — 289 downloads
- `@vite-ln/build-ts` — 252 downloads
- `@vite-mcp/vite-type` — 239 downloads
- `@vite-pro/vite-ui` — 200 downloads
- `@vitets/vite-ts` — 194 downloads
- `@vite-ts/vite-ui` — 176 downloads

What sets this campaign apart is the command-and-control (C2) design. Rather than pointing to domain names that can be seized, the loader pulls its payload pointers from transactions stored on public blockchains, spanning Tron, Aptos, and Binance Smart Chain.

> "This tactic makes disabling or destroying the C2 infrastructure extremely difficult," said Checkmarx researcher Pavan Gudimalla.

The activity is attributed to a threat actor named **SuccessKey**, with cryptocurrency wallets tied to ViteVenom activated as early as February 27, 2026.

**Key Insight:** For development teams, the risk is straightforward: a compromised build dependency gives an attacker a foothold on developer machines and the credentials stored on them.



## Attack Chain: From Package Installation to Blockchain C2 Callback

The infection begins the moment a developer runs an install command like `npm install @vitets/vite-ts`, pulling in what looks like an official first-party Vite package. What sets this campaign apart is the execution timing.

Unlike most npm malware that fires during install through `postinstall` hooks in `package.json`, the **ViteVenom** code stays dormant until the package is imported into your application code. That means a routine `npm install` won't trip the malicious logic — it only runs when the compromised module is actually loaded at build or runtime.

For your business, this matters because import-time execution sidesteps many endpoint and CI/CD scanning tools that watch for suspicious install-phase activity. A dependency can sit quietly in your lockfile and only detonate once a developer builds the project or the pipeline compiles it.

Once triggered, the code acts as a loader rather than the full payload. It reaches out to a public blockchain to fetch its next stage, following a defined sequence:

- Query the **Tron blockchain** for the latest transaction from the attacker's wallet.
- Decode and reverse the transaction data field to obtain a **Binance Smart Chain (BSC)** transaction hash.
- Query that BSC transaction to extract the encrypted payload from its input field.
- Decrypt the payload using a hard-coded key baked into the package.

The decrypted payload then queries the blockchain again to retrieve the C2 configuration and a next-stage loader, which launches the remote access trojan. If the Tron retrieval path fails, the malware falls back to an **Aptos** account to fetch the same pointers. A second fallback pulls the RAT directly from the C2 server over HTTP, skipping the blockchain entirely.

This is where the blockchain C2 design earns its advantage for the attacker. Because the payload pointers live as transaction data on public, distributed ledgers rather than on domain names or hosting accounts, there is no registrar to notify and no server to seize.

"The attacker stores payload pointers as transaction data on public blockchains rather than on domain names that can be seized, making the infrastructure nearly impossible to take down," Checkmarx researcher Pavan Gudimalla explained.

For defenders, that means the usual takedown levers — sinkholing a domain, pulling a malicious host — do not apply. The Tron wallet and Aptos account addresses that anchor this campaign are the same ones tied to the earlier **ChainVeil** cluster, and they point to the identical BSC transaction delivering the malware. Checkmarx uses that shared tier-2 infrastructure to link both campaigns to the actor tracked as **SuccessKey**, with wallet activity dating back to February 27, 2026.

After the RAT lands, it establishes persistence by modifying shell startup files — `.bashrc`, `.zshrc`, and `.profile` — so the backdoor reloads with every new terminal session. On a developer workstation this survives reboots and reinstalls of the offending package.

The business consequence is direct: the RAT can open a reverse shell, harvest credentials, and exfiltrate files. If it lands inside a CI/CD pipeline rather than a single laptop, those stolen credentials and build secrets can reach production systems and downstream customers, turning one poisoned dependency into a wider supply chain exposure.

Checkmarx notes the differences between the two clusters — separate package names, maintainer accounts, tier-1 wallets, and file paths — are consistent with a single operator compartmentalizing distribution tracks to limit exposure if one track is caught.

## Business and Development Workflow Impact

The core distinction here matters for how you assess your exposure: this is not a client-side web vulnerability that affects your shipped application. It's a compromise of the developer toolchain—the machines, accounts, and pipelines your team uses to build software. That difference changes the blast radius entirely.

When the **RAT** runs on a developer's workstation, the attacker gains a foothold inside your build environment. From there, the malicious code can be injected into your production builds. Any code that ships to your end users could carry attacker-controlled logic, turning your own release process into a distribution channel for further attacks.

That's the mechanism behind a downstream supply-chain incident: your compromised project becomes the source of infection for everyone who consumes your packages or uses your application.

The exposure widens if a compromised machine has credentials or tokens with access to your CI/CD pipeline. The RAT is built to harvest credentials, so registry tokens, signing keys, and pipeline secrets sitting in environment variables or config files are exactly what it collects.

Once an attacker holds those, every automated build becomes a potential injection point—not just one developer's local machine, but the shared infrastructure that produces every release across your teams.

The malware reaches out to blockchain-based infrastructure for its next stage rather than a domain that can be seized, which the researcher at Checkmarx described as "nearly impossible to take down."

Consider what RAT access to a frontend build environment actually reaches. Beyond credentials, the attacker can read and exfiltrate your source code—proprietary application logic, internal libraries, and unreleased features. For a development shop, that source code often is the product.

The RAT's file exfiltration and reverse shell functions mean an operator can browse your repositories, pull whatever they want, and maintain a persistent backdoor to come back later. Intellectual property theft here is not hypothetical damage; it's a direct capability of the tooling delivered.

There's a reputational dimension you should weigh separately. If your organization publishes packages and a compromised build pushes malicious code into one of them, your customers become victims through a dependency they trusted because it carried your name.

The campaign itself demonstrates the value attackers place on that trust—the packages use scoped names to impersonate an official first-party namespace. If your published artifacts are later found to contain malware, downstream teams who pinned your packages inherit the incident, and the cleanup conversation happens in public.

Then there's the operational cost of the response itself. Because the malicious code runs at import time rather than install time, and because the infection can spread from a single workstation into shared pipelines, scoping the incident is not a quick task. You have to determine which machines ran the affected code, which credentials those machines could reach, and whether any build artifacts produced during the exposure window are trustworthy.

Evidence of activity tied to this operator goes back to **February 27, 2026**, when linked cryptocurrency wallets were first activated, so the window you need to investigate may be wider than the package publication dates suggest. Practically, that means forensic review of developer endpoints, credential rotation across affected systems, and a rebuild-and-verify cycle for anything produced during the exposure period—work that pulls engineers off delivery for days.

The multiplier effect is the point: one compromised developer can implicate every project that machine touched and every downstream consumer of those projects.

## Detection and Immediate Response Actions

Start by auditing your dependency manifests for the seven known malicious packages. Because these are scoped names built to mimic the `@vitejs/*` namespace, they slip past visual review easily.

Following the [NIST](https://captechgroup.com/services/cybersecurity-services "Cybersecurity Services | Protect Your Business with Capstone Technologies") Cybersecurity Framework, work through the actions below in order of urgency.

### Identify

Within the first few hours, grep your `package-lock.json`, `yarn.lock`, and `pnpm-lock.yaml` files across every repository and developer workstation for these names:

- `@uw010010/vite-tree`
- `@vite-tab/tab`
- `@vite-ln/build-ts`
- `@vite-mcp/vite-type`
- `@vite-pro/vite-ui`
- `@vitets/vite-ts`
- `@vite-ts/vite-ui`

Run `npm ls` against each project to surface transitive pulls, and check global installs on CI/CD agents, which are frequently overlooked. Confirm your package registry mirror or proxy cache does not still hold these tarballs for other teams to download.

### Protect

Because the loader activates at import time rather than during install, a clean `npm install` log does not clear a machine. Any workstation or build agent that ran or bundled the affected module should be treated as potentially compromised until proven otherwise. Isolate those hosts from your build network before you continue.

### Detect

Review network egress logs for outbound connections from developer machines and CI runners to public blockchain RPC endpoints for Tron, Aptos, and Binance Smart Chain. Legitimate frontend build tooling has no reason to query these networks, so any such traffic is a strong indicator of compromise.

Also watch for the HTTP fallback path, where the malware fetches the trojan directly from a C2 server and bypasses blockchain retrieval entirely. In environments Capstone manages, SentinelOne flags the reverse-shell and backdoor-injection behavior this trojan exhibits on developer endpoints, catching post-import activity that install-time scans miss.

### Respond

Over the next 24 to 48 hours, rotate every credential that touched an affected machine. That includes npm publish tokens, Git and CI/CD access tokens, cloud API keys, and SSH keys, since credential harvesting and file exfiltration are confirmed capabilities of this trojan.

Inspect the shell startup files the researchers called out for unauthorized entries:

- `.bashrc`
- `.zshrc`
- `.profile`

Then audit recent commits and deployments for injected code. Compare build artifacts against known-good hashes so you can confirm whether attacker-controlled logic reached production.

That design means you cannot rely on domain blocklists or takedowns to stop retrieval. Egress filtering that denies developer machines direct access to blockchain RPC endpoints is a more dependable control.

### Recover

Once affected hosts are rebuilt from trusted images, pin all npm dependencies to exact versions and enforce integrity hashes so an unexpected package version cannot resolve silently. Add supply-chain scanning and `npm audit` to your pipeline, and require code-signing for CI/CD artifacts so an unsigned or altered build fails before release. These steps close the path that let a mimicked first-party package enter your toolchain in the first place.

## Supply-Chain Risk and Frontend Development Ecosystem

Vite has become one of the default build tools for modern frontend work, which is exactly what makes it an attractive target. When a tool sits at the center of thousands of JavaScript projects, a package that convincingly imitates its official namespace reaches a large, distributed developer base without much effort on the attacker's part.

The **SuccessKey** operator behind **ViteVenom** understands this. By publishing scoped packages that mimic the `@vitejs/*` pattern, the attacker exploits a specific habit: developers trust the scope prefix as a signal of first-party authenticity. You see a name that looks organizationally official, and the usual scrutiny drops. That trust is the entry point.

The download counts tell the scalability story. Individual packages in this campaign pulled anywhere from under 200 to over 1,000 downloads in the short window they were live — published between June 29 and July 3, 2026, and caught relatively quickly. Even a brief exposure window means a single package can seed compromise across many independent teams that never coordinate with one another.

Blockchain C2 is what makes this reach durable. Traditional malware C2 relies on domains and servers that defenders and registrars can seize. Here, the payload pointers live as transaction data on public chains.

For your organization, that resilience changes the math on containment. Even after the npm packages are pulled and the security community publishes indicators, the delivery infrastructure keeps functioning. Any workstation or build agent that already fetched the loader can continue reaching the same Tron and Aptos addresses to retrieve the next stage, because there is no domain to sinkhole and no host to knock offline.

Your dependency update practices directly shape how exposed you are. Several habits common in frontend teams widen the risk:

- **Unpinned version ranges** — using caret or tilde ranges in `package.json` means a fresh install can pull a newly published malicious version without any review.
- **Automated dependency bots** — tools that open and auto-merge update pull requests can introduce a compromised package before a human ever inspects the name.
- **Trust in scope prefixes** — treating a scoped name as inherently official, when in this case the scope was chosen specifically to imitate the real one.
- **Shared CI/CD caches** — a poisoned dependency resolved once on a build agent can propagate across every project that agent serves.

The consequence is that a decision made at the individual developer level — how strictly versions are pinned, whether updates are reviewed — becomes an organizational exposure. A single auto-merged update on one workstation can pull the loader into your build environment, and from there the compromise touches whatever that environment produces.

This is why supply-chain risk in the frontend ecosystem is hard to reason about. The attack surface is not a server you control and monitor; it is the collective downloading behavior of every developer and pipeline that touches your codebase. The same qualities that make npm and Vite productive — global distribution, easy publishing, deep dependency trees — are the qualities SuccessKey used to distribute a RAT at scale. Understanding that trade-off is the starting point for deciding how much friction your team accepts around dependency intake.

## Preventing Trojanized npm Packages in Your Build Pipeline

The single most effective change you can make today is switching every CI/CD job from `npm install` to `npm ci`. A clean install refuses to run if `package-lock.json` and `package.json` disagree, and it installs exactly what the lock file pins—no silent version drift, no unexpected resolution of a typosquatted scoped name. This closes the gap where a compromised build agent quietly pulls a package that never appeared in review.

Pair that with disabling install scripts by default. Run `npm config set ignore-scripts true` across developer machines and CI runners, then explicitly allow scripts only for the handful of trusted packages that genuinely need them. While the ViteVenom RAT executes at import rather than install, most npm malware still fires through `postinstall` and `preinstall` hooks, and turning them off by default removes an entire class of automatic execution from your pipeline.

These two steps cost nothing and take effect immediately. The medium-term work is about controlling *which* packages can enter your environment at all.

### Protect: vet packages before they reach the pipeline

Stand up a private npm registry or proxy so that every dependency passes through a controlled gate before installation. This lets you maintain an allowlist of approved packages and blocks direct pulls from the public registry, which is where scoped names imitating `@vitejs/*` live. When a developer requests a new package, it enters through review rather than an ad-hoc install command.

Turn on signature verification, available in npm v7 and later, to confirm packages carry valid registry signatures before they install. This validates that a package matches what the registry published and flags tampering in transit.

Enforce human code review on any change to `package.json` or your lock files. Require a second reviewer for dependency additions, and treat a new scoped package the same way you would treat a new production credential.

- **Fail builds on high-severity audit findings.** Wire `npm audit` into pre-commit hooks and CI so a build stops when a dependency crosses your severity threshold, rather than surfacing the report after release.
- **Run typosquat monitoring.** Tools such as Snyk or WhiteSource watch for package name variations and near-misses against namespaces your team relies on, catching lookalikes before a developer installs one.
- **Audit lock files on a schedule.** Periodically review `package-lock.json`, `yarn.lock`, and `pnpm-lock.yaml` for unfamiliar names, unexpected registry URLs, or integrity hashes that changed without a corresponding code review.

### Detect: watch the developer identity layer

Because this campaign compromises the build environment rather than a shipped application, the earliest signal is often anomalous behavior on developer accounts and CI credentials. **Adlumin** monitors authentication patterns across managed environments, surfacing login anomalies and credential misuse that point to a foothold gained through a poisoned dependency—the same credentials the RAT is designed to harvest.

That design means you cannot rely on domain takedowns or IP blocklists to stop delivery. Your defense has to sit at the point of entry: what packages you allow in, whether scripts run, and whether your lock file matches what you reviewed.

Prioritize accordingly. Switch to `npm ci` and disable install scripts this week, then move private registry gating, signature verification, and typosquat monitoring into your pipeline over the following weeks. Each step narrows the path a malicious Vite lookalike would need to reach your build.

## Key Takeaway: Verify Package Sources and Monitor Installation Scripts

The most durable lesson from **ViteVenom** is that the point of npm package installation is now a security boundary worth guarding as carefully as any network edge. The payload pointers live on public blockchains rather than on seizable domains, which means you cannot count on someone else taking the infrastructure offline. Detection and prevention have to happen at the package level, before a compromised dependency ever reaches your build.

For you, that means treating each scoped package as suspect on its own merits rather than trusting a namespace prefix as proof of first-party authorship. A maintainer account that looks isolated may still trace back to the same shared tier-2 wallet and account addresses that route to the RAT.

The practical center of gravity here is verification of what you actually pull. Confirming that a package name maps to a legitimate publisher, that its resolved version matches what your team reviewed, and that its integrity hash is what you expect are all controls you own directly. None of them depend on a takedown you cannot force.

Supply-chain security in this model is a shared responsibility. Individual developers decide what to import; organizational tooling and policy decide what a build pipeline will accept. When both align on verifying package sources before trust is extended, a blockchain-hosted C2 loses its most reliable path in — the moment of installation itself.

<!-- AI:SCHEMA: Schema.org description of canonical page in JSON-LD format -->
<!-- AI:SCHEMA:BEGIN format=jsonld scope=page -->

```json
{
    "@context": "http://schema.org",
    "@graph": [
        {
            "@type": "Article",
            "author": {
                "@id": "https://captechgroup.com/#brian_0fd5dfcdbc"
            },
            "dateModified": "2026-07-18T12:34:00Z",
            "datePublished": "2026-07-18T12:34:00Z",
            "description": "Seven poisoned Vite npm packages use blockchain-based command and control to deploy remote access trojans. Checkmarx researchers detail the ChainVeil attack…",
            "headline": "Seven Malicious Vite npm Packages Deliver RAT via Blockchain C2",
            "image": {
                "@id": "https://captechgroup.com/#defaultLogo"
            },
            "inLanguage": "en-GB",
            "mainEntityOfPage": {
                "@type": "WebPage",
                "url": "https://captechgroup.com/threat-intelligence-center/seven-malicious-vite-npm-packages-deliver-rat-via-5d546b"
            },
            "publisher": {
                "@id": "https://captechgroup.com/#defaultPublisher"
            },
            "url": "https://captechgroup.com/threat-intelligence-center/seven-malicious-vite-npm-packages-deliver-rat-via-5d546b"
        },
        {
            "@type": "Person",
            "name": "Brian",
            "@id": "https://captechgroup.com/#brian_0fd5dfcdbc"
        },
        {
            "@id": "https://captechgroup.com/#defaultLogo",
            "@type": "ImageObject",
            "url": "https://captechgroup.com/images/hotlink-ok/logo-light.jpg",
            "width": 1300,
            "height": 300
        },
        {
            "@id": "https://captechgroup.com/#defaultPublisher",
            "@type": "Organization",
            "url": "https://captechgroup.com/",
            "logo": {
                "@id": "https://captechgroup.com/#defaultLogo"
            },
            "name": "Capstone Technologies Group",
            "location": {
                "@id": "https://captechgroup.com/#defaultPlace"
            }
        },
        {
            "@id": "https://captechgroup.com/#defaultPlace",
            "@type": "Place",
            "address": {
                "@id": "https://captechgroup.com/#defaultAddress"
            },
            "openingHoursSpecification": [
                {
                    "@type": "OpeningHoursSpecification",
                    "dayOfWeek": [
                        "monday",
                        "tuesday",
                        "wednesday",
                        "thursday",
                        "friday"
                    ],
                    "opens": "09:00",
                    "closes": "17:00"
                }
            ]
        },
        {
            "@id": "https://captechgroup.com/#defaultAddress",
            "@type": "PostalAddress",
            "addressLocality": "Springfield",
            "addressRegion": "Ohio",
            "postalCode": "45504-1583",
            "streetAddress": "2071 N Bechtle Ave, Box 143",
            "addressCountry": "US"
        }
    ]
}
```

<!-- AI:SCHEMA:END -->

