低风险 — 风险评分 15/100
上次扫描:2 天前 重新扫描
15 /100
ssh-handoff
Create and reuse a secure shared terminal handoff when a human must authenticate first and the agent must resume work in the same shell session afterward.
SSH Handoff 技能提供 tmux 会话共享和浏览器终端功能,用于人与 AI Agent 共享 shell 会话。代码质量良好,行为与文档一致,无恶意行为发现。硬编码 IP 地址(192.0.2.x)为文档示例地址,合法用于技术说明。
技能名称ssh-handoff
分析耗时33.0s
引擎pi
可以安装
可安全使用。建议明确声明 sudo/ufw 权限需求于 SKILL.md 中。

安全发现 3 项

严重性 安全发现 位置
中危
未声明的 network:WRITE 权限
技能启动 ttyd HTTP 服务和 Node.js 代理,需绑定端口监听网络请求,但 SKILL.md 未在声明中列出 network 权限
nohup ttyd -W -i "$UPSTREAM_HOST" -p "$UPSTREAM_PORT" tmux attach -t "$SESSION_NAME"
→ 在 SKILL.md 的 description 或 Usage 部分添加 network:WRITE 声明
scripts/start-url-token-web-terminal.sh:15
低危
文档使用 TEST-NET IP 地址
SKILL.md:122 使用 192.0.2.10/20 作为示例 IP,这是 IANA 分配的 TEST-NET-1 地址池,仅用于文档目的,但被预扫描标记为高危 IOC
HOST=192.0.2.10 CLIENT_IP=192.0.2.20 PORT=48080
→ 这属于合法文档实践,建议在 SKILL.md 中添加注释说明 '192.0.2.x 为 TEST-NET-1 示例地址'
SKILL.md:122
低危
未声明 sudo 权限需求
脚本中包含 ufw 防火墙命令提示,当 CLIENT_IP 配置时提示用户运行 sudo ufw 命令,但 SKILL.md 未声明此权限需求
UFW_ALLOW_CMD="sudo ufw allow from $CLIENT_IP to any port $PROXY_PORT proto tcp"
→ 在 SKILL.md 的 Requirements 部分添加 sudo 权限说明
scripts/start-url-token-web-terminal.sh:303
资源类型声明权限推断权限状态证据
命令执行 WRITE WRITE ✓ 一致 scripts/start-url-token-web-terminal.sh:line 15-25 创建/管理 tmux 会话
网络访问 NONE WRITE ✗ 越权 启动 ttyd HTTP 服务和 Node.js 代理,SKILL.md 未声明
文件系统 NONE WRITE ✗ 越权 scripts/start-url-token-web-terminal.sh:line 189 使用 mktemp 创建临时目录
2 高危 4 项发现
📡
高危 IP 地址 硬编码 IP 地址
192.0.2.10
SKILL.md:122
📡
高危 IP 地址 硬编码 IP 地址
192.0.2.20
SKILL.md:122
🔗
中危 外部 URL 外部 URL
https://$EXPECTED_HOST
scripts/start-url-token-web-terminal.sh:229
🔗
中危 外部 URL 外部 URL
http://$EXPECTED_HOST
scripts/start-url-token-web-terminal.sh:231

目录结构

9 文件 · 41.5 KB · 1376 行
Markdown 5f · 555L Shell 3f · 484L JavaScript 1f · 337L
├─ 📁 references
│ ├─ 📝 design-notes.md Markdown 122L · 3.2 KB
│ ├─ 📝 examples.md Markdown 48L · 1.6 KB
│ └─ 📝 lan-restricted.md Markdown 37L · 1.3 KB
├─ 📁 scripts
│ ├─ 🔧 start-local-web-terminal.sh Shell 88L · 2.0 KB
│ ├─ 🔑 start-url-token-web-terminal.sh Shell 376L · 11.2 KB
│ ├─ 🔧 stop-local-web-terminal.sh Shell 20L · 335 B
│ └─ 🔑 url-token-proxy.js JavaScript 337L · 9.3 KB
├─ 📝 README.md Markdown 112L · 3.9 KB
└─ 📝 SKILL.md Markdown 236L · 8.6 KB

依赖分析 4 项

包名版本来源已知漏洞备注
node any system Mode C 必须,系统自带即可
python3 any system 用于生成 token 和管理状态
tmux any system 核心组件,必须
ttyd any system 浏览器终端,必须

安全亮点

✓ 代码结构清晰,注释完整
✓ 实现了完善的 TTL 超时自动清理机制
✓ 包含 IP 白名单、Host/Origin 验证等多层安全检查
✓ 使用 crypto.randomUUID/secrets 生成安全随机 token
✓ 无 base64|bash 管道、eval()、裸 IP 外部请求等高危模式
✓ 无凭证收割、环境变量遍历等敏感数据访问
✓ 无远程脚本下载/执行行为
✓ 无 HTML 注释隐藏指令
✓ 无访问 ~/.ssh、~/.aws、.env 等敏感路径