安全决策报告

lock-me-in

该技能为合法浏览器登录工具,通过云隧道让用户远程登录网站并持久化 session,核心功能与文档一致。存在轻微阴影功能(未声明的 /eval 端点)和代理 URL 解析风险,但风险可控。

安装决策优先 来源: ClawHub 扫描时间: 2026/4/6
文件 2
IOC 4
越权项 0
发现 3

为什么得出这个结论

1/4 个维度触发
通过
声明与实际能力

声明资源与推断能力基本一致。

阻止
隐藏执行与外联

提取到 1 个高危 IOC 或外联信号。

通过
攻击链与高危发现

没有形成明确的恶意路径。

通过
依赖与供应链卫生

依赖结构存在,但暂未看到明显高危告警。

风险分是怎么被拉高的

未声明的 /eval 端点 +10

代码提供 page.evaluate() 能力但 SKILL.md 未提及

代理 URL 解析逻辑 +5

OPENCLAW_PROXY_URL 解析可能存在边界情况

Web UI 网络暴露 +5

监听 0.0.0.0 并创建公共隧道,需用户自行保护

最关键的证据

低危 文档欺骗

未声明的 /eval 端点

HTTP 服务器提供 /eval 端点允许执行任意 JavaScript,但 SKILL.md 未提及此能力

scripts/browser-login.mjs:262
如非必要则移除,或在文档中明确声明此能力的用途和风险
低危 敏感访问

代理认证信息解析

解析 OPENCLAW_PROXY_URL 环境变量提取用户名密码,如环境变量被污染可能解析错误内容

scripts/browser-login.mjs:194
增加输入验证,确保 URL 格式符合预期
提示 代码执行

公共隧道 URL 生成

cloudflared 创建的公共 URL 无认证保护,文档已声明风险

scripts/browser-login.mjs:280
确保只将隧道 URL 分享给可信用户,15分钟超时设计合理

声明能力 vs 实际能力

文件系统 通过
声明 WRITE
→
推断 WRITE
SKILL.md 声明 session 存储,代码写入 /data/home/.browser-sessions/
网络访问 通过
声明 READ
→
推断 WRITE
启动 cloudflared 隧道(spawn),文档说明用于隧道访问
命令执行 通过
声明 NONE
→
推断 READ
spawn cloudflared 执行外部程序,文档未明确说明
浏览器 通过
声明 WRITE
→
推断 WRITE
启动 Chromium 并控制页面,文档声明

可疑产物与外联

高危 IP 地址
131.0.0.0

scripts/browser-login.mjs:262

中危 外部 URL
https://linkedin.com/login

SKILL.md:26

中危 外部 URL
https://mail.google.com

SKILL.md:28

中危 外部 URL
https://linkedin.com/feed

SKILL.md:52

依赖与供应链

包名版本来源漏洞备注
playwright-core not locked require('/app/node_modules/playwright-core') 否 使用绝对路径引用本地安装版本

文件构成

2 个文件 · 565 行
JavaScript 1 个文件 · 468 行Markdown 1 个文件 · 97 行
需关注文件 · 2
scripts/browser-login.mjs JavaScript · 468 行
未声明的 /eval 端点 · 代理认证信息解析 · 公共隧道 URL 生成 · 131.0.0.0
SKILL.md Markdown · 97 行
https://linkedin.com/login · https://mail.google.com · https://linkedin.com/feed

安全亮点

核心功能与 SKILL.md 文档高度一致
Session 数据本地存储,不外传
15 分钟自动超时关闭设计合理
无硬编码凭证或敏感数据外泄
使用 Playwright 官方 API,依赖可信
安全注释清晰说明 session 数据敏感性