AI Security Review
scanned 4d ago · by lpm-firewall-aiLPM blocks this version under the AI-agent control-surface policy. Install-time lifecycle code silently registers this package as an OpenCode server/TUI plugin. That mutates an AI agent control surface before explicit runtime consent.
Static reason
One or more suspicious static signals were detected.
Trigger
npm/bun install with lifecycle scripts enabled
Impact
Package is added to OpenCode config and can run as a server/TUI plugin on subsequent OpenCode use
Mechanism
postinstall OpenCode plugin registration
Policy narrative
On package install, the postinstall script runs dist/bin.js init. That code resolves the user's OpenCode config directory, writes or edits opencode.json and tui.json to include @hallaxius/nim-booster, and creates a default nim-booster config. Once OpenCode is restarted, the package's plugin code can observe session errors and rotate stored provider credentials.
Rationale
Although the package is mostly transparent and aligned with its stated NIM key/proxy rotation purpose, install-time mutation of OpenCode plugin configuration is an unconsented AI-agent control-surface change. That meets the firewall's block boundary for lifecycle AI-agent control hijack. Product guard normalized a non-low false-positive publish_block request to warn-only suspicious.
Evidence
package.jsondist/bin.jsdist/config-installer.jsdist/config.jsdist/server.jsdist/proxy/store.jsdist/proxy/health.jsREADME.mdopencode.jsontui.jsonnim-booster/config.json
Network endpoints3
proxy.webshare.io/api/v2/proxy/list/proxy.webshare.io/api/v2/proxy/list/refresh/ipv4.webshare.io/
Decision evidence
public snapshotAI called this Suspicious at 93.0% confidence as Dangerous Capability with medium false-positive risk.
Evidence for policy block
- package.json defines postinstall: node dist/bin.js init
- dist/bin.js init calls updateOpenCodeConfigs during install
- dist/config-installer.js writes opencode.json and tui.json plugin entries
- dist/config-installer.js creates nim-booster/config.json during init
- README.md confirms postinstall modifies opencode.json/tui.json
Evidence against
- README.md discloses the automatic registration behavior
- Network calls are limited to webshare.io proxy features
- Key storage code validates path segments and writes under OpenCode data dirs
- No child_process, eval, native binary loading, or obfuscated payload found
Behavioral surface
CryptoEnvironmentVarsFilesystemNetwork
HighEntropyStringsUrlStrings
Source & flagged code
2 flagged · loading sourcepackage.jsonView file
•scripts.postinstall = node dist/bin.js init 2>/dev/null || true
High
Install Time Lifecycle Scripts
Package defines install-time lifecycle scripts.
package.jsonView on unpkg•scripts.postinstall = node dist/bin.js init 2>/dev/null || true
Medium
Ambiguous Install Lifecycle Script
Install-time lifecycle script is not statically allowlisted and needs review.
package.jsonView on unpkgFindings
1 High3 Medium4 Low
HighInstall Time Lifecycle Scriptspackage.json
MediumAmbiguous Install Lifecycle Scriptpackage.json
MediumNetwork
MediumEnvironment Vars
LowScripts Present
LowFilesystem
LowHigh Entropy Strings
LowUrl Strings