Loading npm security reports…
@reason-machines/cli-linux-x64-musl@0.2.377: Credential | LPM Firewall
Blocked & quarantined
Reason’s service receives access tokens for the user’s provider accounts, which may allow access under those accounts.
AI Security Reviewscanned 5d ago · by lpm-firewall-ai The inspected runtime code establishes a default-on transfer of saved third-party access tokens to a publisher-selected Reason API recipient. This is concrete credential exfiltration behavior, 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
Starting a worker through the normal connection flow when localLogins is unspecified; the setting defaults to enabled.
Impact
Reason’s service receives access tokens for the user’s provider accounts, which may allow access under those accounts.
Mechanism
The runtime reads local provider credentials, reduces them to provider and access-token records, then sends them in authenticated requests to the local-subscription endpoint.
Attack narrative
When a worker starts, the runtime reads saved provider credentials and sends current access tokens to Reason’s API. This is enabled by default when the setting is omitted. The CLI discloses the transfer and provides an off switch, but those do not establish recipient-specific consent to export existing third-party credentials.
AI rationale
The inspected runtime code establishes a default-on transfer of saved third-party access tokens to a publisher-selected Reason API recipient. This is concrete credential exfiltration behavior, so the package should be blocked.
Evidence
bin/vm-hands/vm-hands-entry-lite-xmkxtt3d.js bin/vm-hands/vm-hands-entry-lite-heq6qjmg.js bin/vm-hands/vm-hands-entry-lite-zfwg7ehq.js bin/vm-hands/vm-hands-entry-lite-5kgvss4p.js ~/.claude/.credentials.json ~/.codex/auth.json
Network endpoints2
api.reasonmachines.ai /local-subscriptionapi.reasonmachines.com /local-subscription
Decision evidencepublic snapshot AI called this Malicious at 97.0% confidence as Malware with low false-positive risk.
Evidence for block
The runtime reads saved Anthropic and Codex credentials and collects provider access tokens from local credential stores. It removes refresh tokens from the records, then sends each provider access token through a local-subscription request. The request body carries the credential record to Reason’s authenticated /local-subscription endpoint on its production API. Worker startup starts this transfer when localLogins is enabled, and the setting defaults to enabled when omitted. The CLI says Reason receives each login’s current access token; that disclosure and an off switch do not provide recipient-specific consent to export saved third-party tokens. The configured API origin is restricted to the Reason API, making Reason the package-selected recipient. Behavioral surface
Source ChildProcess Crypto DynamicRequire EnvironmentVars Eval Filesystem Network Shell WebSocket
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-bbk6a9sk.js
High Child Process bin/runtime/srt/sandbox-runtime.mjs
High Shell bin/vm-hands/vm-hands-entry-lite-xmkxtt3d.js
High Eval bin/vm-hands/vm-hands-entry-lite-hc3p6r9p.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-bbk6a9sk.js
High External Ai Agent Control Surface Mutation bin/vm-hands/index-bbk6a9sk.js
High Cross File Remote Execution Context bin/vm-hands/vm-hands-executor-854xv81v.js
High Semantic Analysis Limited bin/vm-hands/index-bbk6a9sk.js
Affected versions and remediation This report applies to @reason-machines/cli-linux-x64-musl@0.2.377 .
See all versions of @reason-machines/cli-linux-x64-musl for other recorded verdicts.
Avoid installing @reason-machines/cli-linux-x64-musl@0.2.377. 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 04:29:22.794Z (UTC) .
Think this verdict is wrong? Dispute it on GitHub or read how reports are produced .
Supply chain HighEntropyStrings Minified PossibleObfuscation UrlStrings
scanned 71 file(s), 5.44 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, 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, 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-xmkxtt3d.js View file 98 [ "$h" = ${W9($.sha256)} ] || { echo worker_ssh_artifact_mismatch >&2; exit 72; }
L99: exec "$a" worker __ssh-bootstrap`;return`exec /usr/bin/env -i PATH=/usr/bin:/bin:/usr/sbin:/sbin /bin/sh -c ${W9(J)}`}function fJ($,J){if(!/^[A-Za-z0-9][A-Za-z0-9_.-]{0,127}$/.test...
L100: `)){let[Q,...X]=Z.trim().split(/\s+/);if(["proxyjump","proxycommand"].includes(Q??"")&&X.join(" ").toLowerCase()!=="none")throw Error("worker_ssh_proxy_unsupported")}}function fY($...
High Shell
Package source references shell execution.
bin/vm-hands/vm-hands-entry-lite-xmkxtt3d.js View on unpkg · L98 • matchType = normalized_sha256
matchedPackage = @reason-machines/cli-linux-arm64-musl@0.2.376
matchedPath = bin/vm-hands/vm-hands-entry-lite-jdmcb8hd.js
matchedIdentity = npm:[redacted]:0.2.376
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-xmkxtt3d.js View on unpkg bin/vm-hands/vm-hands-entry-lite-hc3p6r9p.js View file 1 // @bun
L2: import{fk as s}from"./vm-hands-entry-lite-g036gtem.js";var mc={};s(mc,{xor:()=>Zl,xid:()=>kl,void:()=>Bl,uuidv7:()=>$l,uuidv6:()=>ul,uuidv4:()=>el,uuid:()=>vl,util:()=>k,url:()=>gl...
L3: `)}var Pr=(n)=>(i,o,v,r)=>{let t=v?{...v,async:!1}:{async:!1},e=i._zod.run({value:o,issues:[]},t);if(e instanceof Promise)throw new C;if(e.issues.length){let u=new(r?.Err??n)(e.iss...
High Eval
Package source references dynamic code evaluation.
bin/vm-hands/vm-hands-entry-lite-hc3p6r9p.js View on unpkg · L1 bin/vm-hands/vm-hands-entry-lite-dcynw6t2.js View file • matchType = normalized_sha256
matchedPackage = @reason-machines/cli-linux-arm64-musl@0.2.376
matchedPath = bin/vm-hands/vm-hands-entry-lite-dcynw6t2.js
matchedIdentity = npm:[redacted]:0.2.376
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-dcynw6t2.js View on unpkg 1 // @bun
L2: import{Ac as R}from"./vm-hands-entry-lite-sb9a1jcn.js";import{Tc as D}from"./vm-hands-entry-lite-hh24bq0d.js";import{bk as $}from"./vm-hands-entry-lite-j2q1k9vb.js";import{spawn as...
L3: export{Cj as uc,Mj as vc,c as wc,_j as xc,p as yc,Sj as zc};
Medium Dynamic Require
Package source references dynamic require/import behavior.
bin/vm-hands/vm-hands-entry-lite-dcynw6t2.js View on unpkg · L1 bin/vm-hands/vm-hands-entry-lite-f61rnfta.js View file • matchType = normalized_sha256
matchedPackage = @reason-machines/cli-linux-arm64-musl@0.2.376
matchedPath = bin/vm-hands/vm-hands-entry-lite-b9vxqwtn.js
matchedIdentity = npm:[redacted]:0.2.376
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-f61rnfta.js View on unpkg 1 // @bun
L2: import{ae as p,ce as V,fe as f}from"./vm-hands-entry-lite-1085xsma.js";import{Zh as E}from"./vm-hands-entry-lite-5kgvss4p.js";import{ni as y}from"./vm-hands-entry-lite-r6pap1kh.js"...
L3: `)}function g(H,z){let M;try{M=L(H,"utf8")}catch{return null}let J=b(M);if(!J)return null;let Q=v(J.launcher)?V(J.launcher):J.launcher,{program:Z,identity:B}=d(Q,J.args,z),$=M.repl...
Medium Install Persistence
Source writes installer persistence such as shell profile or service configuration.
bin/vm-hands/vm-hands-entry-lite-f61rnfta.js View on unpkg · L1 1 // @bun
L2: import{Aa as iJ0}from"./vm-hands-entry-lite-45j8qwsf.js";import{ck as NV0,dk as rn,ek as EJ,gk as an,hk as X0}from"./vm-hands-entry-lite-g036gtem.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-bbk6a9sk.js View on unpkg · L1 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-bbk6a9sk.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-bbk6a9sk.js View on unpkg • stage = ast_semantic_analysis; reason = ast_path_work_budget_exceeded; limitedFiles = 4
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-bbk6a9sk.js View on unpkg • matchType = normalized_sha256
matchedPackage = @reason-machines/cli-linux-arm64-musl@0.2.376
matchedPath = bin/vm-hands/index-bbk6a9sk.js
matchedIdentity = npm:[redacted]:0.2.376
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-bbk6a9sk.js View on unpkg bin/vm-hands/vm-hands-executor-854xv81v.js View file 1 Cross-file remote execution chain: bin/vm-hands/vm-hands-executor-854xv81v.js spawns bin/vm-hands/vm-hands-entry-lite-anmv8hp7.js; helper contains network access plus dynamic code execution.
L1: // @bun
L2: import{s as Rq}from"./vm-hands-entry-lite-hr1pz9rb.js";import{Lb as jq,pc as Nq,rb as Mq,tc as Aq}from"./vm-hands-entry-lite-wvawck15.js";import"./vm-hands-entry-lite-sb9a1jcn.js";...
L3: `)){let q=G.split(" ");if(q.length<10||!/^\d+:\d+$/.test(q[2]))continue;$.push({device:q[2],root:Jq(q[3]),mountPoint:Jq(q[4])})}return $}function _q(X,$,G){let q=X.replace(/\/+$/,"...
L4: `).filter(Boolean);Y=Z.length;let K=z.map((L)=>{try{return Number(JSON.parse(L).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-854xv81v.js View on unpkg · L1 • path = bin/ara
kind = native_binary
sizeBytes = 99674400
magicHex = [redacted]
Medium Ships Native Binary
Package ships native binary artifacts.
bin/ara View on unpkg • matchType = normalized_sha256
matchedPackage = @reason-machines/cli-linux-arm64-musl@0.2.376
matchedPath = bin/vm-hands/ask-relay-dr72wfff.js
matchedIdentity = npm:[redacted]:0.2.376
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-12q8wxh6.js View on unpkg bin/vm-hands/vm-hands-entry-lite-2c3z4jfn.js View file • matchType = normalized_sha256
matchedPackage = @reason-machines/cli-linux-arm64-musl@0.2.376
matchedPath = bin/vm-hands/vm-hands-entry-lite-e3ww6t2b.js
matchedIdentity = npm:[redacted]:0.2.376
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-2c3z4jfn.js View on unpkg bin/vm-hands/vm-hands-entry-lite-t2z9z5vm.js View file • matchType = normalized_sha256
matchedPackage = @reason-machines/cli-linux-arm64-musl@0.2.376
matchedPath = bin/vm-hands/vm-hands-entry-lite-9184jga5.js
matchedIdentity = npm:[redacted]:0.2.376
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-t2z9z5vm.js View on unpkg • matchType = normalized_sha256
matchedPackage = @reason-machines/cli-linux-arm64-musl@0.2.376
matchedPath = bin/vm-hands/status-abx8djkf.js
matchedIdentity = npm:[redacted]:0.2.376
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-nf924cq2.js View on unpkg bin/vm-hands/vm-hands-entry-lite-4e8w4qeb.js View file • matchType = normalized_sha256
matchedPackage = @reason-machines/cli-linux-arm64-musl@0.2.376
matchedPath = bin/vm-hands/vm-hands-entry-lite-30nedatv.js
matchedIdentity = npm:[redacted]:0.2.376
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-4e8w4qeb.js View on unpkg bin/vm-hands/vm-hands-entry-lite-5kgvss4p.js View file • matchType = normalized_sha256
matchedPackage = @reason-machines/cli-linux-arm64-musl@0.2.376
matchedPath = bin/vm-hands/vm-hands-entry-lite-5kgvss4p.js
matchedIdentity = npm:[redacted]:0.2.376
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-5kgvss4p.js View on unpkg bin/vm-hands/vm-hands-entry-lite-79z4vgmj.js View file • matchType = normalized_sha256
matchedPackage = @reason-machines/cli-linux-arm64-musl@0.2.376
matchedPath = bin/vm-hands/vm-hands-entry-lite-3s4twkek.js
matchedIdentity = npm:[redacted]:0.2.376
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-79z4vgmj.js View on unpkg bin/vm-hands/vm-hands-entry-lite-anmv8hp7.js View file • matchType = normalized_sha256
matchedPackage = @reason-machines/cli-linux-arm64-musl@0.2.376
matchedPath = bin/vm-hands/vm-hands-entry-lite-anmv8hp7.js
matchedIdentity = npm:[redacted]:0.2.376
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-anmv8hp7.js View on unpkg High Known Malware Source Similarity bin/vm-hands/ask-relay-12q8wxh6.js
High Known Malware Source Similarity bin/vm-hands/index-bbk6a9sk.js
High Known Malware Source Similarity bin/vm-hands/vm-hands-entry-lite-2c3z4jfn.js
High Known Malware Source Similarity bin/vm-hands/vm-hands-entry-lite-f61rnfta.js
High Known Malware Source Similarity bin/vm-hands/vm-hands-entry-lite-t2z9z5vm.js
High Known Malware Source Similarity bin/vm-hands/vm-hands-entry-lite-xmkxtt3d.js
High Known Malware Source Similarity bin/vm-hands/status-nf924cq2.js
High Known Malware Source Similarity bin/vm-hands/vm-hands-entry-lite-4e8w4qeb.js
High Known Malware Source Similarity bin/vm-hands/vm-hands-entry-lite-5kgvss4p.js
High Known Malware Source Similarity bin/vm-hands/vm-hands-entry-lite-79z4vgmj.js
High Known Malware Source Similarity bin/vm-hands/vm-hands-entry-lite-anmv8hp7.js
High Known Malware Source Similarity bin/vm-hands/vm-hands-entry-lite-dcynw6t2.js
Medium Dynamic Require bin/vm-hands/vm-hands-entry-lite-dcynw6t2.js
Medium Install Persistence bin/vm-hands/vm-hands-entry-lite-f61rnfta.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-xmkxtt3d.js View file Lines 78-118 javascript
78 `);let B0=j9($,h,{displayVideo:h["display.stream.v1"]===!0&&await U(),handsBrowser:h["hands.connect"]===!0&&M,userChrome:i&&"host"in i?i.host:null,...T===void 0?{}:{githubSignedIn:T},persistentTerminals:h["pty.start"]===!0&&E2(),probing:a,ownComputer:X.ownComputer===!0});if(!W&&B0.worker.readiness?.["browser.pr-proof.v1"]===!0){let O0=await l5();if(W||j.signal.aborted)return B0;process.stderr.write("error"in O0?` Reason worker : PR video proof unavailable (${O0.error})
79 `:` Reason worker : PR video proof ready (ffmpeg ${O0.encoder.ffmpeg.path})
80 `),W=c5({assertCurrent:async()=>{if(!w())throw Error("proof_authority_lost")},...!("error"in O0)?{recording:O0}:{}})}return B0},F=await O(q,H?t3.filter((h)=>q[h]!==!0):[]),z=F9($,J,F,W?.capability);X.onStartup?.("inventory_completed");let _=!1,D=0,R=0,E="starting",P=null,I=!1,f=!1,S=null,k,p=()=>!V.drained&&Date.parse(Y)>Date.now()&&z.supported_operations.some((h)=>F.worker.readiness?.[h]===!0),w=()=>!_&&p(),C=null,x=()=>D+(C?.claims()??0),A=null,y=new Set,b=(h)=>{let a=h.capabilities.root_paths;if(Object.assign(h.capabilities,F9(h.config,h.state,F,W?.capability)),a)h.capabilities.root_paths=a ...
bin/vm-hands/vm-hands-entry-lite-hc3p6r9p.js View file Lines 1-21 javascript
2 import {fk as s} from "./vm-hands-entry-lite-g036gtem.js" ; var mc = {}; s (mc,{ xor :() => Zl, xid :() => kl, void :() => Bl,
bin/vm-hands/vm-hands-entry-lite-dcynw6t2.js View file Lines 1-4 javascript
2 import {Ac as R} from "./vm-hands-entry-lite-sb9a1jcn.js" ; import {Tc as D} from "./vm-hands-entry-lite-hh24bq0d.js" ; import {bk as $} from "./vm-hands-entry-lite-j2q1k9vb.js" ; import {spawn as
bin/vm-hands/vm-hands-entry-lite-f61rnfta.js View file Lines 1-21 javascript
2 import {ae as p,ce as V,fe as f} from "./vm-hands-entry-lite-1085xsma.js" ; import {Zh as E} from "./vm-hands-entry-lite-5kgvss4p.js" ; import {ni as y} from "./vm-hands-entry-lite-r6pap1kh.js"
1 // @bun
L2: import{Aa as iJ0}from"./vm-hands-entry-lite-45j8qwsf.js";import{ck as NV0,dk as rn,ek as EJ,gk as an,hk as X0}from"./vm-hands-entry-lite-g036gtem.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-bbk6a9sk.js View on unpkg · L1 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-bbk6a9sk.js View on unpkg · L239 bin/vm-hands/vm-hands-executor-854xv81v.js View file 1 Cross-file remote execution chain: bin/vm-hands/vm-hands-executor-854xv81v.js spawns bin/vm-hands/vm-hands-entry-lite-anmv8hp7.js; helper contains network access plus dynamic code execution.
L1: // @bun
L2: import{s as Rq}from"./vm-hands-entry-lite-hr1pz9rb.js";import{Lb as jq,pc as Nq,rb as Mq,tc as Aq}from"./vm-hands-entry-lite-wvawck15.js";import"./vm-hands-entry-lite-sb9a1jcn.js";...
L3: `)){let q=G.split(" ");if(q.length<10||!/^\d+:\d+$/.test(q[2]))continue;$.push({device:q[2],root:Jq(q[3]),mountPoint:Jq(q[4])})}return $}function _q(X,$,G){let q=X.replace(/\/+$/,"...
L4: `).filter(Boolean);Y=Z.length;let K=z.map((L)=>{try{return Number(JSON.parse(L).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-854xv81v.js View on unpkg · L1 • path = bin/ara
kind = native_binary
sizeBytes = 99674400
magicHex = [redacted]
Medium Ships Native Binary
Package ships native binary artifacts.
bin/ara View on unpkg • matchType = normalized_sha256
matchedPackage = @reason-machines/cli-linux-arm64-musl@0.2.376
matchedPath = bin/vm-hands/ask-relay-dr72wfff.js
matchedIdentity = npm:[redacted]:0.2.376
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-12q8wxh6.js View on unpkg bin/vm-hands/vm-hands-entry-lite-2c3z4jfn.js View file • matchType = normalized_sha256
matchedPackage = @reason-machines/cli-linux-arm64-musl@0.2.376
matchedPath = bin/vm-hands/vm-hands-entry-lite-e3ww6t2b.js
matchedIdentity = npm:[redacted]:0.2.376
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-2c3z4jfn.js View on unpkg bin/vm-hands/vm-hands-entry-lite-t2z9z5vm.js View file • matchType = normalized_sha256
matchedPackage = @reason-machines/cli-linux-arm64-musl@0.2.376
matchedPath = bin/vm-hands/vm-hands-entry-lite-9184jga5.js
matchedIdentity = npm:[redacted]:0.2.376
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-t2z9z5vm.js View on unpkg • matchType = normalized_sha256
matchedPackage = @reason-machines/cli-linux-arm64-musl@0.2.376
matchedPath = bin/vm-hands/status-abx8djkf.js
matchedIdentity = npm:[redacted]:0.2.376
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-nf924cq2.js View on unpkg bin/vm-hands/vm-hands-entry-lite-4e8w4qeb.js View file • matchType = normalized_sha256
matchedPackage = @reason-machines/cli-linux-arm64-musl@0.2.376
matchedPath = bin/vm-hands/vm-hands-entry-lite-30nedatv.js
matchedIdentity = npm:[redacted]:0.2.376
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-4e8w4qeb.js View on unpkg bin/vm-hands/vm-hands-entry-lite-5kgvss4p.js View file • matchType = normalized_sha256
matchedPackage = @reason-machines/cli-linux-arm64-musl@0.2.376
matchedPath = bin/vm-hands/vm-hands-entry-lite-5kgvss4p.js
matchedIdentity = npm:[redacted]:0.2.376
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-5kgvss4p.js View on unpkg bin/vm-hands/vm-hands-entry-lite-79z4vgmj.js View file • matchType = normalized_sha256
matchedPackage = @reason-machines/cli-linux-arm64-musl@0.2.376
matchedPath = bin/vm-hands/vm-hands-entry-lite-3s4twkek.js
matchedIdentity = npm:[redacted]:0.2.376
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-79z4vgmj.js View on unpkg bin/vm-hands/vm-hands-entry-lite-anmv8hp7.js View file • matchType = normalized_sha256
matchedPackage = @reason-machines/cli-linux-arm64-musl@0.2.376
matchedPath = bin/vm-hands/vm-hands-entry-lite-anmv8hp7.js
matchedIdentity = npm:[redacted]:0.2.376
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-anmv8hp7.js View on unpkg 81 ` )}t. clear (); for ( let a of h)t. add (a)}, UY ); M0 . unref (); let u0 = ( h ) => { if ( ! X .readinessProbes) i8 ({config:$,readiness:h,signal:j.signal, idle :() => x () === 0 ,permissions: J .roots[ 0 ].permissions, onReady :( a ) => { O (a,[]). then (n)}})}, C0 = H ? G .final. then ( async ( h ) => { if (j.signal.aborted) return ; n ( await O (h,[])); let a = t3. filter (( U0 ) => h[ U0 ] ===! 0 );process.stderr. write ( `Reason worker: deferred lanes decided (${ a . length ? `ready: ${ a . join ( ", " ) }` : "none ready"}).
82 ` ), u0 (h)},() => {}) : Promise . resolve (); if ( ! H ) u0 (q); L ?. then ( async ( h ) => { T = h; for (;;){ let a = F , U0 =await O (a.worker.readiness ?? {},a.worker.probing ?? []); if (j.signal.aborted) return ; if ( F !== a) continue ; n ( U0 ); return }}); let c0 = H && F .worker.probing?. includes ( "pty.start" ) ? G .pty. then ( async ( h ) => { let a = () => F .worker.probing?. includes ( "pty.start" ) ===! 0 ; if (j.signal.aborted ||! a ()) return ; let U0 =await O ({ ... F .worker.readiness, "pty.start" :h},( F .worker.probing ?? []). filter (( i ) => i !== "pty.start" )); if (j.signal.aborted ||! a ()) return ; n ( U0 )},() => {}) : Promise . resolve (), I$ = () => ({version: 1 ,instanceId: Q ,deviceId: J .deviceId,phase: E ,drai ...
83 `:a==="absent"?` Reason worker: CLI ${h} is published; no updater is installed for it here.
84 `:` Reason worker: CLI ${h} is published; the updater did not start, so its next scheduled check takes it.
85 `)}}):void 0),Y0=(h)=>{if(h==="stop")T$();if(h==="reload_roots"){let a=o($);if(!a||a.deviceId!==J.deviceId)throw Error("worker_identity_changed");J.roots=a.roots;let U0=PJ(J.roots,NJ());if(U0)z.root_paths=U0;else delete z.root_paths;C?.check()}if(h==="drain"||h==="resume"){if(_||Date.parse(Y)<=Date.now())throw Error("worker_stopping_or_expired");V={...V,drained:h==="drain"},R0($,V)}return I$()};X.prestartedControl?.handle(Y0);let E$=X.prestartedControl?await X.prestartedControl.closed:await j2($,Q,Y0),G$,x$=!1,f0=()=>{let h=Date.parse(Y)-Date.now();if(h>0){G$=setTimeout(f0,Math.min(h,214748364 ...
86 ` )}}),S.arm(),setTimeout(WJ,0);else if(!m.handsPrespawn&&S)S.close(),S=null}if(m.type=== "heartbeat" ){if(C&&!_&&Date.now()>=Q3)Q3=Date.now()+Y3,C.check().then((s0)=>{X3=s0?0: X3 + 1 , Q3 = Date. now () + (s0 ? Y3 : Math. min ( Y3 , U4 * 2 ** Math. min ( X3 - 1 , 10 )))}); if ( P = m.serverTime, I = m.drain, L1 (), ! _ && C$ ) v ?.(m.latestCliVersions?.[ C$ ]); if ( ! _) E = "running" ; if ( ! _ &&! f && I$ ().executionEligible){ if (f =! 0 , X . onStartup ?.( "ready" ),( X .platform ?? process.platform) === "darwin" ) setTimeout (() => { try { L9 ({skipWhenSettled: ! 0 })} catch {}}, 0 )}} if (m.type === "reconnecting" &&! _) E = "reconnecting" ; if (m.type === "stopped" ) D = 0 ; X . onEvent ?.(m)})}), await C ?.sett ...
87 `)});else if(_&&!x$)await g9({state:J,client:h});if(s$)await _J().catch(()=>{return})}catch(h){if(!(h instanceof L0&&h.status===401))throw h;if(R0($,{...V,revoked:!0}),h.code==="device_revoked")X.onDeviceRevoked?.();throw Error("worker_revoked")}finally{if(clearTimeout(G$),clearInterval(M0),k)clearTimeout(k);if(T1)process.removeListener("SIGTERM",Y$),process.removeListener("SIGINT",T$);X.signal?.removeEventListener("abort",Y$),j.abort(),S?.close(),await C?.settled().catch(()=>{return}),await W?.broker.close().catch(()=>{return}),await E$()}}function qJ($=process.env){if($.REASON_RELAY_CUSTOM_D ...
88 ` ; if (Buffer. byteLength ( Z ) > 65536 ) throw Error ( "worker_ssh_frame_too_large" ); let Q ; try { await new Promise (( X , Y ) => { Q = this .clock. after ( J ,() => Y ( Error ( "worker_ssh_write_timeout" ))), this .output. write ( Z ,( V ) => V ? Y ( Error ( "worker_ssh_connection_failed" )) : X ())})} finally { Q ?.()}}async receive ($ = 30000 , J ){ if ( J ?.aborted) throw Error ( "worker_ssh_cancelled" ); if ( this .queue. length ) return this .queue. shift (); if ( this .failure) throw this .failure; if ( this .waiter) throw Error ( "worker_ssh_concurrent_read" ); let Z , Q ; try { return await new Promise (( X , Y ) => { this .waiter = {resolve: X ,reject: Y }, Q = () => { this .waiter =void 0 , Y ( Error ( "worker_ssh .. .
90 [ - f "$a" ] && [ ! - L "$a" ] && [ - x "$a" ] || { echo worker_ssh_artifact_unavailable >& 2 ; exit 72 ; }
91 p = \${a% /*}; f=\${a##*/ }; p = \${p: -/ }
92 p = $ (cd - P "$p" && pwd - P )
93 [ " \$ {p%/}/$f" = "$a" ] || { echo worker_ssh_artifact_unavailable >& 2 ; exit 72 ; }
94 if [ - x / usr / bin / sha256sum ]; then h = $ ( / usr / bin / sha256sum < "$a" );
95 elif [ - x / usr / bin / shasum ]; then h = $ ( / usr / bin / shasum - a 256 < "$a" );
96 else echo worker_ssh_hash_tool_unavailable >& 2 ; exit 72 ; fi
98 [ "$h" = ${ W9 ($.sha256)} ] || { echo worker_ssh_artifact_mismatch >& 2 ; exit 72 ; }
99 exec "$a" worker __ssh - bootstrap `;return` exec / usr / bin / env - i PATH =/ usr / bin: / bin: / usr / sbin: / sbin / bin / sh - c ${ W9 ( J )} `}function fJ($,J){if(!/^[A-Za-z0-9][A-Za-z0-9_.-]{0,127}$/.test($.alias)||!O9($.sshConfig))throw Error("worker_ssh_invalid_target");return["-T","-a","-F",$.sshConfig,"-o","BatchMode=yes","-o","StrictHostKeyChecking=yes","-o","UpdateHostKeys=no","-o","ForwardAgent=no","-o","ClearAllForwardings=yes","-o","PermitLocalCommand=no","-o","GSSAPIDelegateCredentials=no","-o","SessionType=default","-o","StdinNull=no","-o","ForkAfterAuthentication=no","-o","ControlMaster=no","-o","ControlP ...
100 ` )){ let [Q, ... X] = Z . trim (). split ( / \s + / ); if ([ "proxyjump" , "proxycommand" ]. includes ( Q ?? "" ) && X . join ( " " ). toLowerCase () !== "none" ) throw Error ( "worker_ssh_proxy_unsupported" )}} function fY ( $ ){ let J = [ "artifact_unavailable" , "hash_tool_unavailable" , "artifact_mismatch" ]. find (( Z ) => $. includes ( `worker_ssh_${ Z }` )); return J ? `worker_ssh_${ J }` : /HOST IDENTIFICATION HAS CHANGED | Host key verification failed | No . * host key is known/ i . test ($) ? "worker_ssh_host_key_rejected" : /Permission denied | authentication failed | expired/ i . test ($) ? "worker_ssh_authentication_failed" : "worker_ssh_connection_failed" } async function mY ( $ ){awa ...
High Shell
Package source references shell execution.
bin/vm-hands/vm-hands-entry-lite-xmkxtt3d.js View on unpkg · L98 101 `)}if(j.type==="stopped"){if(!q)throw Error("worker_ssh_invalid_readiness");return 0}}}catch(H){if(B.signal.aborted){M?.();try{await N.send({type:"stop"});let q=Y.now()+Z.shutdownGraceMs+1e4;while(Y.now()<q)if(kJ.parse(d2(await N.receive(Math.max(1,q-Y.now())))).type==="stopped")return 0}catch{}throw Error("worker_ssh_stop_unconfirmed")}if(H instanceof Error&&H.message==="worker_ssh_connection_closed"){let q=G??await Promise.race([V.result,new Promise((T)=>setTimeout(T,100))]);if(q?.exitCode)throw Error(q.errorCode)}throw H}finally{M?.(),process.removeListener("SIGINT",U),process.removeListene ...
102 ` ); else throw Error ( "probe_protocol_failed" )} catch { V . close (), J ( 1 )}}}}); try { return process.stdout. write ( JSON . stringify ({port: Y .port,token:$}) + `
103 ` ), await Z } finally { clearTimeout ( Q ), Y . stop ( ! 0 ),process.stdin. removeListener ( "end" , X ),process.stdin. pause ()}} import {closeSync as eY,createReadStream as $V,fstatSync as JV,readFileSync as ZV} from "fs" ; var nJ = "/run/sc/instance-generation" ; var rY = / ^ [1-9][0-9] {0,15} \n ?$ / ; function oY ( $ ){ return typeof $ === "number" && Number. isSafeInteger ($) && $ > 0 } function tJ ( $ ){ if ( typeof $ !== "string" ||! rY. test ($)) return null ; let J = Number ($. trim ()); return oY ( J ) ? J : null } var rJ = 3 , QV = 600000 , XV = 65536 , YV = 500 ; function oJ ( $ ){ if ($. length !== 3 || $[ 0 ] !== "standby" || $[ 1 ] !== "--handoff-fd" || $[ 2 ] !== String (rJ)) throw Error ( "worker_standby_inv .. .
105 enroll Obtain / redeem a ticket using the current Reason login
106 start Run the existing Device daemon in the foreground
107 status Read enrollment and live local control state
108 doctor Read local prerequisites; never enroll or repair
109 drain Persist withdrawal of new claims; keep current work
110 resume Explicitly clear persistent drain
111 stop Drain, then cancel at shutdownGraceMs (ephemeral: ends its Device)
112 revoke Revoke an offline Device and remove its local key
113 attach Start this same worker over verified system SSH
115 Config: version 1 ; apiOrigin, channel, stateDirectory, workspaceRoot, lifetime
116 (persistent | ephemeral); executionMode defaults confined (host is explicit consent);
117 slots (Sessions at once, 1 - 4 ) defaults 1 and a Machine worker runs one;
118 shutdownGraceMs defaults 30000. Paths must be absolute and canonical.
Long lines were clipped for display.
• matchType = normalized_sha256
matchedPackage = @reason-machines/cli-linux-arm64-musl@0.2.376
matchedPath = bin/vm-hands/vm-hands-entry-lite-jdmcb8hd.js
matchedIdentity = npm:[redacted]:0.2.376
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-xmkxtt3d.js View on unpkg uuidv7
:()
=>
$l,
uuidv6
:()
=>
ul,
uuidv4
:()
=>
el,
uuid
:()
=>
vl,
util
:()
=>
k,
url
:()
=>
gl,
uppercase
:()
=>
Xr,
unknown
:()
=>
mr,
union
:()
=>
gt,
undefined
:()
=>
Tl,
ulid
:()
=>
Ul,
uint64
:()
=>
Ql,
uint32
:()
=>
ql,
tuple
:()
=>
Q$
,
trim
:()
=>
Tr,
treeifyError
:()
=>
Lt,
transform
:()
=>
ct,
toUpperCase
:()
=>
Br,
toLowerCase
:()
=>
Hr,
toJSONSchema
:()
=>
Yi,
templateLiteral
:()
=>
uc,
symbol
:()
=>
Fl,
superRefine
:()
=>
cg,
success
:()
=>
tc,
stringbool
:()
=>
Uc,
stringFormat
:()
=>
Ll,
string
:()
=>
On,
strictObject
:()
=>
Rl,
startsWith
:()
=>
Kr,
slugify
:()
=>
Mr,
size
:()
=>
Dr,setErrorM
...
3 `)}var Pr=(n)=>(i,o,v,r)=>{let t=v?{...v,async:!1}:{async:!1},e=i._zod.run({value:o,issues:[]},t);if(e instanceof Promise)throw new C;if(e.issues.length){let u=new(r?.Err??n)(e.issues.map((g)=>Y(g,t,W())));throw Qn(u,r?.callee),u}return e.value},Fn=Pr(B),Jr=(n)=>async(i,o,v,r)=>{let t=v?{...v,async:!0}:{async:!0},e=i._zod.run({value:o,issues:[]},t);if(e instanceof Promise)e=await e;if(e.issues.length){let u=new(r?.Err??n)(e.issues.map((g)=>Y(g,t,W())));throw Qn(u,r?.callee),u}return e.value},Tn=Jr(B),Lr=(n)=>(i,o,v)=>{let r=v?{...v,async:!1}:{async:!1},t=i._zod.run({value:o,issues:[]},r);if(t ...
High Eval
Package source references dynamic code evaluation.
bin/vm-hands/vm-hands-entry-lite-hc3p6r9p.js View on unpkg · L1 4 ` ). filter (( t ) => t),v = Math. min ( ... o. map (( t ) => t. length - t. trimStart (). length )),r = o. map (( t ) => t. slice (v)). map (( t ) => " " . repeat ( this .indent * 2 ) + t); for (let t of r) this .content. push (t)} compile (){let n = Function,i = this ?.args,v = [ ... ( this ?.content ?? [ "" ]). map (( r ) => ` ${ r }` )];return new n ( ... i,v. join ( `
5 ` ))}}var jo = {major: 4 ,minor: 4 ,patch: 3 };var z = l ( "$ZodType" ,( n , i ) => { var o;n ?? (n = {}),n._zod.def = i,n._zod.bag = n._zod.bag || {},n._zod.version = jo; let v = [ ... n._zod.def.checks ?? []]; if (n._zod.traits. has ( "$ZodCheck" ))v. unshift (n); for ( let r of v) for ( let t of r._zod.onattach) t (n); if (v. length === 0 )(o = n._zod).deferred ?? (o.deferred = []),n._zod.deferred?. push (() => {n._zod.run = n._zod.parse}); else { let r = ( e , u , g ) => { let $ = er (e),c; for ( let b of u){ if (b._zod.def.when){ if ( Jt (e)) continue ; if ( ! b._zod.def. when (e)) continue } else if ($) continue ; let S = e.issues. length , D = b._zod. check (e); if ( D instanceof Promise && g?.async ===! 1 ) throw ne ...
6 if (${G}.issues. length ) {
8 payload.issues = payload.issues. concat (${G}.issues. map ( iss => ({
10 path: iss.path ? [${V}, ... iss.path] : [${V}]
15 if (${G}.value === undefined ) {
17 newResult[${V}] = undefined ;
20 newResult[${V}] = ${ G }.value;
Long lines were clipped for display.
i,spawnSync
as
n}
from
"child_process"
;
import
{existsSync
as
I,mkdtempSync
as
E,readFileSync
as
O,readdirSync
as
t,realpathSync
as
r,rmSync
as
y,statSync
as
o}
from
"fs"
;
import
{platform
as
b,tmpdir
as
h}
from
"os"
;
import
{dirname
as
N,join
as
Y}
from
"path"
;
import
{fileURLToPath
as
e,pathToFileURL
as
M}
from
"url"
;
var
jj
=
[
"bwrap"
,
"socat"
,
"rg"
],qj
=
2000
,_
=
20000
,zj
=
3
,
S
=
4000
,Gj
=new
Set
([
".git"
,
".hg"
,
".svn"
,
"node_modules"
]),Hj
=
[
"runA ..
.
3 export{Cj as uc ,Mj as vc ,c as wc ,_j as xc ,p as yc ,Sj as zc };
Medium Dynamic Require
Package source references dynamic require/import behavior.
bin/vm-hands/vm-hands-entry-lite-dcynw6t2.js View on unpkg · L1 Long lines were clipped for display.
• matchType = normalized_sha256
matchedPackage = @reason-machines/cli-linux-arm64-musl@0.2.376
matchedPath = bin/vm-hands/vm-hands-entry-lite-dcynw6t2.js
matchedIdentity = npm:[redacted]:0.2.376
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-dcynw6t2.js View on unpkg ;
import
{Hi
as
m,Vi
as
w,Xi
as
u}
from
"./vm-hands-entry-lite-79z4vgmj.js"
;
import
{spawnSync
as
F}
from
"child_process"
;
import
{createHash
as
e,randomUUID
as
zz}
from
"crypto"
;
import
{chmodSync
as
Hz,existsSync
as
P,mkdirSync
as
Jz,readdirSync
as
Mz,readFileSync
as
L,renameSync
as
Qz,rmSync
as
T,statSync
as
Zz,writeFileSync
as
$z}
from
"fs"
;
import
{dirname
as
Bz,isAbsolute
as
v,join
as
A}
from
"path"
;
var
W
=
"REASON_WORKER_SERVICE"
,j ...
3 `)}function g(H,z){let M;try{M=L(H,"utf8")}catch{return null}let J=b(M);if(!J)return null;let Q=v(J.launcher)?V(J.launcher):J.launcher,{program:Z,identity:B}=d(Q,J.args,z),$=M.replace(I,(j,Y,N,R)=>` ${ Y }${ S ( Z )}
Medium Install Persistence
Source writes installer persistence such as shell profile or service configuration.
bin/vm-hands/vm-hands-entry-lite-f61rnfta.js View on unpkg · L1 4 ${ R } `);if(!B)$=$.replace(X,"");else if(X.test($))$=$.replace(X,(j,Y,N)=>` ${ Y }${ G ( B .app)}${ N } `);else $=$.replace(Gz,(j,Y,N)=>` ${ Y }
6 < string >${ G ( B .app)}</ string >${ N } `);return $===M?null:$}function Nz(H,z){let M=g(H,z);if(M!==null)C(H,M)}function _z(H,z,M){if(z.platform!=="darwin")return!1;let J=x(H,z,M);return J!==null&&g(J.definition,z)!==null}var K="com.reasonmachines.worker.",_="so.reason.worker.",O=[K,_];function Az(H){return O.some((z)=>H.startsWith(z)&&/^[A-Za-z0-9._-]+$/.test(H.slice(z.length)))}function l(H,z=K){return` ${z}connect${ H === "production" ? "" : `.${ H }` } `}function xz(H,z){return O.some((M)=>H===l(z,M))}function Dz(H,z,M){if(z==="connect")return l(H.channel,M);let J=e("sha256").update(H.workspaceRoot).diges ...
7 ` : "" }${o} `)===r(z,Q,Z,M,{...J,workerIdentity:()=>null},H.path).plist}function n(H,z){if(z==="connect")return{args:["connect"],environment:{REASON_CLI_CHANNEL:H.channel},description:"Reason connection of this computer"};return{args:["serve",H.name,"--dir",H.workspaceRoot,...H.executionMode==="confined"?["--sandbox"]:[]],environment:{},description:` Reason machine ${ H .name} worker `}}function G(H){return H.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">").replaceAll('"',""").replaceAll("'","'")}function k(H,z=!1){if(/[ \0 - \x1f\x7f ]/.test(H))throw new q("A background se ...
8 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
12 <string>${ G ( M . label ) }</string>
13 <key>AssociatedBundleIdentifiers</key>
17 <key>ProgramArguments</key>
21 <key>EnvironmentVariables</key>
Long lines were clipped for display.
• matchType = normalized_sha256
matchedPackage = @reason-machines/cli-linux-arm64-musl@0.2.376
matchedPath = bin/vm-hands/vm-hands-entry-lite-b9vxqwtn.js
matchedIdentity = npm:[redacted]:0.2.376
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-f61rnfta.js View on unpkg • 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-bbk6a9sk.js View on unpkg • stage = ast_semantic_analysis; reason = ast_path_work_budget_exceeded; limitedFiles = 4
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-bbk6a9sk.js View on unpkg • matchType = normalized_sha256
matchedPackage = @reason-machines/cli-linux-arm64-musl@0.2.376
matchedPath = bin/vm-hands/index-bbk6a9sk.js
matchedIdentity = npm:[redacted]:0.2.376
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-bbk6a9sk.js View on unpkg