AI Security Review
scanned 2h ago · by lpm-firewall-aiInstall-time code retrieves an opaque remote native executable, then the CLI launches it. The reviewed JavaScript does not validate the retrieved artifact.
Static reason
One or more suspicious static signals were detected.
Trigger
`npm install`/`npx` with lifecycle scripts enabled; later invocation of `forge-cockpit`.
Impact
A compromised or substituted release asset can execute with the installing or CLI user's privileges.
Mechanism
postinstall remote-binary download followed by CLI execution
Rationale
The source establishes an unverified install-time remote payload chain, so it is not clean. It does not provide concrete evidence that the publisher intends malicious behavior.
Evidence
package.jsonpostinstall.jsbin/forge-cockpit.jsREADME.mdbin/forgebin/forge.exe
Network endpoints1
github.com/LeyouHong/forge-cockpit/releases/download/release-v0.2.1/forge-cockpit-{platform}
Decision evidence
public snapshotAI called this Suspicious at 91.0% confidence as Dangerous Capability with low false-positive risk.
Evidence for warning
- `postinstall` runs `node postinstall.js` at install time.
- `postinstall.js` downloads a platform-specific executable from a GitHub Release.
- Downloaded bytes are written to `bin/forge` or `bin/forge.exe` without checksum or signature validation.
- `bin/forge-cockpit.js` executes that downloaded binary via `spawnSync`.
Evidence against
- Source contains no credential, environment, or local-file harvesting.
- No AI-agent configuration writes, persistence, or destructive file operations were found.
- The download URL is package-aligned to `LeyouHong/forge-cockpit` and version `0.2.1`.
- The launcher executes only after an explicit CLI invocation.
Behavioral surface
ChildProcessFilesystemNetwork
UrlStrings
Source & flagged code
2 flagged · loading sourcepackage.jsonView file
•scripts.postinstall = node postinstall.js
High
Install Time Lifecycle Scripts
Package defines install-time lifecycle scripts.
package.jsonView on unpkg•scripts.postinstall = node postinstall.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