Scan Report
40 /100
lock-me-in
Remote browser login and session persistence for headless servers via cloudflared tunnel
The skill is a legitimate browser-login tool but contains undeclared functionality: an undocumented environment variable (OPENCLAW_PROXY_URL) for proxy injection, an undeclared /eval endpoint allowing arbitrary JS execution in the browser page, and extensive stealth/anti-detection scripts that modify browser fingerprinting signals — none of which are mentioned in SKILL.md.
Use with caution
Document all undeclared capabilities (OPENCLAW_PROXY_URL, /eval endpoint, stealth evasion scripts) in SKILL.md. Consider removing or restricting the /eval endpoint, as it enables arbitrary JavaScript execution in the authenticated browser context accessible via the tunnel URL.
Findings 5 items
| Severity | Finding | Location |
|---|---|---|
| Medium | Undeclared stealth/anti-detection browser scripts Doc Mismatch | scripts/browser-login.mjs:35 |
| Medium | Undeclared /eval HTTP endpoint allows arbitrary JS execution in authenticated browser RCE | scripts/browser-login.mjs:248 |
| Medium | Undeclared OPENCLAW_PROXY_URL environment variable Doc Mismatch | scripts/browser-login.mjs:18 |
| Low | Cloudflared binary spawned via shell subprocess Priv Escalation | scripts/browser-login.mjs:404 |
| Low | cloudflared installation command does not pin version Supply Chain | SKILL.md:74 |
| Resource | Declared | Inferred | Status | Evidence |
|---|---|---|---|---|
| Browser | WRITE | WRITE | ✓ Aligned | Playwright Chromium launch + page interaction throughout browser-login.mjs |
| Network | NONE | WRITE | ✗ Violation | Cloudflared spawns external tunnel (line 404-405); proxy injection via OPENCLAW_… |
| Filesystem | READ+WRITE | READ+WRITE | ✓ Aligned | Session storageState read/write (line 302, saveSession function) |
| Shell | NONE | WRITE | ✗ Violation | spawn() used for cloudflared binary (line 404) — shell:WRITE, not declared |
1 High 4 findings
High IP Address 硬编码 IP 地址
131.0.0.0 scripts/browser-login.mjs:262 Medium External URL 外部 URL
https://linkedin.com/login SKILL.md:26 Medium External URL 外部 URL
https://mail.google.com SKILL.md:28 Medium External URL 外部 URL
https://linkedin.com/feed SKILL.md:52 File Tree
2 files · 24.4 KB · 565 lines JavaScript 1f · 468L
Markdown 1f · 97L
├─
▾
scripts
│ └─
browser-login.mjs
JavaScript
└─
SKILL.md
Markdown
Dependencies 2 items
| Package | Version | Source | Known Vulns | Notes |
|---|---|---|---|---|
playwright-core | unknown (imported from /app/node_modules) | npm | No | No package.json found; playwright-core is a transitive dep |
cloudflared | latest (unpinned) | github releases | No | Installation command in SKILL.md fetches latest without version pin |
Security Positives
✓ No credential harvesting or exfiltration — session data stays local
✓ No base64-encoded or obfuscated code found
✓ Auto-close timeout (15 min) limits exposure window
✓ Tunnel URLs are random and ephemeral (cloudflared managed)
✓ Session storage is scoped to a named directory, not globally accessible
✓ Proper cleanup on SIGINT/SIGTERM signals
✓ Cookie banners auto-accepted for UX, not for bypassing security