T08 · Insecure Dependencies
Warning
- Location
- SKILL_EN.md:221
- Finding
- Unpinned Executable Browser Extension Dependency## Vulnerability Details **File Location**: `SKILL.md:32, 221` and `SKILL_EN.md:32, 221` **Vulnerability Type**: Unpinned third-party executable dependency **Risk Level**: Medium ### Complete Code Snippet The dependency is introduced without a version, commit, checksum, or signature: ```markdown 1. **Page JS Extension** - Chrome Extension (manual installation required) - GitHub: https://github.com/TangJing/openclaw_access_web_page_js - **Please download and review source code before installation** ``` The installation instructions clone the mutable default branch and direct the user to load it as an unpacked browser extension: ```bash # 1. Download source code git clone https://github.com/TangJing/openclaw_access_web_page_js.git cd openclaw_access_web_page_js # 2. Review source code (recommended) # Check for: # - Network request code # - Data exfiltration logic # - manifest.json permissions # 3. Install extension # Open chrome://extensions/ # Enable "Developer mode" # Click "Load unpacked", select project directory ``` The same dependency and installation procedure appear in both language variants. ### Technical Analysis The Skill requires users to retrieve and execute a browser extension from a mutable third-party GitHub repository. The clone command does not pin a reviewed commit, signed tag, immutable release artifact, or cryptographic checksum. Consequently, the code installed by a user can differ from the code previously reviewed by the Skill publisher or another user. Loading the downloaded directory as an unpacked extension executes its code in Chrome under the permissions declared by its current manifest. A source-review recommendation is useful guidance but does not provide integrity enforcement, reproducibility, or protection against later repository changes. The external repository was not included in the audited artifact. Therefore, this finding does not assert that its current contents are malicious; it identifies the unsafe depen ...[truncated 1585 chars]
- Remediation
- ## Remediation Suggestions 1. Pin the dependency to a specific, reviewed Git commit rather than cloning the mutable default branch: ```bash git clone https://github.com/TangJing/openclaw_access_web_page_js.git cd openclaw_access_web_page_js git checkout --detach <reviewed-full-commit-hash> ``` 2. Publish and verify a SHA-256 checksum for the approved source archive or extension package before installation. 3. Prefer a signed release and document how users must verify its signature and signer identity. 4. Vendor the reviewed extension source into the Skill package when licensing and distribution requirements permit. This would allow the Skill and its required executable component to be audited together. 5. Document the exact expected Chrome extension permissions and reject installation if the retrieved manifest requests additional permissions. 6. Make source verification mandatory rather than merely recommended, including checks for network requests, externally loaded scripts, dynamic code execution, and permission changes. 7. Run the extension in a dedicated browser profile containing no saved credentials, authenticated sessions, personal data, or unrelated extensions. 8. Restrict host access to explicit test or public domains and avoid broad patterns such as access to all URLs. 9. Re-review and re-pin each dependency update instead of automatically following upstream changes.
