# PR #21772 完整报告

- 仓库：`sgl-project/sglang`
- 标题：Add Trivy vulnerability scanning to nightly dev Docker builds
- 合并时间：2026-04-01 07:09
- 原文链接：http://prhub.com.cn/sgl-project/sglang/pull/21772

---

# 执行摘要
此 PR 引入了一个独立的 GitHub Actions 工作流，用于自动化扫描 nightly dev Docker 镜像中的安全漏洞，旨在提前发现并修复高危问题，增强项目安全态势，无需修改现有发布流程。

# 功能与动机
为了在开发阶段及早捕获 Docker 镜像中的漏洞，防止其进入生产环境。PR body 中提到“catch CVEs early before they reach release images”，通过每日扫描 dev 和 dev-cu13 镜像，仅关注有修复方案的 CRITICAL/HIGH 级别漏洞，以提升安全性并减少潜在风险。

# 实现拆解
主要实现集中在新增文件 `.github/workflows/trivy-scan-dev.yml`，关键组件如下：
- **触发条件**：使用 `schedule` 每日定时运行（06:00 UTC），并支持 `workflow_dispatch` 手动触发，允许输入自定义镜像标签。
- **扫描作业**：定义 `scan` 作业，使用 `aquasecurity/trivy-action@v0.35.0` 扫描指定镜像，设置 `scanners: 'vuln'` 以避免大型文件导致的超时，`severity: 'CRITICAL,HIGH'` 和 `ignore-unfixed: true` 聚焦关键漏洞。
- **结果处理**：分两步输出——上传 SARIF 结果到 GitHub Security 标签，并在日志中生成表格格式；添加扫描摘要到 GitHub Step Summary，显示镜像名称和发现数量。
- **优化措施**：使用自托管运行器 `x64-docker-build-node` 解决磁盘空间不足问题，并通过动态矩阵表达式防止 shell 注入风险。

# 评论区精华
无 review 评论，但提交历史显示工作流经过多次优化，例如：
- 修复 shell 注入风险，避免输入标签被误用。
- 调整运行器以解决扫描大型 CUDA 镜像时的磁盘空间问题。
- 修正 action 版本标签确保兼容性。
这些迭代表明在实现过程中注重安全性和稳定性。

# 风险与影响
**风险**：
- 依赖第三方 trivy-action，可能因版本更新引入兼容性问题。
- 自托管运行器需维护充足磁盘空间，否则扫描可能失败。
- 仅扫描 dev 镜像，发布镜像未覆盖，存在安全盲点。
- 手动触发时输入验证有限，可能扫描错误镜像。

**影响**：
- 对团队：自动化扫描提高漏洞发现效率，减少人工干预，但增加 CI/CD 管理复杂度。
- 对系统：额外工作流运行可能增加资源消耗，但通过定时任务控制频率。
- 对用户：间接受益于更安全的最终产品，无直接界面变化。

# 关联脉络
同仓库近期历史 PR 中无直接相关的安全扫描变更，此 PR 是首次引入 Trivy 漏洞扫描功能，可能为后续扩展安全集成（如扫描发布镜像）奠定基础。近期 PR 多关注 bugfix、性能优化和测试改进，例如 PR 21753 修复 CI 测试检测，但未涉及安全扫描领域。