T08 · Insecure Dependencies
- Location
README.md:144- Finding
Unpinned Global npm Package Automatically Installs a Platform-Specific Binary
- Content
View full analysis
Vulnerability Details
File Location:
README.md, lines 144-152
Vulnerability Type: Supply-chain exposure through an unpinned global dependency and automatically installed native binary
Risk Level: MediumComplete Code Snippet
markdown ### 1. Install the CLI Install Omnibot CLI globally via npm (recommended): ```bash npm install -g @omniaibot/omnibotIt auto-detects your platform and installs the corresponding binary. After installation, run
omnibot doctorto verify.text Equivalent installation instructions also appear in the localized README files, including `README_de.md`, `README_es.md`, `README_fr.md`, `README_ja.md`, `README_ko.md`, and `README_zh.md`. ### Technical Analysis The installation command does not pin an exact package version or require verification of the downloaded package and native binary. Consequently, npm resolves the package version available under the package name at installation time. The selected package may execute npm lifecycle logic and automatically install a platform-specific executable. This creates a mutable supply-chain trust boundary: the code ultimately executed by users can change after the Skill documentation has been audited. A compromise of the npm publisher account, package release process, dependency graph, registry response, or native-binary distribution channel could introduce arbitrary code without modifying this repository. Global installation increases exposure because the package is installed into the user's global npm environment. The documented automatic daemon startup also means that an installed executable may subsequently run when the user invokes an Omnibot browser command. ### Attack Path 1. An attacker compromises the npm package publisher, release pipeline, dependency chain, or platform-binary distribution mechanism. 2. The attacker publishes a malicious package version or substitutes a malicious native binary. 3. A user follows the documented command: `npm insta ...[truncated 1247 chars]- Remediation
View remediation
Remediation Suggestions
-
Pin the installation command to a reviewed, exact package version rather than resolving the latest release:
bash npm install -g @omniaibot/omnibot@2.4.1 -
Publish cryptographic checksums or signatures for every platform-specific binary and verify them before installation or execution.
-
Document the expected npm registry, package publisher identity, signing keys, binary download domains, and verification procedure.
-
Use reproducible release processes and publish provenance attestations, such as npm provenance and SLSA-compatible build metadata.
-
Minimize or eliminate npm lifecycle scripts. If lifecycle scripts are required, document their behavior and make their source auditable.
-
Prefer a least-privileged, isolated installation instead of a global installation where practical. Do not recommend running npm or Omnibot installation commands with administrator or root privileges.
-
Pin transitive dependencies through a reviewed lockfile in the package build process and continuously scan the package and native binaries for supply-chain changes.
-
Require explicit user approval before first daemon startup and clearly document the executable path, process behavior, listening interface, and shutdown procedure.
-
