registry  /  @mflrevan/wipe  /  0.3.2

@mflrevan/wipe@0.3.2

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

AI Security Review

scanned 9d ago · by lpm-firewall-ai

The npm package has an install-time native binary downloader. Static JS source shows package-aligned release download and extraction, but the fetched binary is opaque to this source-only review.

Static reason
One or more suspicious static signals were detected.
Trigger
npm install or wipe CLI invocation
Impact
Supply-chain risk from install-time executable download; no confirmed malicious source behavior.
Mechanism
postinstall downloads and extracts platform-specific native CLI binary
Attack narrative
On installation, postinstall runs install.js, which selects a supported platform, builds a GitHub release artifact URL, downloads it with axios, and extracts it into node_modules/.bin_real. The bin wrapper later executes that native binary with user arguments. The reviewed JS does not harvest credentials, persist outside the package, or mutate AI-agent control surfaces.
Rationale
This is not confirmed malicious by source inspection, but install-time download and execution setup for an opaque native binary leaves real unresolved supply-chain risk. The suspicious primitives are mostly package-aligned for a native CLI installer, so publish blocking is not justified from the inspected source alone.
Evidence
package.jsoninstall.jsbinary.jsbinary-install.jsrun-wipe.jsREADME.mdnode_modules/.bin_realOS temp directory download file
Network endpoints1
github.com/mflRevan/wipe/releases/download/v0.3.2

Decision evidence

public snapshot
AI called this Suspicious at 78.0% confidence as Unknown with medium false-positive risk.
Evidence for warning
  • package.json defines postinstall: node ./install.js
  • install.js calls binary.install during npm lifecycle
  • binary-install.js downloads a platform tarball with axios and extracts it via tar/unzip
  • binary-install.js installs executable files into node_modules/.bin_real
  • run-wipe.js invokes the installed native binary on user CLI execution
Evidence against
  • Download URL is package-aligned GitHub release for mflRevan/wipe v0.3.2
  • No credential/env harvesting found beyond SystemRoot for Windows tar path
  • No exfiltration endpoint or arbitrary remote command execution in JS wrapper
  • No lifecycle writes to Claude/Codex/Cursor/MCP or other AI-agent control surfaces
  • README skill install behavior is documented as user-invoked CLI usage, not postinstall behavior
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