registry  /  @mflrevan/wipe  /  0.3.8

@mflrevan/wipe@0.3.8

wipe - CLI-first, git-native collaboration for humans and agents.

AI Security Review

scanned 1d ago · by lpm-firewall-ai

Postinstall fetches a platform-specific executable archive from the package's GitHub releases and extracts it locally. The fetched artifact is not integrity-verified by the JavaScript installer.

Static reason
One or more suspicious static signals were detected.
Trigger
npm installation triggers download and extraction; invoking `wipe` executes the extracted binary.
Impact
A compromised or substituted release artifact could introduce arbitrary native-code execution when the CLI is run.
Mechanism
Lifecycle remote-binary downloader and launcher.
Rationale
This is a package-aligned binary distribution mechanism, not confirmed malicious behavior. However, install-time retrieval and extraction of an unverified executable create a real staged-payload supply-chain risk.
Evidence
package.jsoninstall.jsbinary.jsbinary-install.jsrun-wipe.jsnode_modules/.bin_real
Network endpoints1
github.com/mflRevan/wipe/releases/download/v0.3.8

Decision evidence

public snapshot
AI called this Suspicious at 86.0% confidence as Dangerous Capability with medium false-positive risk.
Evidence for warning
  • `package.json` runs `node ./install.js` on postinstall.
  • `binary.js` builds a GitHub release archive URL by platform.
  • `binary-install.js` downloads and extracts the archive into `node_modules/.bin_real`.
  • The archive is not checksum- or signature-verified before extraction.
Evidence against
  • Download host is package-aligned: `github.com/mflRevan/wipe`.
  • Source only uses `SystemRoot` to locate Windows `tar.exe`.
  • No source reads credentials, scans user files, or writes agent configuration.
  • Downloaded binary runs only through the explicit `wipe` CLI command.
Behavioral surface
Source
ChildProcessEnvironmentVarsFilesystemNetwork
Supply chain
UrlStrings
ManifestNo manifest risk signals triggered.
scanned 4 file(s), 9.13 KB of source, external domains: example.com

Source & flagged code

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

Package defines install-time lifecycle scripts.

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

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

package.jsonView on unpkg
binary-install.jsView file
2const { join, sep } = require("path"); L3: const { spawnSync } = require("child_process"); L4: const { tmpdir } = require("os");
High
Child Process

Package source references child process execution.

binary-install.jsView on unpkg · L2
92L93: return axios({ ...fetchOptions, url: this.url, responseType: "stream" }) L94: .then((res) => { ... L101: if (/\.tar\.*/.test(this.zipExt)) { L102: const result = spawnSync(process.platform === "win32" ? join(process.env.SystemRoot || "C:\\Windows", "System32", "tar.exe") : "tar", ["xf", tempFile, L103: // The tarballs are stored with a leading directory
High
Same File Env Network Execution

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

binary-install.jsView on unpkg · L92

Findings

3 High3 Medium3 Low
HighInstall Time Lifecycle Scriptspackage.json
HighChild Processbinary-install.js
HighSame File Env Network Executionbinary-install.js
MediumAmbiguous Install Lifecycle Scriptpackage.json
MediumNetwork
MediumEnvironment Vars
LowScripts Present
LowFilesystem
LowUrl Strings