checkout-desktop-pay-buttonnpm
Advisory published Updated
checkout-desktop-pay-button is a confirmed malicious npm package (MAL-2026-12558) that executes malicious code on install (malicious version 35.5.4). Do not install it — remove it immediately and rotate any exposed credentials.
Malicious code in checkout-desktop-pay-button (npm)
What this malware does
On require() of this package, index.js loads bootstrap.js which fetches a platform-specific binary from obfuscated Cloudflare Workers subdomains assembled via array-join concatenation (e.g. oob-worker.cf103-070.workers.dev), with a DNS-TXT-chunk fallback channel that reassembles a base64 payload from numbered TXT records under net.dl.wel1.ru. The downloaded bytes are written to /var/tmp or %TEMP% under disguised names such as dotnet_diag<rand>.exe or.cache_<rand>, chmod'd to 0755, and spawned detached via /bin/sh -c or cmd.exe. The behavior is unrelated to the package's stated pay-button SDK purpose, and both the destination hostnames and the DNS discovery domain are reconstructed from split string fragments to evade static inspection. The name resembles a legitimate checkout/pay-button SDK, but the shipped code is an import-time dropper.
Malicious versions
Indicators of compromise (SHA-256)
Detection & response playbook
Malicious packageFind it
Search your lockfiles and build artifacts for checkout-desktop-pay-button (version 35.5.4).
If you installed it — respond
Remove checkout-desktop-pay-button from your project and lockfile, then assume any secrets accessible to the build or runtime were exposed: rotate API keys, tokens, and credentials, and audit for unexpected outbound activity or persistence.
Did it already run?
If checkout-desktop-pay-button was installed, its post-install payload may already have run. Removing the package does not undo that — check outbound connections and credential use from the install window onward.
Frequently asked questions
Campaign
References
Credits
- Amazon Inspector · finder
Detect & block this
O3 blocks checkout-desktop-pay-button-class packages before install and in CI — and if it already ran, its runtime egress monitoring catches the malicious outbound activity and severs the channel.