AI Security Review
scanned 10d ago · by lpm-firewall-aiThe package is a binary-downloader CLI wrapper. Install-time code fetches a platform release archive and places binaries in a package-local directory, but no confirmed malicious behavior is present in the inspected JavaScript source.
Static reason
One or more suspicious static signals were detected.
Trigger
npm install runs postinstall; wipe CLI execution runs run-wipe.js
Impact
Unverified native release artifact could execute arbitrary behavior when the user runs wipe; inspected wrapper itself shows no exfiltration or persistence.
Mechanism
install-time remote native binary download and runtime launcher
Attack narrative
On npm install, postinstall invokes install.js, which selects a supported platform, downloads a GitHub release archive, extracts it into node_modules/.bin_real, and later run-wipe.js spawns that installed binary. The JavaScript wrapper does not harvest data, persist, or mutate AI-agent control surfaces; the remaining risk is the unverified native artifact fetched at install time.
Rationale
Static source inspection finds an install-time native binary downloader with no checksum, which is unresolved supply-chain risk but not concrete malicious behavior. Agent skill installation is documented as a user-invoked CLI feature in README, not performed by the npm lifecycle source inspected.
Evidence
package.jsoninstall.jsbinary.jsbinary-install.jsrun-wipe.jsREADME.mdnode_modules/.bin_realOS tmp artifact path
Network endpoints3
github.com/mflRevan/wipe/releases/download/v0.2.0wipeboard.devgithub.com/mflRevan/wipe
Decision evidence
public snapshotAI called this Suspicious at 80.0% confidence as Dangerous Capability with medium false-positive risk.
Evidence for warning
- package.json defines postinstall: node ./install.js
- install.js calls install(false) during npm lifecycle
- binary-install.js downloads a release archive with axios and extracts it using tar/unzip
- binary-install.js installs executable artifacts under node_modules/.bin_real without checksum verification
- run-wipe.js launches the installed native binary via spawnSync
Evidence against
- Download URL is package-aligned GitHub release path for mflRevan/wipe v0.2.0
- No source evidence of credential/env harvesting or exfiltration
- No source writes to Claude/Codex/Cursor/MCP control surfaces during install
- No shell startup, VCS hook, service, or daemon persistence in JS wrapper
- README documents wipe as a CLI binary package and separately documents user-invoked skill install
Behavioral surface
ChildProcessFilesystemNetwork
UrlStrings
Source & flagged code
2 flagged · loading sourcepackage.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 unpkgFindings
1 High2 Medium3 Low
HighInstall Time Lifecycle Scriptspackage.json
MediumAmbiguous Install Lifecycle Scriptpackage.json
MediumNetwork
LowScripts Present
LowFilesystem
LowUrl Strings