Back to skill
Skillv1.0.0
ClawScan security
SenseRobot元萝卜光翼灯 · ClawHub's context-aware review of the artifact, metadata, and declared behavior.
Scanner verdict
SuspiciousApr 28, 2026, 2:04 PM
- Verdict
- suspicious
- Confidence
- high
- Model
- gpt-5-mini
- Summary
- Skill 功能和大部分实现相符,但在本地路径、外部二进制、推送目标与文档之间存在不一致且未声明的依赖,以及可选后台守护进程会把设备状态推送到一个硬编码的飞书目标,这些都值得在安装前确认。
- Guidance
- 要不要安装 / 如何降低风险: 1) 路径与二进制:确认并修改脚本中的硬编码路径(OPENCLAW=/home/…、session.json 的默认路径)。如果你没有 openclaw,可先不要启用 watchdog;或把脚本改为使用可配置的 openclaw 路径或直接调用 HTTP 推送。 2) 飞书目标(FEISHU_TARGET):脚本把台灯状态发送到一个硬编码的飞书 ID。安装前务必确认该 ID 是你的账户/你明确允许的接收方,或把它改为由你在运行时配置,否则设备状态会被推送给第三方。 3) session.json 与 token:脚本会读写包含 AUTH-TOKEN 的 session.json,该 token 能直接控制设备。仅在受信任环境、并且你理解 token 存放位置与访问权限时才启动守护进程。定期检查/删除不再需要的 session 文件。 4) 不一致性:文档与脚本在 session.json 路径上不一致(doc 指向 /home/yuanluobo02/.openclaw/...,脚本默认脚本目录)。确认并统一配置以避免意外读取到他人的文件路径或将 session 写到错误位置。 5) 守护进程风险:守护进程会长期保持网络连接并把状态推送到外部。除非你明确需要此功能并确认接收方,否则不要把脚本加入开机自启或后台运行。先在交互式模式手动运行并查看日志,再决定是否长期运行。 6) 代码审计:如果可能,请在本地审阅并(必要时)修改 scripts/lightwing_watchdog.py:将 FEISHU_TARGET、OPENCLAW、SESSION_FILE 等改为从配置读取,避免 os.system 调用未受控命令,或替换为更安全的 API 客户端调用。 7) 最后:该技能整体上实现了它宣称的功能,但存在硬编码和未声明依赖/外发目标,应在充分确认以上要点后再授权在你的环境里长期运行。
Review Dimensions
- Purpose & Capability
- concern技能声明的目的(控制台灯、TTS、可选 MQTT 监控)与大部分实现一致,但存在不成比例或未申明的依赖:文档和 references 指向 /home/yuanluobo02/.openclaw/workspace/.lightwing/session.json,但脚本默认使用脚本目录下的 session.json;脚本还硬编码了 OPENCLAW 可执行文件路径 (/home/yuanluobo02/.npm-global/bin/openclaw) 和 FEISHU_TARGET。技能元数据未声明任何必需二进制或配置路径,这与实际需要不一致。
- Instruction Scope
- concernSKILL.md 指示读取/写入本地 session.json、发起短信登录流程并保存 token、可选地在后台部署 watchdog 进程。watchdog 会订阅 MQTT 并在检测到状态变化时通过 openclaw 命令把消息发到一个飞书目标——也就是把设备状态推到外部服务。虽然文档声明不会滥用验证码响应,但推送目标在代码中被硬编码而非由运行时环境或用户明确配置,存在把用户设备状态发给非明确接收者的风险。
- Install Mechanism
- ok无安装规范(instruction-only + 一个 Python 脚本),因此不会在安装阶段自动下载或执行远程二进制,这降低了安装期风险。但运行时仍依赖本地环境(paho-mqtt、python3、以及未声明的 openclaw 可执行文件)。
- Credentials
- concern技能未声明需要任何环境变量或外部凭据,但运行时会读取/写入 session.json(包含 token)、连接 MQTT 并使用 token。watchdog 中的 OPENCLAW 路径与 FEISHU_TARGET 为硬编码值,技能没有把这些作为可配置项或在元数据中说明。权限/凭据访问(存取 token 并把状态推送到飞书)是合理的功能需要,但未透明声明且目标 ID 非用户可知/可控,比例不当。
- Persistence & Privilege
- note技能并未要求始终驻留(always:false),但文档主动建议用户在系统上启动守护进程并将其加入开机自启。可选的长期后台进程会持有 device token 并持续连接 MQTT 并向外部发送通知——这是持久化权限的一种形式,用户在授权部署前应知情并同意。
