安全决策报告

semanticfs

该技能为语义搜索工具,但其安装过程使用了高危的 curl|bash 远程脚本执行模式,且未声明 shell 和 network:WRITE 权限,存在明显的供应链风险和权限越权。

安装决策优先 来源: 手动上传 扫描时间: 2026/4/5
文件 1
IOC 1
越权项 2
发现 4
最直接的威胁证据
严重 供应链
curl|bash 远程脚本执行(最高危模式)

SKILL.md 第 40 行引导用户执行 curl -sSfL https://raw.githubusercontent.com/Navneeth08k/semanticFS/main/scripts/install.sh | bash。该模式直接从互联网下载脚本并通过 bash 执行,是经典的供应链攻击向量。若 GitHub 仓库被入侵、域名劫持或 CDN 被污染,AI Agent 将无差别执行恶意代码。无 hash 校验、无版本锁定、无签名验证。

SKILL.md:40

为什么得出这个结论

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

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

阻止
隐藏执行与外联

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

阻止
攻击链与高危发现

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

复核
依赖与供应链卫生

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

攻击链

01
AI Agent 读取 SKILL.md,识别为语义搜索工具(read-only)

初始入口 · SKILL.md:1

02
根据文档执行 curl|bash 安装命令,从 GitHub 下载并执行 install.sh

权限提升 · SKILL.md:40

03
install.sh 被篡改或仓库被入侵,植入恶意 payload(如持久化后门、SSH 密钥收割)

最终危害 · SKILL.md:40

风险分是怎么被拉高的

curl|bash 远程脚本执行(Supply Chain Attack 向量) +30

SKILL.md:40 指导用户执行 curl -sSfL https://raw.githubusercontent.com/Navneeth08k/semanticFS/main/scripts/install.sh | bash,无 hash 校验,无版本锁定,完全依赖 GitHub 仓库完整性

未声明 shell:WRITE 权限 +10

文档未声明需要 shell 执行能力,但安装命令通过 bash 管道执行任意远程脚本

未声明 network:WRITE 权限 +10

文档未声明网络访问,但实际从外部 URL 下载并执行代码

无二进制来源校验 +5

install.sh 可能下载预编译二进制,无法验证其完整性和来源(可信度未知)

最关键的证据

严重 供应链

curl|bash 远程脚本执行(最高危模式)

SKILL.md 第 40 行引导用户执行 curl -sSfL https://raw.githubusercontent.com/Navneeth08k/semanticFS/main/scripts/install.sh | bash。该模式直接从互联网下载脚本并通过 bash 执行,是经典的供应链攻击向量。若 GitHub 仓库被入侵、域名劫持或 CDN 被污染,AI Agent 将无差别执行恶意代码。无 hash 校验、无版本锁定、无签名验证。

SKILL.md:40
替换为包管理器安装(pip install semanticfs==x.x.x)或预编译二进制校验下载(如 sha256sum + GPG 签名),并在 SKILL.md 中声明 network:WRITE 和 shell:WRITE 权限。
高危 权限提升

未声明 shell:WRITE 权限越权

该技能文档声明为 read-only(文件系统),但安装过程需要通过 bash 管道执行远程脚本。shell:WRITE 权限完全未在 metadata.requires 中声明,违反了最小权限原则。

SKILL.md:40
在 metadata.requires.bins 中补充声明所需工具和权限,或将安装步骤从 AI Agent 执行流程中移除,改为预安装前提条件。
高危 权限提升

未声明 network:WRITE 权限越权

该技能文档未声明任何网络写入(发送)能力,但实际从外部 GitHub URL 下载并执行代码,属于 network:WRITE 操作。

SKILL.md:40
在文档中明确声明需要 network:WRITE 权限(从外部 URL 下载内容),并说明下载内容的来源和用途。
中危 供应链

install.sh 脚本内容不可审计

install.sh 存放在第三方 GitHub 仓库中,AI Agent 在执行前无法审查其内容。该脚本可能执行以下危险操作:写入计划任务(持久化)、修改 ~/.bashrc、安装后门二进制、收集系统信息等。

SKILL.md:40
要求 install.sh 内容可被 AI Agent 读取审查,或使用 pip/npm 等有审计机制的包管理器分发。

声明能力 vs 实际能力

文件系统 通过
声明 READ
→
推断 READ
SKILL.md:17-18 明确说明 SemanticFS 是 read-only,永不修改文件
网络访问 阻止
声明 READ
→
推断 WRITE
SKILL.md:40 curl -sSfL https://... | bash — 从外部 URL 下载并执行代码,属于 network:WRITE
命令执行 阻止
声明 NONE
→
推断 WRITE
SKILL.md:40 使用 | bash 管道执行远程脚本,属于 shell:WRITE,且 SKILL.md 未声明
环境变量 通过
声明 NONE
→
推断 NONE
无相关代码
技能调用 通过
声明 NONE
→
推断 NONE
无相关代码
剪贴板 通过
声明 NONE
→
推断 NONE
无相关代码
浏览器 通过
声明 NONE
→
推断 NONE
无相关代码
数据库 通过
声明 NONE
→
推断 NONE
无相关代码

可疑产物与外联

严重 危险命令
curl -sSfL https://raw.githubusercontent.com/Navneeth08k/semanticFS/main/scripts/install.sh | bash

SKILL.md:40

依赖与供应链

没有结构化依赖告警。

文件构成

1 个文件 · 131 行
Markdown 1 个文件 · 131 行
需关注文件 · 1
SKILL.md Markdown · 131 行
curl|bash 远程脚本执行(最高危模式) · 未声明 shell:WRITE 权限越权 · 未声明 network:WRITE 权限越权 · install.sh 脚本内容不可审计 · curl -sSfL https://raw.githubusercontent.com/Navneeth08k/semanticFS/main/scripts/install.sh | bash

安全亮点

声明了 read-only 性质,不修改本地文件(文件系统部分合规)
文档结构清晰,功能边界描述准确(除安装部分外)
guardrails 明确标注只搜索已索引目录,降低误操作风险
无本地脚本文件,避免了阴影功能风险
本地搜索通过 localhost API 实现,不直接访问文件系统,减小了暴露面