T08 · Insecure Dependencies
- Location
SKILL.md:22- Finding
Unpinned Global CLI and Sideloaded Browser Extension
- Content
View full analysis
= 20.0.0): `brew install node` 或访问 https://nodejs.org 2. **安装 OpenCLI**: `npm install -g @jackwener/opencli` 3. **安装浏览器扩展**: - 从 https://github.com/jackwener/opencli/releases 下载 `opencli-extension.zip` - 打开 Chrome → `chrome://extensions` → 开启"开发者模式" - 点击"加载已解压的扩展程序" → 选择解压后的文件夹 4. **登录目标网站**:在 Chrome 中登录目标网站(例如:发推前先在 Chrome 中登录 twitter.com) 5. **验证**:运行 `opencli doctor` 确认扩展和守护进程连接正常 ``` ### Technical Analysis The Skill instructs users to install `@jackwener/opencli` globally without pinning a reviewed version. It also directs users to download and sideload an unpacked browser extension from a mutable GitHub release location without a checksum, digital signature, release tag, or other integrity verification. GitHub is a conventional code-hosting service rather than a pastebin, and the repository owner matches the npm package namespace. Nevertheless, both installation channels deliver mutable third-party executable code. A global npm installation can run package lifecycle scripts with the installing user's privileges. A sideloaded Chrome extension can receive significant browser permissions and operate in a browser containing authenticated sessions. Reusing authenticated Chrome sessions is relevant to the declared website-automation functionality. However, requiring an unverified, unpacked extension and globally installed package exceeds a safe minimum-trust design because the Skill does not constrain versions, verify provenance, or disclose and limit extension permissions. ### Attack Path 1. An attacker compromises the npm package, maintainer account, GitHub repository, release workflow, or downloadable release archive. 2. The attacker publishes a malicious p ...[truncated 1255 chars]- Remediation
View remediation
