Skip to content

fix(deny): 升级 rustls 修复 RUSTSEC-2026-0285,并加 dev 的 advisory 漂移定时检查 - #36

Open
dynamder wants to merge 4 commits into
mainfrom
fix/deny-gate-unblock
Open

dynamder wants to merge 4 commits into
mainfrom
fix/deny-gate-unblock

Conversation

@dynamder

@dynamder dynamder commented Sep 21, 2026 •

Copy link
Copy Markdown
Owner

变更描述

cargo-deny 的 advisory 门禁在无人改代码的情况下变红了:RustSec 于 2026-09-14 发布
RUSTSEC-2026-0285(rustls < 0.23.45),
而锁文件里是 rustls 0.23.40。cargo-deny 每次运行都会重新拉 advisory DB,于是基于 main 的
所有 PR 一起红——包括 #27~#30 这批根本不碰 Cargo.lock 的 actions bump,也包括本 PR 之前
main 上的 push CI(run 35439175140,2026-09-19T11:05:58Z)。所以这不是任何一个 PR 的问题。

四笔提交:

  1. fix(deps):cargo update -p rustls --precise 0.23.45,连带 rustls-webpki 0.103.13→0.103.15、
    aws-lc-rs 1.17.0→1.18.1、aws-lc-sys 0.41.0→0.45.0(0.23.45 依赖下限的要求)。锁文件共 4 个包、9 增 8 删。
  2. chore(deny):移除已失效的 RUSTSEC-2026-0098/0099/0104。它们针对 rustls-webpki 0.101,
    而该版本早已不在依赖图里,现在只会报 warning[advisory-not-detected];同时把"出现该警告就删条目"
    写成维护规则,并修掉 unmaintained 注释里已经过时的 crate 名单。
  3. ci(deny):新增 Deny drift workflow,每周(+ 手动)在 dev 上单独跑一次同一份 cargo-deny,
    漂移时开 issue 并让 run 变红。目标是让这类上游漂移先在 dev 自己的定时任务上暴露,
    而不是在几十个无关 PR 上重复红。(GitHub 的 schedule 只在默认分支生效,所以它要进 main 才会自动跑。)
  4. ci(deps):.github/dependabot.yml 两个 ecosystem 显式加 target-branch: dev。不写时 dependabot
    打默认分支,bump 直接落在 main 上——这正是上面那批 PR 与 main 门禁错位的原因。dependabot 只读
    默认分支上的这份配置,所以它必须随本 PR 进 main 才会生效。

为什么 base 选 main 而不是 dev

9 个 dependabot PR 的 base 都是 main(dependabot 默认目标=仓库默认分支),必需检查跑在
main + PR 的 merge commit 上,因此只有 main 变绿才能解锁它们。本 PR 合并后请按
CONTRIBUTING.md 的发布流程把 main 合回 dev,dev 也就同步拿到了这四笔改动。

测试

  • 本机 cargo deny check(cargo-deny 0.20.2,与 CI action 同版本 + 最新 advisory DB):
    advisories ok, bans ok, licenses ok, sources ok,且不再有 advisory-not-detected 警告
  • 本机 python3 scripts/check_encoding.py:PASS (260 files)
  • CI 已验证:Security (cargo-deny) pass、Mutants (PR diff) pass(第 4 笔提交前的 head);三平台 Test 由 CI 执行
  • 本 PR 没有 Rust 源码改动(只动 Cargo.lock 的 4 个补丁级升级、deny.toml、一个 workflow、dependabot 配置与文档),
    唯一需要真编译验证的是 aws-lc-sys 0.45.0 的 C/asm 构建

关联 Issue

无。本 PR 解开的是 dependabot PR #27~#35 的共同红灯(它们各自都没问题,合并后需要
@dependabot rebase 或重跑检查,因为 dev/main 前进不会自动重跑它们的必需检查)。

@dynamder
dynamder requested review from seeelee and sun-xx September 21, 2026 15:18

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant