安全决策报告

vigilath-geo

Vigilath GEO 技能本体代码无恶意行为,但安装方式存在供应链风险:curl|bash 管道执行远程脚本,且运行时从外部域名下载额外技能文件,域名被入侵时可直接向宿主注入任意 SKILL.md。

安装决策优先 来源: ClawHub 扫描时间: 18 天前
文件 5
IOC 8
越权项 0
发现 3
最直接的威胁证据
01
用户执行 curl|bash 安装命令 初始入口 · SKILL.md
02
install.sh 从 vigilath.cn 下载并执行安装逻辑 权限提升 · install.sh
03
install.sh 循环从远程获取其他技能 SKILL.md 权限提升 · install.sh

为什么得出这个结论

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

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

阻止
隐藏执行与外联

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

阻止
攻击链与高危发现

报告包含 4 步攻击链,另有 2 项高危或严重发现。

通过
依赖与供应链卫生

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

攻击链

01
用户执行 curl|bash 安装命令

初始入口 · SKILL.md:5

02
install.sh 从 vigilath.cn 下载并执行安装逻辑

权限提升 · install.sh:5

03
install.sh 循环从远程获取其他技能 SKILL.md

权限提升 · install.sh:120

04
攻击场景:vigilath.cn 被入侵后,攻击者可替换 install.sh 或注入恶意 SKILL.md 到宿主

最终危害 · install.sh:5

风险分是怎么被拉高的

curl|bash 管道执行远程脚本 +15

install.sh:5,19 — 经典危险模式,域名被入侵时安装过程可被完全劫持

运行时远程下载额外技能 +15

install.sh:120-127 — 循环从 vigilath.cn 下载其他 SKILL.md,不自包含

安装脚本写入配置文件 +10

install.sh:168-173 — 写入 ~/.vigilath/config,带 token 持久化

网络访问能力已声明 +-5

geo_client.py 需调用外部 API,属于正常业务需要

最关键的证据

高危 供应链

curl|bash 管道安装存在域名劫持风险

SKILL.md 和 install.sh 首行都展示了 `curl -fsSL https://vigilath.cn/skill/install.sh | bash` 命令。这是已知的危险模式:当 vigilath.cn 域名被入侵或 DNS 被劫持时,安装过程可被完全替换,攻击者可向宿主注入任意 SKILL.md 和代码。

install.sh:5
改用本地安装方式:先下载 install.sh 审查代码,再用 bash local_install.sh 执行。或直接复制本地 SKILL.md 和 scripts/ 而非从远程拉取。
高危 供应链

运行时从外部域名下载额外技能文件

install.sh 的 fetch() 函数在安装时会从 vigilath.cn 动态下载其他技能(site-audit, seo-audit 等)的 SKILL.md 文件。安装过程不自包含,依赖外部域名持续可用且未被篡改。

install.sh:120
要求所有技能文件本地化,或在安装时通过 --local 参数跳过远程下载。
中危 持久化

安装脚本写入配置文件到用户目录

install.sh 将 API token 和 base URL 写入 ~/.vigilath/config(权限 600)。这是凭证持久化行为,虽有合理解释(授权需要),但扩大了凭证的暴露面。

install.sh:168
优先使用环境变量而非文件存储凭证。如需文件,确保目录本身也有适当权限限制。

声明能力 vs 实际能力

网络访问 通过
声明 READ
推断 READ
geo_client.py:91-98 所有 API 调用均有正当业务用途
文件系统 通过
声明 WRITE
推断 WRITE
install.sh:168-173, geo_client.py:62-67 写配置有合理用途
环境变量 通过
声明 READ
推断 READ
geo_client.py:44-45 仅读取 VIGILATH_* 相关变量

可疑产物与外联

严重 危险命令
curl -fsSL https://vigilath.cn/skill/install.sh | bash

install.sh:5

严重 危险命令
curl | bash

install.sh:19

中危 外部 URL
https://vigilath.cn/api/agent/v1

README.md:178

中危 外部 URL
https://vigilath.cn/skill/install.sh

install.sh:5

中危 外部 URL
https://vigilath.cn

install.sh:13

中危 外部 URL
https://vigilath.cn/skill

install.sh:26

中危 外部 URL
https://clawhub.ai/user/dz1995

skill-card.md:9

中危 外部 URL
https://clawhub.ai/dz1995/skills/vigilath-geo

skill-card.md:39

依赖与供应链

包名版本来源漏洞备注
无第三方依赖 N/A pip geo_client.py 使用纯标准库,无供应链漏洞传递风险

文件构成

5 个文件 · 1182 行
Markdown 3 个文件 · 516 行Python 1 个文件 · 457 行Shell 1 个文件 · 209 行
需关注文件 · 3
README.md Markdown · 228 行
https://vigilath.cn/api/agent/v1
install.sh Shell · 209 行
curl|bash 管道安装存在域名劫持风险 · 运行时从外部域名下载额外技能文件 · 安装脚本写入配置文件到用户目录 · curl -fsSL https://vigilath.cn/skill/install.sh | bash · curl | bash · https://vigilath.cn/skill/install.sh · https://vigilath.cn · https://vigilath.cn/skill
skill-card.md Markdown · 60 行
https://clawhub.ai/user/dz1995 · https://clawhub.ai/dz1995/skills/vigilath-geo
其他文件 · geo_client.py · SKILL.md

安全亮点

geo_client.py 纯标准库零第三方依赖,无已知漏洞传递
所有代码可读、无混淆、无 Base64/eval 隐藏逻辑
凭证处理规范:token 不硬编码、不打印、chmod 600 保护
功能与文档高度一致,无阴影功能
check/mention/industry 等核心功能为免登录设计,不强制收集凭证
设备码授权流程合理(token 不过剪贴板/历史)
GitHub 仓库开源可审计(https://github.com/dz1995/GEO-skills)