registry  /  @mflrevan/wipe  /  0.3.12

@mflrevan/wipe@0.3.12

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

AI Security Review

scanned 2h ago · by lpm-firewall-ai

Install-time code downloads an unverified native release archive and extracts it into this package. A later `wipe` invocation executes that downloaded binary; the binary payload is not available for inspection.

Static reason
One or more suspicious static signals were detected.
Trigger
npm postinstall downloads/extracts the release; running `wipe` executes it.
Impact
A compromised release artifact could execute arbitrary code when the CLI is run.
Mechanism
Remote native-binary bootstrap without checksum verification.
Rationale
No concrete malicious source behavior is present in the JavaScript wrapper, but its postinstall remote binary bootstrap creates unresolved executable-payload risk. Treat it as a staged payload carrier rather than a confirmed malicious package.
Evidence
package.jsoninstall.jsbinary.jsbinary-install.jsrun-wipe.jsREADME.mdnode_modules/.bin_realnode_modules/.bin_real/wipe
Network endpoints1
github.com/mflRevan/wipe/releases/download/v0.3.12

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 `postinstall: node ./install.js`.
  • `binary.js` forms release URLs from a GitHub release base.
  • `binary-install.js` downloads and extracts an unsigned platform archive.
  • `run-wipe.js` executes the downloaded `node_modules/.bin_real/wipe` binary.
Evidence against
  • Wrapper source has no credential harvesting or exfiltration logic.
  • Network target is a fixed package-aligned GitHub release URL.
  • Child-process calls use fixed `tar`/`unzip` arguments or the selected CLI binary.
  • Deletion is scoped to this package's `node_modules/.bin_real` directory.
  • No wrapper code writes AI-agent configuration or persistence locations.
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