react-scroll-disable@2.5.2
Malicious code in react-scroll-disable (npm)
Analysis
A combosquat of the legitimate react-remove-scroll package. The dist/index.js files (es5, es2015, es2019) each append an eval(atob(...)) payload after the legitimate export. The payload queries Ethereum JSON-RPC endpoints (1rpc[.]io, eth[.]drpc[.]org, ethereum-rpc[.]publicnode[.]com, eth-mainnet[.]public[.]blastapi[.]io) to find the latest block, then searches for a transaction from a hardcoded wallet address. The recipient address from that transaction is split into two IPv4 addresses that become the C2 servers. The implant then makes XOR-encrypted HTTP requests to those C2 IPs on ports 80 and 443, fetching second-stage payloads. One request path (/0x/cls) evals the decrypted response inline; another (/0x/ls) spawns a detached node process to run the decrypted payload. The C2 communication uses XOR encryption with a key derived from the transaction data, and responses carry base64-encoded payloads in the x-payload-b64 header.
- analyzed by
- Leitwacht
- first seen
- Aug 2, 2026, 03:25 PM
- analyzed
- Aug 2, 2026, 03:31 PM
Related advisories
- twork-data-services-sme-agent-company-relation@20.5.3
- tinkoff-fb-fieldset-car-reference-kasko@20.7.7
- sme-foundation-frame-manager@20.7.8
- tinkoff-test-app-child-app@20.3.8
- statist-browser-typed-client-rubliq.platform.keycloak@20.2.5
- tinkoff-pfp-block-desktop-tabs@20.5.3
- tinkoff-statist-browser-typed-client-automlplatform.nlppl.classica@20.4.1
- tinkoff-statist-browser-typed-client-itsa.candy.selfservicesupport.frontend.events@20.1.8
Independently detected by the Leitwacht supply-chain probe. IOCs are defanged. Published CC0. Think this is a mistake? See the dispute policy.