安全决策报告

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 实现,不直接访问文件系统,减小了暴露面