registry  /  @leohenon/ocv  /  1.18.2-ocv.4.8

@leohenon/ocv@1.18.2-ocv.4.8

ocv (OpenCode fork with vim keybindings).

AI Security Review

scanned 1d ago · by lpm-firewall-ai

Install time downloads an executable release asset and stores it as `bin/.ocv`; explicit `ocv` use executes it. Source contains no payload integrity verification, so the fetched binary is an uninspected remote-code stage.

Static reason
One or more suspicious static signals were detected.
Trigger
npm install runs postinstall; invoking `ocv` executes the downloaded binary.
Impact
A compromised release asset or overridden release-base environment variable could supply executable code.
Mechanism
postinstall remote binary bootstrap followed by CLI execution
Rationale
The package has a real install-time remote executable acquisition chain with no payload verification, warranting a warning. The inspected source does not establish a concrete malicious action.
Evidence
package.jsonpostinstall.cjsbin/ocvREADME.mdbin/.ocv
Network endpoints1
github.com/leohenon/opencode-vim/releases/download

Decision evidence

public snapshot
AI called this Suspicious at 88.0% confidence as Dangerous Capability with medium false-positive risk.
Evidence for warning
  • `package.json` runs `postinstall.cjs` during install.
  • `postinstall.cjs` fetches a platform binary from GitHub without a checksum or signature verification.
  • `postinstall.cjs` writes the downloaded payload to `bin/.ocv` and makes it executable.
  • `bin/ocv` later launches `bin/.ocv` with inherited CLI arguments.
Evidence against
  • Default download URL is package-aligned: `github.com/leohenon/opencode-vim/releases/download`.
  • The lifecycle script only detects platform/CPU details and downloads a named release asset.
  • No credential harvesting, environment enumeration, exfiltration, destructive operations, or AI-agent config writes were found.
  • `child_process` use is limited to local platform detection and explicit binary launching.
Behavioral surface
Source
ChildProcessEnvironmentVarsFilesystemNetwork
Supply chain
UrlStrings
ManifestNo manifest risk signals triggered.
scanned 1 file(s), 3.59 KB of source, external domains: github.com

Source & flagged code

2 flagged · loading source
package.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 unpkg

Findings

1 High3 Medium3 Low
HighInstall Time Lifecycle Scriptspackage.json
MediumAmbiguous Install Lifecycle Scriptpackage.json
MediumNetwork
MediumEnvironment Vars
LowScripts Present
LowFilesystem
LowUrl Strings