安全决策报告

run402-test

Skill performs undeclared filesystem access to read stored API credentials from ~/.config/run402/ that is not mentioned in SKILL.md documentation.

安装决策优先 来源: 手动上传 扫描时间: 2026/4/4
文件 2
IOC 4
越权项 3
发现 3
最直接的威胁证据

为什么得出这个结论

1/4 个维度触发
阻止
声明与实际能力

发现 3 项声明之外的能力或越权行为。

复核
隐藏执行与外联

提取到 4 个一般风险产物,需要结合上下文判断。

通过
攻击链与高危发现

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

复核
依赖与供应链卫生

没有完整依赖信息,供应链判断需要保留弹性。

风险分是怎么被拉高的

Undeclared filesystem access +15

SKILL.md only shows curl examples but script reads ~/.config/run402/projects.json

Undeclared credential access +10

Reads service_key from local config without documentation

Network access not declared +10

Makes HTTP POST requests to api.run402.com not declared as capability

最关键的证据

中危 文档欺骗

Documentation mismatch - curl examples vs actual implementation

SKILL.md only shows curl commands for database operations but the actual sql2.mjs script reads local config files from ~/.config/run402/projects.json. This hidden file access is not documented.

sql2.mjs:10
Document that the script requires pre-existing credentials stored in ~/.config/run402/projects.json or provide setup instructions.
中危 敏感访问

Accesses sensitive application config directory

Script reads from ~/.config/run402/ directory which is a sensitive application configuration path containing service credentials.

sql2.mjs:8
If this is a legitimate database client, clarify that it reads locally stored credentials for authenticated API access.
低危 凭证窃取

Reads service_key credential from local file

The script extracts service_key from projects.json and uses it as Bearer token for API authorization. While this may be legitimate, credential access is undeclared.

sql2.mjs:12
Document whether the script exfiltrates credentials or only uses them for legitimate API calls.

声明能力 vs 实际能力

文件系统 阻止
声明 NONE
推断 READ
sql2.mjs:10 reads readFileSync(join(CONFIG_DIR, "projects.json"))
网络访问 阻止
声明 NONE
推断 WRITE
sql2.mjs:14 performs fetch() POST to api.run402.com
命令执行 通过
声明 NONE
推断 NONE
No shell execution detected
环境变量 通过
声明 NONE
推断 NONE
No environment variable access detected
技能调用 通过
声明 NONE
推断 NONE
No cross-skill invocation detected
剪贴板 通过
声明 NONE
推断 NONE
No clipboard access detected
浏览器 通过
声明 NONE
推断 NONE
No browser access detected
数据库 阻止
声明 NONE
推断 READ
sql2.mjs:12 reads service_key from projects.json

可疑产物与外联

中危 外部 URL
https://api.run402.com/v1/projects

SKILL.md:13

中危 外部 URL
https://api.run402.com/admin/v1/projects/$PROJECT_ID/sql

SKILL.md:24

中危 外部 URL
https://api.run402.com/rest/v1/todos?done=eq.false

SKILL.md:33

中危 外部 URL
https://api.run402.com

sql2.mjs:5

依赖与供应链

没有结构化依赖告警。

文件构成

2 个文件 · 58 行
Markdown 1 个文件 · 43 行JavaScript 1 个文件 · 15 行
需关注文件 · 2
SKILL.md Markdown · 43 行
https://api.run402.com/v1/projects · https://api.run402.com/admin/v1/projects/$PROJECT_ID/sql · https://api.run402.com/rest/v1/todos?done=eq.false
sql2.mjs JavaScript · 15 行
Documentation mismatch - curl examples vs actual implementation · Accesses sensitive application config directory · Reads service_key credential from local file · https://api.run402.com

安全亮点

HTTP requests go to a legitimate domain (api.run402.com) not a suspicious IP
No base64 encoding or obfuscation detected
No reverse shell, C2, or data exfiltration patterns
No remote script execution (curl|bash, wget|sh)
No direct credential harvesting from environment variables
No access to ~/.ssh, ~/.aws, or system credential stores