Loading npm security reports…
@reason-machines/cli-linux-arm64@0.2.390: Credential exfiltration | LPM Firewall
Blocked & quarantined
Saved third-party service credentials are disclosed to the Reason service without a recipient-specific affirmative consent gate.
AI Security Reviewscanned 5d ago · by lpm-firewall-ai Inspected source establishes default-enabled transfer of saved third-party access tokens to the package's service. This is concrete credential disclosure, so the package should be blocked.
Static reason
High-risk behavior combination matched malicious policy.; source matched previously finalized malicious package; routed for review
Trigger
Runtime startup with the local-login setting enabled, which is the default when unset.
Impact
Saved third-party service credentials are disclosed to the Reason service without a recipient-specific affirmative consent gate.
Mechanism
The background handover reads saved provider credentials and calls the Reason local-subscription API with each provider's access token.
Attack narrative
On runtime startup, the local-login handover reads saved third-party provider credentials and submits provider access tokens through the local-subscription client to the Reason service. The setting defaults to enabled, so the transfer does not require recipient-specific affirmative consent. The CLI provides an off switch and describes the feature, but that disclosure does not establish consent to export saved third-party tokens.
AI rationale
Inspected source establishes default-enabled transfer of saved third-party access tokens to the package's service. This is concrete credential disclosure, so the package should be blocked.
Evidence
bin/vm-hands/vm-hands-entry-lite-n11e88ty.js bin/vm-hands/vm-hands-entry-lite-rxg5nf73.js bin/vm-hands/vm-hands-entry-lite-csecgmaa.js .lpm-inspection-iyWIps/0-48b489601987.txt
Network endpoints2
api.reasonmachines.ai api.reasonmachines.com
Decision evidencepublic snapshot AI called this Malicious at 96.0% confidence as Malware with low false-positive risk.
Evidence for block
The runtime reads saved Claude credentials and extracts their access tokens. When local login handover is enabled, a background loop submits collected provider tokens through the local-subscription client. The handover starts when the runtime's local-login setting is true, and the setting defaults to true when unset. The client sends the supplied object as the body of its local-subscription request. The request is mapped to the service's local-subscription API route; the bundled production service configuration uses Reason Machines API hosts. Evidence against
The CLI describes local logins as serving its Sessions feature and provides an off switch, but the setting defaults to enabled. Behavioral surface
Source ChildProcess Crypto DynamicRequire EnvironmentVars Eval Filesystem Network Shell WebSocket
Supply chain HighEntropyStrings
Source & flagged code25 flagged · loading source 60 mux backend dial failed (${H})
L61: `)}),M.on("error",()=>O.destroy()),M.once("close",()=>O.destroy()),O.once("close",()=>M.destroy()),M.pipe(O),O.pipe(M)}let U=$6((M)=>{G.add(M),M.once("close",()=>G.delete(M)),M.on(...
L62: `).filter(Boolean);if(F===1)return[];throw Error(`ripgrep failed with exit code ${F}: ${q}`)}import{join as V0,dirname as T6}from"path";import{fileURLToPath as S6}from"url";import*...
High Child Process
Package source references child process execution.
bin/runtime/srt/sandbox-runtime.mjs View on unpkg · L60 55 \r
L56: `)}}),J.on("request",async(Q,Y)=>{Q.on("error",(G)=>{Z(`Client request error: ${G.message}`,{level:"error"})}),Y.on("error",(G)=>{Z(`Client response error: ${G.message}`,{level:"er...
L57: `)),$.end(eq(W))}function L7($){return Buffer.from([5,$,0,1,0,0,0,0,0,0])}function tq($){return new Promise((J)=>{let X=Buffer.alloc(0),Q=(W)=>{$.off("data",G),clearTimeout(Y),J(W)...
...
L60: mux backend dial failed (${H})
L61: `)}),M.on("error",()=>O.destroy()),M.once("close",()=>O.destroy()),O.once("close",()=>M.destroy()),M.pipe(O),O.pipe(M)}let U=$6((M)=>{G.add(M),M.once("close",()=>G.delete(M)),M.on(...
L62: `).filter(Boolean);if(F===1)return[];throw Error(`ripgrep failed with exit code ${F}: ${q}`)}import{join as V0,dirname as T6}from"path";import{fileURLToPath as S6}from"url";import*
High Same File Env Network Execution
A single source file combines environment access, network access, and code or shell execution; review context before blocking.
Findings1 Critical 21 High 6 Medium 4 Low
Critical Remote Asset Decode Execute bin/vm-hands/index-m32pjcjr.js
High Child Process bin/runtime/srt/sandbox-runtime.mjs
High Shell bin/vm-hands/vm-hands-entry-lite-6t0a7k6v.js
High Eval bin/vm-hands/index-m32pjcjr.js
High Same File Env Network Execution bin/runtime/srt/sandbox-runtime.mjs
High Command Output Exfiltration bin/runtime/srt/sandbox-runtime.mjs
High Obfuscated Payload Loader bin/vm-hands/index-m32pjcjr.js
High External Ai Agent Control Surface Mutation bin/vm-hands/index-m32pjcjr.js
High Cross File Remote Execution Context bin/vm-hands/vm-hands-executor-zsepc201.js
High Semantic Analysis Limited bin/vm-hands/index-m32pjcjr.js
Affected versions and remediation This report applies to @reason-machines/cli-linux-arm64@0.2.390 .
See all versions of @reason-machines/cli-linux-arm64 for other recorded verdicts.
Avoid installing @reason-machines/cli-linux-arm64@0.2.390. 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: 2026-10-18 09:32:24.512Z (UTC) .
Think this verdict is wrong? Dispute it on GitHub or read how reports are produced .
Minified
PossibleObfuscation
UrlStrings
scanned 76 file(s), 5.52 MB of source, external domains: 127.0.0.1, api-staging.ara.so, api.ara.so, api.github.com, api.reasonmachines.ai, api.reasonmachines.com, auth.x.ai, bootstrap.invalid, camo.githubusercontent.com, cdn.playwright.dev, chromewebstore.google.com, claude.ai, cursor.com, docs.reasonmachines.com, dotenvx.com, dummy.test, edgeupdates.microsoft.com, example.com, ffmpeg.martin-riedl.de, git-scm.com, github.com, github.com.helper, json-schema.org, mcp.reasonmachines.com, nodejs.org, openbox.org, playwright.bloburl, playwright.dev, playwright.download.prss.microsoft.com, proxy.example.com, raw.githubusercontent.com, reasonmachines.ai, reasonmachines.com, registry.npmjs.org, schemas.microsoft.com, staging-api.reasonmachines.ai, staging-api.reasonmachines.com, staging.reasonmachines.ai, storage.googleapis.com, support.microsoft.com, worker-probe.invalid, www.apple.com, www.w3.org
bin/runtime/srt/sandbox-runtime.mjs
47 \r
L48: Connection blocked by network allowlist`);return}if(W||Y.destroyed){Y.destroy();return}let P=jJ(j)??j;if($.mitmCA&&($.shouldTerminateTLS?.(P,C)??!0)){Y.write(`HTTP/1.1 200 Connecti...
L49: \r
...
L55: \r
L56: `)}}),J.on("request",async(Q,Y)=>{Q.on("error",(G)=>{Z(`Client request error: ${G.message}`,{level:"error"})}),Y.on("error",(G)=>{Z(`Client response error: ${G.message}`,{level:"er...
L57: `)),$.end(eq(W))}function L7($){return Buffer.from([5,$,0,1,0,0,0,0,0,0])}function tq($){return new Promise((J)=>{let X=Buffer.alloc(0),Q=(W)=>{$.off("data",G),clearTimeout(Y),J(W)...
...
L60: mux backend dial failed (${H})
L61: `)}),M.on("error",()=>O.destroy()),M.once("close",()=>O.destroy()),O.once("close",()=>M.destroy()),M.pipe(O),O.pipe(M)}let U=$6((M)=>{G.add(M),M.once("close",()
High Command Output Exfiltration
Source combines command execution, command-output handling, and outbound requests; review data flow before blocking.
bin/runtime/srt/sandbox-runtime.mjs View on unpkg · L47 bin/vm-hands/vm-hands-entry-lite-6t0a7k6v.js View file 7 `);let Z=$.binding,Q;try{Q=s9($.deviceRelayUrl,"device")}catch{return}if(!Z)return;await new Promise((X)=>{let J=new x9(Q,{followRedirects:!1,perMessageDeflate:!1,maxPayload:4096})...
L8: `).slice(1)){let V=G.trim().split(/\s+/);if(V.length<10||!["0A","01"].includes(V[3]))continue;let[B,H]=V[1].split(":"),[K,L]=V[2].split(":");if(Number.parseInt(H,16)!==Z)continue;l...
L9: `)),Y.on("data",(H)=>{if(z+=H,Buffer.byteLength(z)>CZ)V(new q("hands_job_result_unknown","Hands job result exceeded its bound."))}),Y.once("end",()=>{if(Date.now()>=$.expiresAtMs){...
High Shell
Package source references shell execution.
bin/vm-hands/vm-hands-entry-lite-6t0a7k6v.js View on unpkg · L7 • matchType = normalized_sha256
matchedPackage = @reason-machines/cli-linux-arm64-musl@0.2.388
matchedPath = bin/vm-hands/vm-hands-entry-lite-yzaz1e8r.js
matchedIdentity = npm:[redacted]:0.2.388
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
bin/vm-hands/vm-hands-entry-lite-6t0a7k6v.js View on unpkg 1 // @bun
L2: import{Aa as iJ0}from"./vm-hands-entry-lite-y99g8x7f.js";import{Hk as NV0,Ik as rn,Jk as EJ,Lk as an,Mk as X0}from"./vm-hands-entry-lite-f78n4wqt.js";var on={};var $T;var WT=an(()=...
L3: `)!=-1,q=this._styles,O=q.length;while(O--){var E=G[q[O]];if(A=E.open+A.replace(E.closeRe,E.open)+E.close,R)A=A.replace($,function(D){return E.close+D+E.open})}return A}X.setTheme=...
L4: `).join(`
L5: `+N),U.push(z+"m+"+Y.exports.humanize(this.diff)+"\x1B[0m")}else U[0]=$()+M+" "+U[0]}function $(){if(Q.inspectOpts.hideDate)return"";return new Date().toISOString()+" "}function W(...
L6: `)}function K(U){if(U)process.env.DEBUG=U;else delete process.env.DEBUG}function H(){return process.env.DEBUG}function B(U){U.inspectOpts={};let M=Object.keys(Q.inspectOpts);for(le...
...
L8: `:`
L9: `,U=B.
Critical Remote Asset Decode Execute
Source fetches a remote non-code asset, decodes its contents, and dynamically executes the decoded payload.
bin/vm-hands/index-m32pjcjr.js View on unpkg · L1 271 `).map((J)=>J+`
L272: `);if(Y)X.pop();else X.push(X.pop().slice(0,-1));return X}function is(Q){let Y=[],X,J;for(let G=0;G<Q.length;G++){if(X=Q[G],X.added)J=1;else if(X.removed)J=-1;else J=0;Y.push([J,X....
L273: `)}var V$=(Q)=>(Y,X,J,G)=>{let Z=J?Object.assign(J,{async:!1}):{async:!1},$=Y._zod.run({value:X,issues:[]},Z);if($ instanceof Promise)throw new AJ;if($.issues.length){let W=new(G?....
High Eval
Package source references dynamic code evaluation.
bin/vm-hands/index-m32pjcjr.js View on unpkg · L271 239 `,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICO...
L240: GFS4: `),console.error(A)};if(!X[W]){if(U=global[W]||[],B(X,U),X.close=function(A){function R(q,O){return A.call(X,q,function(E){if(!E)z();if(typeof O==="function")O.apply(this,arg...
L241: `:""},this._extScope=S,this._scope=new X.Scope({parent:S}),this._nodes=[new F]}toString(){return this._root.render(this.opts)}name(S){return this._scope.name(S)}scopeName(S){return...
High Obfuscated Payload Loader
Source contains an obfuscated payload loader that reconstructs and executes hidden code.
bin/vm-hands/index-m32pjcjr.js View on unpkg · L239 • Runtime or CLI code links a write operation to an explicit external AI-agent control path:
buffer()),u=await kl(b,v,y.output);console.log(` screenshot saved to ${u}`)}var p50=j0({"packages/playwright-[redacted].ts"(){kx()}});async function n50(){let q=await k7();if(!q.model.attachments.length){console.log(" no attachments");return}console.log(` ${"#".padstart(4)} ${"name".padend(40)} ${"content-type".padend(30)} ${"action".padend(8)}`),console.log(` ${"\u2500".repeat(4)} ${"\u2500".repeat(40)} ${"\u2500".repeat(30)} ${"\u2500".repeat(8)}`);for(let y=0;y<q.model.attachments.length;y++){let x=q.model.attachments[y],j=q.callidtoordinal.get(x.callid);console.log(` ${(y+1+".").padstart(4)} ${x.name.padend(40)} ${x.contenttype.padend(30)} ${(j!==void 0?string(j):x.callid).padend(8)}`)}}asyn
High External Ai Agent Control Surface Mutation
Runtime or CLI source writes behavior-bearing configuration into a user or project AI-agent control surface.
bin/vm-hands/index-m32pjcjr.js View on unpkg • stage = ast_semantic_analysis; reason = ast_path_work_budget_exceeded; limitedFiles = 5
High Semantic Analysis Limited
A bounded semantic-analysis stage reached its safety limit; remaining detectors completed, but this package requires AI review.
bin/vm-hands/index-m32pjcjr.js View on unpkg • matchType = normalized_sha256
matchedPackage = @reason-machines/cli-linux-arm64-musl@0.2.388
matchedPath = bin/vm-hands/index-cvnymkkb.js
matchedIdentity = npm:[redacted]:0.2.388
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
bin/vm-hands/index-m32pjcjr.js View on unpkg bin/vm-hands/vm-hands-entry-lite-mc3pkj0q.js View file 1 // @bun
L2: import{Hc as n}from"./vm-hands-entry-lite-h0keewxv.js";import{dd as r}from"./vm-hands-entry-lite-g7h6wjqy.js";import{tk as a,uk as s,xk as i}from"./vm-hands-entry-lite-fb02h1zm.js"...
L3: `);Y=j}function Vj(j){if(Y)return!1;if(!R){if(_=fj(j??{}),R=!0,_&&!j)Yj()}return _!==null}function vj(){return Vj()?_:null}var k=null,I=0;function x(j,q){if(Y)throw new B("sandbox_...
Medium Dynamic Require
Package source references dynamic require/import behavior.
bin/vm-hands/vm-hands-entry-lite-mc3pkj0q.js View on unpkg · L1 bin/vm-hands/vm-hands-entry-lite-gq3bzj7d.js View file 1 // @bun
L2: import{ne as Qz,pe as R,se as Zz}from"./vm-hands-entry-lite-0z73amf7.js";import{ni as zz}from"./vm-hands-entry-lite-csecgmaa.js";import{Di as e}from"./vm-hands-entry-lite-ksz1k1dh....
L3: <Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
L4: <RegistrationInfo>
...
L35: </Task>
L36: `}function n(H){return Buffer.concat([Buffer.from([255,254]),Buffer.from(H.replaceAll(`\r
L37: `,`
...
L44: `))}function t(H,z=process.pid){let J=Az(X("powershell.exe"),w(["$all = @{}; Get-CimInstance Win32_Process | % { $all[[int]$_.ProcessId] = $_ }",`$p = $all[${Math.trunc(z)}]`,"for ...
L45: `)),{stdio:"ignore",timeout:15000,windowsHide:!0});return J.status===10?!0:J.status===11?!1:null}var P="REASON_WORKER_SERVICE",yz="worker_identity_unavailable";function BH
Medium Install Persistence
Source writes installer persistence such as shell profile or service configuration.
bin/vm-hands/vm-hands-entry-lite-gq3bzj7d.js View on unpkg · L1 bin/vm-hands/vm-hands-executor-zsepc201.js View file 1 Cross-file remote execution chain: bin/vm-hands/vm-hands-executor-zsepc201.js spawns bin/vm-hands/vm-hands-entry-lite-6t0a7k6v.js; helper contains network access plus dynamic code execution.
L1: // @bun
L2: import{s as wq}from"./vm-hands-entry-lite-hp0ccw3e.js";import{Mb as Nq,qc as Aq,wb as jq,wc as Rq}from"./vm-hands-entry-lite-6t0a7k6v.js";import"./vm-hands-entry-lite-h0keewxv.js";...
L3: `)){let q=W.split(" ");if(q.length<10||!/^\d+:\d+$/.test(q[2]))continue;$.push({device:q[2],root:Yq(q[3]),mountPoint:Yq(q[4])})}return $}function kq(X,$,W){let q=X.replace(/\/+$/,"...
L4: `).filter(Boolean);Y=Z.length;let K=z.map((U)=>{try{return Number(JSON.parse(U).elapsed_ms)||0}catch{return 0}});if(K.length)q("vm_hands.srt_server_starts",{count:K.length,elapsed_...
L5: `).filter(Boolean).slice(0,10
High Cross File Remote Execution Context
Source spawns a local helper that also contains network and dynamic execution context; review data flow before blocking.
bin/vm-hands/vm-hands-executor-zsepc201.js View on unpkg · L1 • path = bin/ara
kind = native_binary
sizeBytes = 103000208
magicHex = [redacted]
Medium Ships Native Binary
Package ships native binary artifacts.
bin/ara View on unpkg bin/vm-hands/vm-hands-entry-lite-r166b92s.js View file • matchType = normalized_sha256
matchedPackage = @reason-machines/cli-linux-arm64-musl@0.2.388
matchedPath = bin/vm-hands/vm-hands-entry-lite-n25efwqt.js
matchedIdentity = npm:[redacted]:0.2.388
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
bin/vm-hands/vm-hands-entry-lite-r166b92s.js View on unpkg • matchType = normalized_sha256
matchedPackage = @reason-machines/cli-linux-arm64-musl@0.2.388
matchedPath = bin/vm-hands/ask-relay-rpekz0vc.js
matchedIdentity = npm:[redacted]:0.2.388
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
bin/vm-hands/ask-relay-fhcfxc8e.js View on unpkg bin/vm-hands/vm-hands-entry-lite-7s9z3tdn.js View file • matchType = normalized_sha256
matchedPackage = @reason-machines/cli-linux-arm64-musl@0.2.388
matchedPath = bin/vm-hands/vm-hands-entry-lite-zs3jsffv.js
matchedIdentity = npm:[redacted]:0.2.388
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
bin/vm-hands/vm-hands-entry-lite-7s9z3tdn.js View on unpkg bin/vm-hands/vm-hands-entry-lite-n11e88ty.js View file • matchType = normalized_sha256
matchedPackage = @reason-machines/cli-linux-arm64-musl@0.2.388
matchedPath = bin/vm-hands/vm-hands-entry-lite-9fc26f9c.js
matchedIdentity = npm:[redacted]:0.2.388
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
bin/vm-hands/vm-hands-entry-lite-n11e88ty.js View on unpkg bin/vm-hands/vm-hands-entry-lite-rxg5nf73.js View file • matchType = normalized_sha256
matchedPackage = @reason-machines/cli-linux-arm64-musl@0.2.388
matchedPath = bin/vm-hands/vm-hands-entry-lite-sv8bb7jq.js
matchedIdentity = npm:[redacted]:0.2.388
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
bin/vm-hands/vm-hands-entry-lite-rxg5nf73.js View on unpkg bin/vm-hands/vm-hands-entry-lite-t6dxxwc8.js View file • matchType = normalized_sha256
matchedPackage = @reason-machines/cli-linux-arm64-musl@0.2.388
matchedPath = bin/vm-hands/vm-hands-entry-lite-nf0avf46.js
matchedIdentity = npm:[redacted]:0.2.388
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
bin/vm-hands/vm-hands-entry-lite-t6dxxwc8.js View on unpkg bin/vm-hands/vm-hands-entry-lite-zd5pw8gj.js View file • matchType = normalized_sha256
matchedPackage = @reason-machines/cli-linux-arm64-musl@0.2.388
matchedPath = bin/vm-hands/vm-hands-entry-lite-axe84b1n.js
matchedIdentity = npm:[redacted]:0.2.388
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
bin/vm-hands/vm-hands-entry-lite-zd5pw8gj.js View on unpkg • matchType = normalized_sha256
matchedPackage = @reason-machines/cli-linux-arm64-musl@0.2.388
matchedPath = bin/vm-hands/status-x8g58cxm.js
matchedIdentity = npm:[redacted]:0.2.388
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
bin/vm-hands/status-1v4paztv.js View on unpkg bin/vm-hands/vm-hands-entry-lite-csecgmaa.js View file • matchType = normalized_sha256
matchedPackage = @reason-machines/cli-linux-arm64-musl@0.2.388
matchedPath = bin/vm-hands/vm-hands-entry-lite-e2mjbqmr.js
matchedIdentity = npm:[redacted]:0.2.388
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
bin/vm-hands/vm-hands-entry-lite-csecgmaa.js View on unpkg bin/vm-hands/vm-hands-entry-lite-fb02h1zm.js View file • matchType = normalized_sha256
matchedPackage = @reason-machines/cli-linux-arm64-musl@0.2.388
matchedPath = bin/vm-hands/vm-hands-entry-lite-te0p47ak.js
matchedIdentity = npm:[redacted]:0.2.388
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
bin/vm-hands/vm-hands-entry-lite-fb02h1zm.js View on unpkg High
Known Malware Source Similarity
bin/vm-hands/vm-hands-entry-lite-r166b92s.js
High Known Malware Source Similarity bin/vm-hands/ask-relay-fhcfxc8e.js
High Known Malware Source Similarity bin/vm-hands/index-m32pjcjr.js
High Known Malware Source Similarity bin/vm-hands/vm-hands-entry-lite-6t0a7k6v.js
High Known Malware Source Similarity bin/vm-hands/vm-hands-entry-lite-7s9z3tdn.js
High Known Malware Source Similarity bin/vm-hands/vm-hands-entry-lite-n11e88ty.js
High Known Malware Source Similarity bin/vm-hands/vm-hands-entry-lite-rxg5nf73.js
High Known Malware Source Similarity bin/vm-hands/vm-hands-entry-lite-t6dxxwc8.js
High Known Malware Source Similarity bin/vm-hands/vm-hands-entry-lite-zd5pw8gj.js
High Known Malware Source Similarity bin/vm-hands/status-1v4paztv.js
High Known Malware Source Similarity bin/vm-hands/vm-hands-entry-lite-csecgmaa.js
High Known Malware Source Similarity bin/vm-hands/vm-hands-entry-lite-fb02h1zm.js
Medium Dynamic Require bin/vm-hands/vm-hands-entry-lite-mc3pkj0q.js
Medium Install Persistence bin/vm-hands/vm-hands-entry-lite-gq3bzj7d.js
Medium Ships Native Binary bin/ara
Medium Structural Risk Force Deep Review
Behavioral surface ChildProcess Crypto DynamicRequire EnvironmentVars Eval Filesystem Network Shell WebSocket HighEntropyStrings Minified PossibleObfuscation UrlStrings NoLicense
Source & flagged code25 flagged 60 mux backend dial failed (${H})
L61: `)}),M.on("error",()=>O.destroy()),M.once("close",()=>O.destroy()),O.once("close",()=>M.destroy()),M.pipe(O),O.pipe(M)}let U=$6((M)=>{G.add(M),M.once("close",()=>G.delete(M)),M.on(...
L62: `).filter(Boolean);if(F===1)return[];throw Error(`ripgrep failed with exit code ${F}: ${q}`)}import{join as V0,dirname as T6}from"path";import{fileURLToPath as S6}from"url";import*...
High Child Process
Package source references child process execution.
bin/runtime/srt/sandbox-runtime.mjs View on unpkg · L60 55 \r
L56: `)}}),J.on("request",async(Q,Y)=>{Q.on("error",(G)=>{Z(`Client request error: ${G.message}`,{level:"error"})}),Y.on("error",(G)=>{Z(`Client response error: ${G.message}`,{level:"er...
L57: `)),$.end(eq(W))}function L7($){return Buffer.from([5,$,0,1,0,0,0,0,0,0])}function tq($){return new Promise((J)=>{let X=Buffer.alloc(0),Q=(W)=>{$.off("data",G),clearTimeout(Y),J(W)...
...
L60: mux backend dial failed (${H})
L61: `)}),M.on("error",()=>O.destroy()),M.once("close",()=>O.destroy()),O.once("close",()=>M.destroy()),M.pipe(O),O.pipe(M)}let U=$6((M)=>{G.add(M),M.once("close",()=>G.delete(M)),M.on(...
L62: `).filter(Boolean);if(F===1)return[];throw Error(`ripgrep failed with exit code ${F}: ${q}`)}import{join as V0,dirname as T6}from"path";import{fileURLToPath as S6}from"url";import*
High Same File Env Network Execution
A single source file combines environment access, network access, and code or shell execution; review context before blocking.
bin/runtime/srt/sandbox-runtime.mjs View on unpkg · L55 47 \r
L48: Connection blocked by network allowlist`);return}if(W||Y.destroyed){Y.destroy();return}let P=jJ(j)??j;if($.mitmCA&&($.shouldTerminateTLS?.(P,C)??!0)){Y.write(`HTTP/1.1 200 Connecti...
L49: \r
...
L55: \r
L56: `)}}),J.on("request",async(Q,Y)=>{Q.on("error",(G)=>{Z(`Client request error: ${G.message}`,{level:"error"})}),Y.on("error",(G)=>{Z(`Client response error: ${G.message}`,{level:"er...
L57: `)),$.end(eq(W))}function L7($){return Buffer.from([5,$,0,1,0,0,0,0,0,0])}function tq($){return new Promise((J)=>{let X=Buffer.alloc(0),Q=(W)=>{$.off("data",G),clearTimeout(Y),J(W)...
...
L60: mux backend dial failed (${H})
L61: `)}),M.on("error",()=>O.destroy()),M.once("close",()=>O.destroy()),O.once("close",()=>M.destroy()),M.pipe(O),O.pipe(M)}let U=$6((M)=>{G.add(M),M.once("close",()
High Command Output Exfiltration
Source combines command execution, command-output handling, and outbound requests; review data flow before blocking.
bin/runtime/srt/sandbox-runtime.mjs View on unpkg · L47 bin/vm-hands/vm-hands-entry-lite-6t0a7k6v.js View file Lines 1-27 javascript
2 import {Hc as pZ,Ic as uZ,Jc as C4,Kc as T4,Lc as M8,Mc as lZ} from "./vm-hands-entry-lite-h0keewxv.js" ; import {Nc as fZ,Oc as H8,Pc as t9,Qc
1 // @bun
L2: import{Aa as iJ0}from"./vm-hands-entry-lite-y99g8x7f.js";import{Hk as NV0,Ik as rn,Jk as EJ,Lk as an,Mk as X0}from"./vm-hands-entry-lite-f78n4wqt.js";var on={};var $T;var WT=an(()=...
L3: `)!=-1,q=this._styles,O=q.length;while(O--){var E=G[q[O]];if(A=E.open+A.replace(E.closeRe,E.open)+E.close,R)A=A.replace($,function(D){return E.close+D+E.open})}return A}X.setTheme=...
L4: `).join(`
L5: `+N),U.push(z+"m+"+Y.exports.humanize(this.diff)+"\x1B[0m")}else U[0]=$()+M+" "+U[0]}function $(){if(Q.inspectOpts.hideDate)return"";return new Date().toISOString()+" "}function W(...
L6: `)}function K(U){if(U)process.env.DEBUG=U;else delete process.env.DEBUG}function H(){return process.env.DEBUG}function B(U){U.inspectOpts={};let M=Object.keys(Q.inspectOpts);for(le...
...
L8: `:`
L9: `,U=B.
Critical Remote Asset Decode Execute
Source fetches a remote non-code asset, decodes its contents, and dynamically executes the decoded payload.
bin/vm-hands/index-m32pjcjr.js View on unpkg · L1 271 `).map((J)=>J+`
L272: `);if(Y)X.pop();else X.push(X.pop().slice(0,-1));return X}function is(Q){let Y=[],X,J;for(let G=0;G<Q.length;G++){if(X=Q[G],X.added)J=1;else if(X.removed)J=-1;else J=0;Y.push([J,X....
L273: `)}var V$=(Q)=>(Y,X,J,G)=>{let Z=J?Object.assign(J,{async:!1}):{async:!1},$=Y._zod.run({value:X,issues:[]},Z);if($ instanceof Promise)throw new AJ;if($.issues.length){let W=new(G?....
High Eval
Package source references dynamic code evaluation.
bin/vm-hands/index-m32pjcjr.js View on unpkg · L271 239 `,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICO...
L240: GFS4: `),console.error(A)};if(!X[W]){if(U=global[W]||[],B(X,U),X.close=function(A){function R(q,O){return A.call(X,q,function(E){if(!E)z();if(typeof O==="function")O.apply(this,arg...
L241: `:""},this._extScope=S,this._scope=new X.Scope({parent:S}),this._nodes=[new F]}toString(){return this._root.render(this.opts)}name(S){return this._scope.name(S)}scopeName(S){return...
bin/vm-hands/vm-hands-entry-lite-mc3pkj0q.js View file Lines 1-8 javascript
2 import {Hc as n} from "./vm-hands-entry-lite-h0keewxv.js" ; import {dd as r} from "./vm-hands-entry-lite-g7h6wjqy.js" ; import {tk as a,uk as s,xk as i} from "./vm-hands-entry-lite-fb02h1zm.js"
bin/vm-hands/vm-hands-entry-lite-gq3bzj7d.js View file Lines 1-21 javascript
2 import {ne as Qz,pe as R,se as Zz} from "./vm-hands-entry-lite-0z73amf7.js" ; import {ni as zz} from "./vm-hands-entry-lite-csecgmaa.js" ; import {Di as e} from "./vm-hands-entry-lite-ksz1k1dh.js"
bin/vm-hands/vm-hands-executor-zsepc201.js View file 1 Cross-file remote execution chain: bin/vm-hands/vm-hands-executor-zsepc201.js spawns bin/vm-hands/vm-hands-entry-lite-6t0a7k6v.js; helper contains network access plus dynamic code execution.
L1: // @bun
L2: import{s as wq}from"./vm-hands-entry-lite-hp0ccw3e.js";import{Mb as Nq,qc as Aq,wb as jq,wc as Rq}from"./vm-hands-entry-lite-6t0a7k6v.js";import"./vm-hands-entry-lite-h0keewxv.js";...
L3: `)){let q=W.split(" ");if(q.length<10||!/^\d+:\d+$/.test(q[2]))continue;$.push({device:q[2],root:Yq(q[3]),mountPoint:Yq(q[4])})}return $}function kq(X,$,W){let q=X.replace(/\/+$/,"...
L4: `).filter(Boolean);Y=Z.length;let K=z.map((U)=>{try{return Number(JSON.parse(U).elapsed_ms)||0}catch{return 0}});if(K.length)q("vm_hands.srt_server_starts",{count:K.length,elapsed_...
L5: `).filter(Boolean).slice(0,10
High Cross File Remote Execution Context
Source spawns a local helper that also contains network and dynamic execution context; review data flow before blocking.
bin/vm-hands/vm-hands-executor-zsepc201.js View on unpkg · L1 • path = bin/ara
kind = native_binary
sizeBytes = 103000208
magicHex = [redacted]
Medium Ships Native Binary
Package ships native binary artifacts.
bin/ara View on unpkg bin/vm-hands/vm-hands-entry-lite-r166b92s.js View file • matchType = normalized_sha256
matchedPackage = @reason-machines/cli-linux-arm64-musl@0.2.388
matchedPath = bin/vm-hands/vm-hands-entry-lite-n25efwqt.js
matchedIdentity = npm:[redacted]:0.2.388
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
bin/vm-hands/vm-hands-entry-lite-r166b92s.js View on unpkg • matchType = normalized_sha256
matchedPackage = @reason-machines/cli-linux-arm64-musl@0.2.388
matchedPath = bin/vm-hands/ask-relay-rpekz0vc.js
matchedIdentity = npm:[redacted]:0.2.388
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
bin/vm-hands/ask-relay-fhcfxc8e.js View on unpkg bin/vm-hands/vm-hands-entry-lite-7s9z3tdn.js View file • matchType = normalized_sha256
matchedPackage = @reason-machines/cli-linux-arm64-musl@0.2.388
matchedPath = bin/vm-hands/vm-hands-entry-lite-zs3jsffv.js
matchedIdentity = npm:[redacted]:0.2.388
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
bin/vm-hands/vm-hands-entry-lite-7s9z3tdn.js View on unpkg bin/vm-hands/vm-hands-entry-lite-n11e88ty.js View file • matchType = normalized_sha256
matchedPackage = @reason-machines/cli-linux-arm64-musl@0.2.388
matchedPath = bin/vm-hands/vm-hands-entry-lite-9fc26f9c.js
matchedIdentity = npm:[redacted]:0.2.388
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
bin/vm-hands/vm-hands-entry-lite-n11e88ty.js View on unpkg bin/vm-hands/vm-hands-entry-lite-rxg5nf73.js View file • matchType = normalized_sha256
matchedPackage = @reason-machines/cli-linux-arm64-musl@0.2.388
matchedPath = bin/vm-hands/vm-hands-entry-lite-sv8bb7jq.js
matchedIdentity = npm:[redacted]:0.2.388
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
bin/vm-hands/vm-hands-entry-lite-rxg5nf73.js View on unpkg bin/vm-hands/vm-hands-entry-lite-t6dxxwc8.js View file • matchType = normalized_sha256
matchedPackage = @reason-machines/cli-linux-arm64-musl@0.2.388
matchedPath = bin/vm-hands/vm-hands-entry-lite-nf0avf46.js
matchedIdentity = npm:[redacted]:0.2.388
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
bin/vm-hands/vm-hands-entry-lite-t6dxxwc8.js View on unpkg bin/vm-hands/vm-hands-entry-lite-zd5pw8gj.js View file • matchType = normalized_sha256
matchedPackage = @reason-machines/cli-linux-arm64-musl@0.2.388
matchedPath = bin/vm-hands/vm-hands-entry-lite-axe84b1n.js
matchedIdentity = npm:[redacted]:0.2.388
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
bin/vm-hands/vm-hands-entry-lite-zd5pw8gj.js View on unpkg • matchType = normalized_sha256
matchedPackage = @reason-machines/cli-linux-arm64-musl@0.2.388
matchedPath = bin/vm-hands/status-x8g58cxm.js
matchedIdentity = npm:[redacted]:0.2.388
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
bin/vm-hands/status-1v4paztv.js View on unpkg bin/vm-hands/vm-hands-entry-lite-csecgmaa.js View file • matchType = normalized_sha256
matchedPackage = @reason-machines/cli-linux-arm64-musl@0.2.388
matchedPath = bin/vm-hands/vm-hands-entry-lite-e2mjbqmr.js
matchedIdentity = npm:[redacted]:0.2.388
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
bin/vm-hands/vm-hands-entry-lite-csecgmaa.js View on unpkg bin/vm-hands/vm-hands-entry-lite-fb02h1zm.js View file • matchType = normalized_sha256
matchedPackage = @reason-machines/cli-linux-arm64-musl@0.2.388
matchedPath = bin/vm-hands/vm-hands-entry-lite-te0p47ak.js
matchedIdentity = npm:[redacted]:0.2.388
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
bin/vm-hands/vm-hands-entry-lite-fb02h1zm.js View on unpkg as
_0,Rc
as
M9,Sc
as
a0,Zc
as
K0}
from
"./vm-hands-entry-lite-r166b92s.js"
;
import
{ad
as
B8,bd
as
W8,cd
as
aQ}
from
"./vm-hands-entry-lite-180h5amj.js"
;
import
{De
as
MZ,jf
as
f9,kf
as
t0,lf
as
T8,mf
as
m0,qf
as
C0,ye
as
NZ}
from
"./vm-hands-entry-lite-02zaqpgh.js"
;
import
{Gg
as
aZ,Mg
as
$8,Ng
as
s8}
from
"./vm-hands-entry-lite-00800vjk.js"
;
import
{Sg
as
j4}
from
"./vm-hands-entry-lite-hfv2tsm9.js"
;
import
{Ah
as
w0,Bh
as
O0,Ch
as
o9,Jh
as
d8,Kh
as
TZ,Lh
as
HZ,Vg
as
SQ,Yg as ...
4 `);if(W<0){if(B.length>16384)G.destroy();return}if(G.pause(),G.off("data",H),W>16384||B.length>v.upload+16384)return G.destroy();K(B,W).catch(()=>G.destroy())};G.on("data",H);async function K(L,W){let U=L.subarray(0,W).toString("latin1").split(` \r
5 `),j=/^(GET|HEAD|POST|PUT|PATCH|DELETE|OPTIONS) (\S+) HTTP\/1\.1$/.exec(U.shift()?? "" );if(!j)throw Error( "preview_request_invalid" );_9(j[2]);let O=!1,C=0,A=[];for(let T of U){let S=/^([a-zA-Z0-9-]+):[ \t] * ([^\x00-\x08\x0a-\x1f\x7f] * )$/.exec(T);if(!S)throw Error( "preview_header_invalid" );if(S[1].toLowerCase()===e$){C++;let m=Buffer.from(S[2].trim());O=m.length===Q.length&&u4(m,Buffer.from(Q))}else if(S[1].toLowerCase()!== "host" )A.push(T)}if(!O||C!==1||J||V.signal.aborted)throw Error( "preview_connection_denied" );let R=await $.connect(V.signal);if(J||V.signal.aborted)throw R.destroy(),Error( "prev .. .
6 `);R.write(Buffer.concat([Buffer.from(P,"latin1"),L.subarray(W+4)])),R.pipe(G),G.pipe(R),G.resume()}});await new Promise((G,V)=>{Y.once("error",V),Y.listen(0,"127.0.0.1",G)});let z=Y.address();if(!z||typeof z==="string")throw Y.close(),Error("preview_bind_failed");function F(){if(J)return;J=!0,Z.removeEventListener("abort",F);for(let G of X)G.destroy();X.clear(),Y.close()}if(Z.addEventListener("abort",F,{once:!0}),Z.aborted)F();return{port:z.port,headers:{[e$]:Q},close:F}}var o4=60000,r4=1e4,t4=5000,e4=/^(?:text \/ (?!event-stream)|application \/ (?:(?:x-)?javascript|json|[a-z.+-]* \+ json|xml|[a-z. ...
7 ` );let Z=$.binding,Q;try{Q=s9($.deviceRelayUrl, "device" )}catch{return}if(!Z)return;await new Promise((X)=>{let J=new x9(Q,{followRedirects:!1,perMessageDeflate:!1,maxPayload:4096}),Y=setTimeout(()=>{J.terminate(),X()},v.authorizationMs * 2);J.addEventListener( "open" ,()=>{J.send(JSON.stringify({type: "refused" ,binding:Z,reason:$.reason})),J.close(1000, `worker_refused_${ $ . reason }` )}),J.addEventListener( "error" ,()=>{clearTimeout(Y),X()}),J.addEventListener( "close" ,()=>{clearTimeout(Y),X()})})}async function X3($,Z){let Q=Date.now()+r4,X;for(;;){if(!Z())return "closed" ;let J=X??=$.refusal().finally(() ...
8 `).slice(1)){let V=G.trim().split(/\s+/);if(V.length<10||![ "0A" , "01" ].includes(V[3]))continue;let[B,H]=V[1].split( ":" ),[K,L]=V[2].split( ":" );if(Number.parseInt(H,16)!==Z)continue;let W=(O)=>O=== "0100007F" ||O=== "0000000000000000FFFF00000100007F" ||O===QZ,U=V[3]=== "0A" ;if(!(W(B)||U&&/^0+$/.test(B?? "" )))continue;if(!U&&!W(K))continue;let j=V[9];if(!/^[1-9][0-9] * $/.test(j))continue;X.set(j,{kernelId:j,port:Z,peerPort:U?null:Number.parseInt(L,16),state:U? "listen" : "established" ,host:B===QZ? "::1" : "127.0.0.1" })}}let J=await Q.directory( "/proc" );if(J.length>8192)throw $0();let Y=[];for(let z of J){if(!/ ...
9 `)),Y.on( "data" ,(H)=>{if(z+=H,Buffer.byteLength(z)>CZ)V(new q( "hands_job_result_unknown" , "Hands job result exceeded its bound." ))}),Y.once( "end" ,()=>{if(Date.now()>=$.expiresAtMs){V(new q( "hands_job_result_unknown" , "Hands authority expired before the result was acknowledged." ));return}try{let H=TZ(z.trim());if(H.id!==Z.id||H.generation!==$.generation||H.ok&&H.job.jobId!==Z.jobId)throw Error( "identity" );V(void 0,H)}catch{V(new q( "hands_job_result_unknown" , "Hands job response identity or shape was invalid." ))}}),Y.once( "close" ,()=>{if(!F)V(new q( "hands_job_result_unknown" ,"Hands job control clos ...
High Shell
Package source references shell execution.
bin/vm-hands/vm-hands-entry-lite-6t0a7k6v.js View on unpkg · L7 10 `)}var hZ=x.strictObject({version:x.literal(1),snapshot_id:x.uuid(),revision:x.number().int().positive(),run_id:x.string().min(1).max(160),device_id:x.uuid(),root_id:x.uuid(),binding:u8.extend({target_generation:x.number().int().positive(),target_fence_id:x.uuid()}),expires_at:x.iso.datetime({offset:!0}),variables:x.record(x.string().max(128).regex(fZ),x.string().refine(($)=>!$.includes( " \x00 " )&&gZ($)<=_0.valueBytes)).refine(($)=>Object.keys($).length<=_0.variables),github_auth:x.literal( "local_gh" ).optional(),git:x.strictObject({base_url:x.url().max(2048),token:x.string().min(1).max(4096).reg ...
14 if (globalThis.__araHandsRepl && globalThis.__araHandsRepl.version === version) return;
15 const hostCall = globalThis.__araHandsRpc;
16 if (typeof hostCall !== "function" ) throw new Error( "Reason Hands browser bridge is not installed" );
17 try { delete globalThis.__araHandsRpc; } catch (error) {
18 if (!(error instanceof TypeError)) throw error;
21 const handles = new WeakMap();
22 const bytes = new WeakMap();
23 const routes = new WeakMap();
24 const derived = new Set([
25 "browser" , "context" , "frame" , "frameLocator" , "getByAltText" , "getByLabel" ,
26 "getByPlaceholder" , "getByRole" , "getByTestId" , "getByText" , "getByTitle" ,
27 "contentFrame" , "locator" , "nth" , "mainFrame" , "newContext" , "newPage" , "opener" , "owner" , "page" , "parentFrame" ,
Long lines were clipped for display.
• matchType = normalized_sha256
matchedPackage = @reason-machines/cli-linux-arm64-musl@0.2.388
matchedPath = bin/vm-hands/vm-hands-entry-lite-yzaz1e8r.js
matchedIdentity = npm:[redacted]:0.2.388
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
bin/vm-hands/vm-hands-entry-lite-6t0a7k6v.js View on unpkg High Obfuscated Payload Loader
Source contains an obfuscated payload loader that reconstructs and executes hidden code.
bin/vm-hands/index-m32pjcjr.js View on unpkg · L239 • Runtime or CLI code links a write operation to an explicit external AI-agent control path:
buffer()),u=await kl(b,v,y.output);console.log(` screenshot saved to ${u}`)}var p50=j0({"packages/playwright-[redacted].ts"(){kx()}});async function n50(){let q=await k7();if(!q.model.attachments.length){console.log(" no attachments");return}console.log(` ${"#".padstart(4)} ${"name".padend(40)} ${"content-type".padend(30)} ${"action".padend(8)}`),console.log(` ${"\u2500".repeat(4)} ${"\u2500".repeat(40)} ${"\u2500".repeat(30)} ${"\u2500".repeat(8)}`);for(let y=0;y<q.model.attachments.length;y++){let x=q.model.attachments[y],j=q.callidtoordinal.get(x.callid);console.log(` ${(y+1+".").padstart(4)} ${x.name.padend(40)} ${x.contenttype.padend(30)} ${(j!==void 0?string(j):x.callid).padend(8)}`)}}asyn
High External Ai Agent Control Surface Mutation
Runtime or CLI source writes behavior-bearing configuration into a user or project AI-agent control surface.
bin/vm-hands/index-m32pjcjr.js View on unpkg • stage = ast_semantic_analysis; reason = ast_path_work_budget_exceeded; limitedFiles = 5
High Semantic Analysis Limited
A bounded semantic-analysis stage reached its safety limit; remaining detectors completed, but this package requires AI review.
bin/vm-hands/index-m32pjcjr.js View on unpkg • matchType = normalized_sha256
matchedPackage = @reason-machines/cli-linux-arm64-musl@0.2.388
matchedPath = bin/vm-hands/index-cvnymkkb.js
matchedIdentity = npm:[redacted]:0.2.388
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
bin/vm-hands/index-m32pjcjr.js View on unpkg ;
import
{Gk
as
B}
from
"./vm-hands-entry-lite-g87z5eb6.js"
;
import
{spawn
as
f,spawnSync
as
v}
from
"child_process"
;
import
{existsSync
as
U,mkdtempSync
as
o,readFileSync
as
t,readdirSync
as
_j,realpathSync
as
Sj,rmSync
as
e,statSync
as
jj}
from
"fs"
;
import
{platform
as
h,tmpdir
as
qj}
from
"os"
;
import
{dirname
as
E,join
as
H,win32
as
T}
from
"path"
;
import
{fileURLToPath
as
Mj,pathToFileURL
as
y}
from
"url"
;
var
kj
=
[
"bwrap"
,
"socat"
,
"rg"
]
...
3 `);Y=j}function Vj(j){if(Y)return!1;if(!R){if(_=fj(j??{}),R=!0,_&&!j)Yj()}return _!==null}function vj(){return Vj()?_:null}var k=null,I=0;function x(j,q){if(Y)throw new B("sandbox_unavailable","Confined execution is unavailable in this worker process.");if(X&&j.sandboxMode&&X!==j.sandboxMode)W();let G=X??j.sandboxMode??vj();if(!G)throw new B("sandbox_unavailable","Confined command execution is unavailable on this operating system.");if(S&&S!==G)W();return S=G,k??=(async()=>{let{SandboxManager:z}=await(j.loadSandboxRuntime??Kj)();return await z.initialize(uj(G,q)),z})().catch((z)=>{if(k=null,q) ...
Medium Dynamic Require
Package source references dynamic require/import behavior.
bin/vm-hands/vm-hands-entry-lite-mc3pkj0q.js View on unpkg · L1 4 ` ); else A ( `initialize_failed: ${ String ( z ) }` ); throw z instanceof B ? z :new B ( "sandbox_unavailable" , "The confined execution sandbox failed to start." )}),k. then (( z ) => { if ( Y ) throw new B ( "sandbox_unavailable" , "Confined execution became unavailable during sandbox initialization." ); return z})} function O (){ if ( I -= 1 , I === 0 ) for ( let j of D . splice ( 0 )) j ()} async function Zj ( j , q =! 0 , G , z ){ let J = z ===void 0 ? 1 / 0 : Date. now () + z; await Bj (); let K = bj (); if (q) await K ; let Q = JSON . stringify (j), V =! 1 , $ = () => { if ( ! V ) return ; V =! 1 ; let Z = ( N . get ( Q ) ?? 1 ) - 1 ; if ( Z > 0 ) N . set ( Q , Z ); else N . delete ( Q )}; try { for (;;){ if ( G ?.aborted) throw new B ( "cancelled" ...
5 `);return q})(),m}function Uj(j,q,G){return new Promise((z)=>{let J=f(j,q,{stdio:["pipe","pipe","ignore"],windowsHide:!0,timeout:120000}),K="";J.stdout?.setEncoding("utf8").on("data",(Q)=>{K+=Q}),J.on("error",()=>z({status:null,stdout:K})),J.on("close",(Q)=>z({status:Q,stdout:K})),J.stdin?.end(G??"")})}function bj(j=C()){return l??=(async()=>{let q=hj();if(q.length===0)return;let G=await Bj(j),z=G?await Uj(j,["acl","stamp","--holder-pid",String(process.ppid),"--sandbox-user-sid",G],JSON.stringify({denyRead:[],denyWrite:q})):null;if(!z||z.status!==0&&z.status!==2)A(` program_folder_deny_failed: ...
6 `)})(),l}var yj=` h = $ (mktemp - d) || exit 125 ; trap 'rm -rf "$h"' EXIT ; mkdir - p "$h/AppData/Roaming" "$h/AppData/Local" ; w = $ (cygpath - w "$h" ); export HOME = "$h" USERPROFILE = "$w" APPDATA = "$w \\ AppData \\ Roaming" LOCALAPPDATA = "$w \\ AppData \\ Local" TEMP = "$w" TMP = "$w" ; `;async function Xj(){let j=k;if(k=null,P=null,!j)return;try{await(await j).reset()}catch{}}async function Yj(j={}){if(Y)return!1;if(j.loadSandboxRuntime)return d(j.loadSandboxRuntime);if(!Vj())return!1;return c??=d(Kj),c}async function d(j){try{let{SandboxManager:q}=await j();if(process.platform==="win32"){if(!U(C()))A("dependencies_mis ...
7 export{oj as xc,C as yc,tj as zc,ej as Ac,jq as Bc,qq as Cc,Vj as Dc,zq as Ec,Cj as Fc,Gq as Gc};
Long lines were clipped for display.
;
import
{Xi
as
Hz,jj
as
V,lj
as
Jz}
from
"./vm-hands-entry-lite-rnmy7f5e.js"
;
import
{xk
as
X}
from
"./vm-hands-entry-lite-fb02h1zm.js"
;
import
{spawnSync
as
C}
from
"child_process"
;
import
{createHash
as
Pz,randomUUID
as
Iz}
from
"crypto"
;
import
{chmodSync
as
Wz,existsSync
as
y,mkdirSync
as
bz,readdirSync
as
Sz,readFileSync
as
L,renameSync
as
wz,rmSync
as
Y,statSync
as
_z,writeFileSync
as
xz}
from
"fs"
;
import
{dirname
as
Rz,isAbsol ...
3 <Task version= "1.2" xmlns= "http://schemas.microsoft.com/windows/2004/02/mit/task" >
4 <RegistrationInfo>
Medium Install Persistence
Source writes installer persistence such as shell profile or service configuration.
bin/vm-hands/vm-hands-entry-lite-gq3bzj7d.js View on unpkg · L1 5 <Description>${S(H.description)}</Description>
11 <Principal id= "Author" >
13 <LogonType>InteractiveToken</LogonType>
14 <RunLevel>LeastPrivilege</RunLevel>
18 <MultipleInstancesPolicy>${J? "StopExisting" : "IgnoreNew" }</MultipleInstancesPolicy>
19 <DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
20 <StopIfGoingOnBatteries>false</StopIfGoingOnBatteries>
21 <StartWhenAvailable>true</StartWhenAvailable>
Long lines were clipped for display.