registry  /  bvm-core  /  1.1.40

bvm-core@1.1.40

Need a Bun version manager? BVM installs, switches, and isolates Bun versions across Windows, macOS, and Linux.

Static Scan Results

scanned 3h ago · by rust-scanner

Static analysis flagged 16 finding(s) at 72.0% confidence. This version is warn-only unless an AI or security-team review confirms malicious behavior.

Static reason
One or more suspicious static signals were detected.

Decision evidence

public snapshot
Behavioral surface
Source
ChildProcessCryptoEnvironmentVarsFilesystemNetwork
Supply chain
HighEntropyStringsObfuscatedUrlStrings
ManifestNo manifest risk signals triggered.
scanned 4 file(s), 102 KB of source, external domains: 1.1.1.1, api.github.com, bvm-core.nexsail.top, cdn.jsdelivr.net, example.com, github.com, mirrors.cloud.tencent.com, registry.npmjs.org, registry.npmmirror.com

Source & flagged code

8 flagged · loading source
package.jsonView file
scripts.postinstall = node scripts/postinstall.js
High
Install Time Lifecycle Scripts

Package defines install-time lifecycle scripts.

package.jsonView on unpkg
scripts.postinstall = node scripts/postinstall.js
Medium
Ambiguous Install Lifecycle Script

Install-time lifecycle script is not statically allowlisted and needs review.

package.jsonView on unpkg
bin/bvm-npm.jsView file
6L7: const { spawnSync } = require('child_process'); L8: const path = require('path');
High
Child Process

Package source references child process execution.

bin/bvm-npm.jsView on unpkg · L6
dist/index.jsView file
4`);return}this.timer=setInterval(()=>{process.stdout.write(`\r\x1B[K${w.cyan(this.frames[this.frameIndex])} ${this.text}`),this.frameIndex=(this.frameIndex+1)%this.frames.length},8... L5: `)}render(b){let $=Math.min(1,this.current/this.total),c=Math.round(this.width*$),f=this.width-c,u=process.platform==="win32",y=u?"=":"\u2588",_=u?"-":"\u2591",m=w.green(y.repeat(c... L6: `)){let y=u.match(/refs\/tags\/bun-v?(\d+\.\d+\.\d+.*)$/);if(y)f.push(y[1])}return f}async function d$(){if(W())return[...Zb];try{let $=(await ec()).filter((c)=>l(c)).map((c)=>({v:...
High
Same File Env Network Execution

A single source file combines environment access, network access, and code or shell execution; review context before blocking.

dist/index.jsView on unpkg · L4
2// @bun L3: var Xc=Object.defineProperty;var Mc=(b)=>b;function dc(b,$){this[b]=Mc.bind(null,$)}var B$=(b,$)=>{for(var c in $)Xc(b,c,{get:$[c],enumerable:!0,configurable:!0,set:dc.bind($,c)})}... L4: `);return}this.timer=setInterval(()=>{process.stdout.write(`\r\x1B[K${w.cyan(this.frames[this.frameIndex])} ${this.text}`),this.frameIndex=(this.frameIndex+1)%this.frames.length},8... L5: `)}render(b){let $=Math.min(1,this.current/this.total),c=Math.round(this.width*$),f=this.width-c,u=process.platform==="win32",y=u?"=":"\u2588",_=u?"-":"\u2591",m=w.green(y.repeat(c... L6: `)){let y=u.match(/refs\/tags\/bun-v?(\d+\.\d+\.\d+.*)$/);if(y)f.push(y[1])}return f}async function d$(){if(W())return[...Zb];try{let $=(await ec()).filter((c)=>l(c)).map((c)=>({v:...
High
Command Output Exfiltration

Source combines command execution, command-output handling, and outbound requests; review data flow before blocking.

dist/index.jsView on unpkg · L2
2// @bun L3: var Xc=Object.defineProperty;var Mc=(b)=>b;function dc(b,$){this[b]=Mc.bind(null,$)}var B$=(b,$)=>{for(var c in $)Xc(b,c,{get:$[c],enumerable:!0,configurable:!0,set:dc.bind($,c)})}... L4: `);return}this.timer=setInterval(()=>{process.stdout.write(`\r\x1B[K${w.cyan(this.frames[this.frameIndex])} ${this.text}`),this.frameIndex=(this.frameIndex+1)%this.frames.length},8... L5: `)}render(b){let $=Math.min(1,this.current/this.total),c=Math.round(this.width*$),f=this.width-c,u=process.platform==="win32",y=u?"=":"\u2588",_=u?"-":"\u2591",m=w.green(y.repeat(c... L6: `)){let y=u.match(/refs\/tags\/bun-v?(\d+\.\d+\.\d+.*)$/);if(y)f.push(y[1])}return f}async function d$(){if(W())return[...Zb];try{let $=(await ec()).filter((c)=>l(c)).map((c)=>({v:... ... L12: Global Flags:`),console.log(" --help, -h Show this help message"),console.log(" --version, -v Show version number"),console.log(` L13: Examples:`),console.log(" bvm install 1.0.0"),console.log(" bvm use 1.0.0"),console.log(" bvm run 1.0.0 index.ts")}}I();M();import{join as T,basename as nf}from"path";d();d();as... L14: ... L495: } L496: `;var D$=R$;async function xf(){if(K!=="win32
Medium
Install Persistence

Source writes installer persistence such as shell profile or service configuration.

dist/index.jsView on unpkg · L2
scripts/postinstall.jsView file
4* BVM Post-install Script (Smart Edition) L5: * Bunker-First: Manages BVM private runtime in runtime/ bunker. L6: */ ... L9: const path = require('path'); L10: const { spawnSync } = require('child_process'); L11: const { createHash, timingSafeEqual } = require('crypto'); ... L13: L14: const IS_WINDOWS = process.platform === 'win32'; L15: const HOME = process.env.HOME || os.homedir(); L16: const BVM_DIR = process.env.BVM_DIR || path.join(HOME, '.bvm'); ... L43: } L44: const expected = Buffer.from(integrity.slice(7), 'base64');
High
Sandbox Evasion Gated Capability

Source gates dangerous network, credential, or execution behavior behind CI, host, platform, time, or geo fingerprint checks.

scripts/postinstall.jsView on unpkg · L4
dist/bvm-shim.shView file
path = dist/bvm-shim.sh kind = build_helper sizeBytes = 2575 magicHex = [redacted]
Medium
Ships Build Helper

Package ships non-JavaScript build or shell helper files.

dist/bvm-shim.shView on unpkg

Findings

5 High6 Medium5 Low
HighInstall Time Lifecycle Scriptspackage.json
HighChild Processbin/bvm-npm.js
HighSame File Env Network Executiondist/index.js
HighCommand Output Exfiltrationdist/index.js
HighSandbox Evasion Gated Capabilityscripts/postinstall.js
MediumAmbiguous Install Lifecycle Scriptpackage.json
MediumNetwork
MediumEnvironment Vars
MediumInstall Persistencedist/index.js
MediumShips Build Helperdist/bvm-shim.sh
MediumStructural Risk Force Deep Review
LowScripts Present
LowFilesystem
LowObfuscated
LowHigh Entropy Strings
LowUrl Strings