Skill Trust Decision

subscribe-filter-feishu

合法的WebSocket订阅+大模型过滤+飞书推送工具,代码行为与声明基本一致,无恶意行为发现。

Install decision first Source: ClawHub Scanned: Apr 3, 2026
Files 6
Artifacts 27
Violations 0
Findings 3

Why this conclusion was reached

0/4 dimensions flagged
Pass
Declared vs actual capability

Declared resources and inferred behavior are broadly aligned.

Review
Hidden execution and egress

27 lower-risk artifacts were extracted and still need context.

Pass
Attack chain and severe findings

There is no explicit malicious chain in the report.

Review
Dependencies and supply chain hygiene

1 dependency or supply-chain issues need attention.

What drove the risk score up

权限声明宽泛 +10

SKILL.md未声明allowed-tools,但代码使用了filesystem和network

依赖无版本锁定 +5

axios和ws在package.json中使用^通配符

凭证存储在配置文件 +5

API密钥存储在~/.openclaw/*.json而非环境变量

Most important evidence

Medium

第三方依赖无版本锁定

axios使用^1.6.0,ws使用^8.14.2,可能拉取有漏洞的更新版本

package.json:18
固定版本如 "axios": "1.6.8"
Low

SKILL.md未声明allowed-tools

文档未列出skill_invoke、filesystem、network等声明,但代码确实使用了这些资源

SKILL.md:1
添加allowed-tools声明
Low

配置文件存储敏感凭证

API密钥存储在~/.openclaw/*.json而非环境变量,与"安全工具"场景有差异

scripts/receiver.js:35
考虑使用环境变量存储敏感凭证

Declared capability vs actual capability

Filesystem Pass
Declared NONE
→
Inferred WRITE
scripts/receiver.js:39-42 配置文件读取
Filesystem Pass
Declared NONE
→
Inferred WRITE
scripts/receiver.js:67-68,96 PID和日志文件写入
Network Pass
Declared NONE
→
Inferred WRITE
scripts/receiver.js:103-105 WebSocket连接到ws_url
Network Pass
Declared NONE
→
Inferred WRITE
scripts/receiver.js:113-116 POST到飞书API
Network Pass
Declared NONE
→
Inferred WRITE
scripts/receiver.js:170-173 POST到LLM API
Environment Pass
Declared NONE
→
Inferred READ
scripts/receiver.js:35 os.homedir()获取home路径

Suspicious artifacts and egress

Medium External URL
https://ark.cn-beijing.volces.com/api/v3

SKILL.md:38

Medium External URL
https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz

package-lock.json:17

Medium External URL
https://registry.npmmirror.com/axios/-/axios-1.13.6.tgz

package-lock.json:23

Medium External URL
https://registry.npmmirror.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz

package-lock.json:34

Medium External URL
https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz

package-lock.json:47

Medium External URL
https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz

package-lock.json:59

Medium External URL
https://registry.npmmirror.com/dunder-proto/-/dunder-proto-1.0.1.tgz

package-lock.json:68

Medium External URL
https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz

package-lock.json:82

Medium External URL
https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz

package-lock.json:91

Medium External URL
https://registry.npmmirror.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz

package-lock.json:100

Medium External URL
https://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz

package-lock.json:112

Medium External URL
https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.11.tgz

package-lock.json:127

Dependencies and supply chain

PackageVersionSourceKnown vulnNotes
ws ^8.14.2 npm No WebSocket客户端,版本较新
axios ^1.6.0 npm No HTTP客户端,无版本锁定存在供应链风险

File composition

6 files · 837 lines
JavaScript 1 files · 374 linesJSON 4 files · 343 linesMarkdown 1 files · 120 lines
Files of concern · 4
package-lock.json JSON · 316 lines
https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz · https://registry.npmmirror.com/axios/-/axios-1.13.6.tgz · https://registry.npmmirror.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz · https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz · https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz · https://registry.npmmirror.com/dunder-proto/-/dunder-proto-1.0.1.tgz · https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz · https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz · https://registry.npmmirror.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz · https://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz · https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.11.tgz · https://registry.npmmirror.com/form-data/-/form-data-4.0.5.tgz · https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz · https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz · https://registry.npmmirror.com/get-proto/-/get-proto-1.0.1.tgz · https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz · https://registry.npmmirror.com/has-symbols/-/has-symbols-1.1.0.tgz · https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz · https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz · https://registry.npmmirror.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz · https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz · https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz · https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz · https://registry.npmmirror.com/ws/-/ws-8.19.0.tgz
scripts/receiver.js JavaScript · 374 lines
配置文件存储敏感凭证 · https://open.feishu.cn/open-apis/auth/v3/app_access_token/internal · https://open.feishu.cn/open-apis/im/v1/messages?receive_id_type=open_id
SKILL.md Markdown · 120 lines
SKILL.md未声明allowed-tools · https://ark.cn-beijing.volces.com/api/v3
package.json JSON · 13 lines
第三方依赖无版本锁定
Other files · metadata.json · _meta.json

Security positives

代码结构清晰,功能单一且专注
错误处理完善(try-catch、异常兜底)
网络请求目标明确(飞书API、豆包API、WebSocket源)
日志记录完整,便于审计
无命令注入、eval、base64解码等危险操作
配置文件与代码分离,敏感信息不硬编码