AI Security Review
scanned 7d ago · by lpm-firewall-aiNo confirmed malicious attack surface was established. The package installs and launches a package-aligned native CLI binary, with normal supply-chain risk from install-time binary download but no source evidence of exfiltration or unauthorized mutation.
Static reason
One or more suspicious static signals were detected.
Trigger
npm install runs postinstall; user command ocv runs bin/ocv
Impact
Installs package-local executable and runs it when the user invokes ocv
Mechanism
platform-specific binary downloader and CLI wrapper
Rationale
The suspicious primitives are aligned with a binary-distributed CLI: postinstall fetches release assets from the package repository and writes only the package-local executable. Static inspection found no credential collection, exfiltration, persistence, destructive behavior, or AI-agent control hijack.
Evidence
package.jsonpostinstall.cjsbin/ocvbin/.ocvbin/.ocv.exe
Network endpoints1
github.com/leohenon/opencode-vim/releases/download
Decision evidence
public snapshotAI called this Clean at 84.0% confidence as Benign with medium false-positive risk.
Evidence for block
- package.json defines postinstall: node ./postinstall.cjs
- postinstall.cjs downloads a platform binary over fetch and writes bin/.ocv
- postinstall.cjs uses child_process.spawnSync only for sysctl/ldd platform detection
- bin/ocv spawns bin/.ocv, or OCV_BIN_PATH when explicitly set
Evidence against
- Download URL is package-aligned: github.com/leohenon/opencode-vim releases
- Lifecycle write is limited to package-local bin/.ocv and chmod
- No credential, env, home directory, or project file harvesting found
- No broad AI-agent config/control-surface writes found
- No obfuscated eval, remote script execution, persistence, or destructive behavior found
Behavioral surface
ChildProcessEnvironmentVarsFilesystemNetwork
UrlStrings
Source & flagged code
2 flagged · loading sourcepackage.jsonView file
•scripts.postinstall = node ./postinstall.cjs
High
Install Time Lifecycle Scripts
Package defines install-time lifecycle scripts.
package.jsonView on unpkg•scripts.postinstall = node ./postinstall.cjs
Medium
Ambiguous Install Lifecycle Script
Install-time lifecycle script is not statically allowlisted and needs review.
package.jsonView on unpkgFindings
1 High3 Medium3 Low
HighInstall Time Lifecycle Scriptspackage.json
MediumAmbiguous Install Lifecycle Scriptpackage.json
MediumNetwork
MediumEnvironment Vars
LowScripts Present
LowFilesystem
LowUrl Strings