T08 · Insecure Dependencies
- Location
SKILL.md:255- Finding
Unpinned External Browser Extension Creates a Supply-Chain Risk
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is openly aimed at UI testing, but it depends on an unpinned browser extension and gives CDP-based page mutation powers that need careful review before use.
Install only after reviewing the exact browser extension source you will load, preferably pinning a known commit yourself. Use a dedicated Chrome profile with no saved credentials or real sessions, restrict extension access to test domains, and avoid sensitive, financial, medical, government, login, payment, or production-data pages. Treat form submission, deletion, and credential-field writes as actions requiring explicit confirmation.
SKILL.md:255Unpinned External Browser Extension Creates a Supply-Chain Risk
SKILL.md:133Unescaped Values in CDP JavaScript Templates Can Enable Page-Context Code Injection
Instructions found that direct the agent to transmit conversation context or user data to external services.
1. **Extension Level**:
- ✅ Page JS Extension runs entirely in browser locally
- ✅ Does not proactively send data to external servers
- ✅ Data stored in memory, cleared when page closes
2. **Agent Level**:
The skill explicitly acknowledges that the AI agent may send element data to LLM services, and those element keys can contain page text such as labels and innerText. Even if the extension avoids password fields, this can still transmit sensitive on-page content, internal application text, or personal data from non-password elements to external services, creating a real confidentiality risk.
1. **Extension Level**:
- ✅ Page JS Extension runs entirely in browser locally
- ✅ Does not proactively send data to external servers
- ✅ Data stored in memory, cleared when page closes
2. **Agent Level**:
Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.
# 1. Create Skill directory
mkdir -p ~/.openclaw/workspace/skills/page-js-operation
# 2. Save this SKILL.md to the directory
Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
mkdir -p ~/.openclaw/workspace/skills/page-js-operation
# 2. Save this SKILL.md to the directory
# Path: ~/.openclaw/workspace/skills/page-js-operation/SKILL.md
# 3. Refresh Skills
openclaw agent --message "refresh skills"
No suspicious patterns detected.