T09 · Insecure Skill Coding Practices
- Location
scripts/extract-wc-uri.js:82- Finding
Unrestricted Browser Target Enables Blind Server-Side Request Forgery
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill is aimed at EtherMail access, but it asks users to route wallet authentication through raw private-key signing and loosely scoped browser automation.
Review this carefully before installing. Use a dedicated low-value wallet only, avoid giving raw private keys to third-party scripts, verify any WalletConnect request before signing, and prefer a pinned, reviewed connector or hardware/isolated signer. Do not use the extraction script with arbitrary URLs.
scripts/extract-wc-uri.js:82Unrestricted Browser Target Enables Blind Server-Side Request Forgery
SKILL.md:78Unpinned External WalletConnect Skill Receives a Raw Wallet Private Key and Automatically Signs Requests
The skill claims to provide EtherMail access, but its concrete guidance is primarily about extracting a WalletConnect URI from the page’s Shadow DOM and using an external signing workflow to complete login. That mismatch is security-relevant because it normalizes credential-adjacent auth interception behavior and can cause users or agents to run sensitive wallet-connection steps they would not expect from an email-access skill. In this context, harvesting or relaying a WalletConnect URI can enable unauthorized session initiation or phishing-style wallet approval flows if the URI or downstream connector is mishandled.
The dependency is specified with a caret range (^21.0.0), which allows npm to install newer minor and patch releases without explicit review. In a security-sensitive skill that automates browser actions for Web3 and WalletConnect flows, unpinned dependencies increase supply-chain risk and make builds non-reproducible, so behavior and exposure can change over time.
"extract-uri": "node scripts/extract-wc-uri.js"
},
"dependencies": {
"puppeteer": "^21.0.0"
},
"keywords": ["ethermail", "web3", "email", "walletconnect", "ai-agent"],
"license": "MIT"
The manifest references puppeteer without an exact pinned version, so it is not possible to verify from this file alone whether the installed release includes a version affected by known advisories. Because this skill uses browser automation in a Web3/email context, uncertainty around the exact browser automation package version increases supply-chain and patch-management risk.
No suspicious patterns detected.