# PR #21905 完整报告

- 仓库：`sgl-project/sglang`
- 标题：Skip Go stdlib and NVIDIA tool CVEs in Trivy scan
- 合并时间：2026-04-02 12:41
- 原文链接：http://prhub.com.cn/sgl-project/sglang/pull/21905

---

# 执行摘要

本 PR 在 Trivy 安全扫描配置中添加 `skip-dirs` 参数，排除 `/usr/local/go` 和 `/opt/nvidia` 目录，以消除约 500 个由 NVIDIA 基础镜像中 Go 工具链产生的不可修复 CVE 误报。这是针对 CI/CD 流水线的低风险配置优化，旨在提高安全警报的信号质量，对系统运行时和用户无直接影响。

# 功能与动机

**问题背景**：NVIDIA CUDA 开发基础镜像 (`nvidia/cuda:12.9.1-cudnn-devel-ubuntu24.04`) 自带了完整的 Go 1.23.8 工具链 (`/usr/local/go`) 和 Nsight 性能分析工具中的 Go 二进制文件 (`/opt/nvidia`)。Trivy 扫描器的 gobinary 检测器会针对这些二进制文件报告每个 Go 标准库 CVE，产生数百个警报。

**核心动机**：如 PR body 所述，" 这些警报无法修复，除非更换基础镜像 "。这些误报干扰了安全扫描结果的有效性，使工程师难以识别真正需要关注的可操作安全问题。

# 实现拆解

仅修改一个文件，在两个 Trivy 扫描步骤中添加相同的配置参数：

| 文件路径 | 变更内容 | 作用 |
|---------|---------|------|
| `.github/workflows/trivy-scan-dev.yml` | 在第 36 行和第 54 行的 Trivy 配置中添加 `skip-dirs: 'usr/local/go,opt/nvidia'` | 使扫描器跳过指定目录，不检查其中的文件漏洞 |

关键代码片段：
```yaml
- name: Trivy vulnerability scanner
  uses: aquasecurity/trivy-action@master
  with:
    scan-type: 'fs'
    scan-ref: '.'
    format: 'sarif'
    output: 'trivy-results-${{ matrix.tag }}.sarif'
    severity: 'CRITICAL,HIGH'
    ignore-unfixed: true
    skip-dirs: 'usr/local/go,opt/nvidia'  # 新增配置
```

# 评论区精华

无 review 讨论，PR 由作者直接合并。从 PR body 可提取以下关键信息：

> "Trivy 的 gobinary 扫描器标志这些二进制文件的每个 Go 标准库 CVE，产生数百个无法修复的警报 "

> " 测试计划：手动触发工作流验证警报数量显著下降；验证可操作的 CVE（Python 包、Rust 依赖、系统包）仍被报告 "

# 风险与影响

**技术风险**：
1. **配置正确性风险**：`skip-dirs` 参数路径是否正确匹配目标目录，需验证扫描结果确认排除效果
2. **过度排除风险**：如果未来在这些目录中添加了 SGLang 实际使用的组件，可能漏报真实漏洞
3. **依赖耦合风险**：解决方案依赖于特定 NVIDIA 镜像结构，若更换基础镜像需重新评估配置

**影响分析**：
- **对用户**：无直接影响，不改变产品功能或性能
- **对系统**：无运行时影响，仅改变 CI 扫描行为
- **对团队**：显著减少安全扫描噪音（约 500 个误报），提高工程师处理安全警报的效率
- **影响程度**：低，属于 CI/CD 流程优化

# 关联脉络

从近期历史 PR 看，本 PR 属于一系列 CI/CD 优化工作的一部分：

1. **同类 CI 配置优化**：
 - PR#21896：基于运行时数据更新测试预估时间，优化测试分区
 - PR#21882：添加 CI 维护模式合并禁令政策，规范团队流程
 - PR#21890：为 fork PR 的 /rerun-test 命令添加权限检查

2. **安全相关改进**：
 - PR#21890 同样涉及安全考虑（权限控制）
 - 本 PR 专注于安全扫描工具本身的配置优化

3. **演进趋势**：
 - 团队持续投入 CI/CD 基础设施的精细化管理
 - 从单纯添加测试覆盖转向优化测试效率和质量信号
 - 关注开发者体验，减少不必要的干扰和噪音

本 PR 揭示了在复杂依赖链（特别是 NVIDIA CUDA 镜像）环境下，安全扫描工具需要针对性配置以避免误报，这是现代 AI/ML 基础设施中常见的技术债务管理实践。