@zahlen/checkout-react
This report shows the evidence for @zahlen/checkout-react@0.1.1. 1 of 2 known versions is blocked or flagged. The newest version, 0.0.1-security, is allowed. See all versions.
OpenSSF/OSV Malicious Advisory
imported 3mo ago · by OpenSSF/OSVOpenSSF/OSV advisory MAL-2026-12333 confirms this npm version as malicious.
Advisory
MAL-2026-12333
Source
OpenSSF Malicious Packages via OSV
Summary
Malicious code in @zahlen/checkout-react (npm)
Details
The package's main module contains a top-level block that runs on every require/import. It uses unicode-escape obfuscation (\uXXXX) to hide imports of Node built-ins including child_process (spawn), http, https, zlib, and url. The prelude resolves a command-and-control host by querying Ethereum blockchain state via https://eth.blockscout.com/api keyed off contract address 0xa322E5f3D311D3080e6f0121063e9aDC2490Ef1a (with a public ETH RPC fallback list), then polls http://<resolved-host>:443/0x/ls and /0x/cls on that host and feeds the retrieved tasks into child_process.spawn, giving a remote operator arbitrary command execution on any developer machine or CI runner that installs or imports the package. The prelude also stashes global.r=require and global.m=module so C2-delivered payloads can load additional Node built-ins without repeating the unicode-escaped require dance. The React checkout code shipped below the prelude is cover; the on-chain C2 resolution is a rotation mechanism that lets the operator move infrastructure without republishing the package.
References
Independent scan evidence
public snapshotBehavioral surface
ChildProcessEval
HighEntropyStringsUrlStrings
Source & flagged code
1 flagged · loading sourceindex.esm.jsView file
3591L3592: export { ZahlenButton, ZahlenCheckout, ZahlenContext, ZahlenProvider, useZahlen }; ...
Low
Eval
Package source references a known benign dynamic code generation pattern.
index.esm.jsView on unpkg · L3591Findings
3 Low
LowEvalindex.esm.js
LowHigh Entropy Strings
LowUrl Strings
Affected versions and remediation
This report applies to @zahlen/checkout-react@0.1.1.
The versions list below shows the verdict for each recorded version.
- Avoid installing @zahlen/checkout-react@0.1.1. Remove it from direct dependencies and check your lockfile for transitive copies.
- Choose an independently verified alternative or release. This report does not establish that other versions are safe.
- If this version ran, investigate the affected machine and build environment. Rotate credentials it could access and rebuild from a trusted environment.
Evidence last updated: .
Source advisory published: .
Think this verdict is wrong? Dispute it on GitHub or read how reports are produced.