vigilath-geo
Vigilath GEO 技能本体代码无恶意行为,但安装方式存在供应链风险:curl|bash 管道执行远程脚本,且运行时从外部域名下载额外技能文件,域名被入侵时可直接向宿主注入任意 SKILL.md。
为什么得出这个结论
2/4 个维度触发声明资源与推断能力基本一致。
提取到 2 个高危 IOC 或外联信号。
报告包含 4 步攻击链,另有 2 项高危或严重发现。
依赖结构存在,但暂未看到明显高危告警。
攻击链
初始入口 · SKILL.md:5
权限提升 · install.sh:5
权限提升 · install.sh:120
最终危害 · install.sh:5
风险分是怎么被拉高的
install.sh:5,19 — 经典危险模式,域名被入侵时安装过程可被完全劫持
install.sh:120-127 — 循环从 vigilath.cn 下载其他 SKILL.md,不自包含
install.sh:168-173 — 写入 ~/.vigilath/config,带 token 持久化
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 的 fetch() 函数在安装时会从 vigilath.cn 动态下载其他技能(site-audit, seo-audit 等)的 SKILL.md 文件。安装过程不自包含,依赖外部域名持续可用且未被篡改。
install.sh:120 安装脚本写入配置文件到用户目录
install.sh 将 API token 和 base URL 写入 ~/.vigilath/config(权限 600)。这是凭证持久化行为,虽有合理解释(授权需要),但扩大了凭证的暴露面。
install.sh:168 声明能力 vs 实际能力
geo_client.py:91-98 所有 API 调用均有正当业务用途 install.sh:168-173, geo_client.py:62-67 写配置有合理用途 geo_client.py:44-45 仅读取 VIGILATH_* 相关变量 可疑产物与外联
curl -fsSL https://vigilath.cn/skill/install.sh | bash install.sh:5
curl | bash install.sh:19
https://vigilath.cn/api/agent/v1 README.md:178
https://vigilath.cn/skill/install.sh install.sh:5
https://vigilath.cn install.sh:13
https://vigilath.cn/skill install.sh:26
https://clawhub.ai/user/dz1995 skill-card.md:9
https://clawhub.ai/dz1995/skills/vigilath-geo skill-card.md:39
依赖与供应链
| 包名 | 版本 | 来源 | 漏洞 | 备注 |
|---|---|---|---|---|
| 无第三方依赖 | N/A | pip | 否 | geo_client.py 使用纯标准库,无供应链漏洞传递风险 |
文件构成
README.md install.sh skill-card.md