有张中间证书私钥是数字 4
https://emudhra.we-have-a-problem.com/ 是一份说明 eMudhra 中间 CA 证书私钥问题的页面,页首日期是 2026 年 10 月 20 日。作者 noop_noob 2026 年 10 月 21 日把它发到 r/rust,采集时 645 分、109 条评论。
页面写,8 张 eMudhra 中间 CA 证书的私钥已经泄露。这些证书链到 Mozilla、Microsoft、Apple 和 Chrome 根程序信任的根,也进入许多下游信任库。报告人 Wayne 在 2026 年 10 月 17 日用每张中间证书的私钥对消息 “We have a problem here - Wayne” 做了签名,并报告给各根程序团队。Mozilla Bug 2083449 写,Mozilla 于 2026 年 10 月 17 日 20:06 UTC 收到这份报告,报告同时通知了 eMudhra 以及 Apple、Microsoft 根程序,并附有 8 张证书的密钥控制证明。
页面写,这些中间证书的私钥生成方式有误,任何人都可以从证书里还原。证书创建于 2025 年 4 月。页面写,那段时间这些中间证书没有证书透明度日志记录,因此 Firefox、Chrome、Edge、Safari 这类强制执行 CT 的客户端当时无法被这种密钥用来攻击。页面同时写,不少浏览器以外的客户端不强制 CT,目前不知道攻击者是否已经用这个缺陷打过这些客户端。
Ars Technica 写,这些私钥的熵只有 3 到 8 位,列出的私钥整数是 4、56、66、115、155、156、230、237。文章写,正常的 NIST P-384 椭圆曲线私钥大约有 384 位熵。Go 加密维护者 Filippo Valsorda 对 Ars 说,这次清理会是一项大规模工作,比 Heartbleed 更大,长尾包括物联网设备、Docker 容器、遗忘的 Linux 机器,以及自带根证书副本的命令行工具。
页面写,Firefox 和 Chrome 从 2026 年 10 月 17 日起屏蔽这些证书,Apple 设备从 10 月 19 日起,Microsoft 平台从 10 月 20 日起。CA 也已经吊销这些中间证书。页面写,许多不读取吊销信息的客户端需要软件更新。
Rust 侧的修复版本写在同一页面和 RustSec 上。RUSTSEC-2026-0382 的包是 rustls-webpki,别名 CVE-2026-111943。公告写,受影响版本在信任锚允许时,可能接受包含这些已不受信任 emSign 中间公钥的证书路径;0.103.16 和 0.104.0-alpha.8 会拒绝这些公钥。页面列出的 webpki-roots / webpki-root-certs 修复版本是 1.0.10。rustup 1.29.2 只更新 rustls-webpki 和 webpki-root-certs,用来处理同一问题。已安装 rustup 时,可以执行 rustup self update;普通的 rustup update 结束时也会自动更新 rustup。r/rust 帖子写,reqwest 依赖这些 crate。同一事件的 rustup 发布帖不再单列。
评论里 AliceCode(431 分)问,他们把整个密钥做成数字 4 了吗。作者 noop_noob(145 分)回复,不知道还能说什么。
原文链接:https://emudhra.we-have-a-problem.com/
Linux 7.4 将合入约 1.7 万行 Rust
Phoronix 2026 年 10 月 20 日的这篇报道写的是准备进入 Linux 7.4 的 Rust 内核代码拉取请求。作者 Fcking_Chuck 2026 年 10 月 21 日把它发到 r/rust,采集时 324 分、31 条评论。
报道写,Miguel Ojeda 发出了这次拉取请求。增量大约 1.7 万行,主要因为 vendored 的 Zerocopy 一次跳了 8 个版本,同时更新了内核里的其他 Rust crate。Zerocopy 提供 trait 和宏,用来在原始字节序列和结构化类型之间做安全转换。报道还写,这次启用不稳定特性 proc_macro_span,用来改善所有过程宏的诊断。内核 Rust crate 新增 mem 和 ratelimit 模块。pin-init 增加元组结构体支持,并允许安全创建自引用,诊断也有改进。拉取请求在 https://lore.kernel.org/lkml/20261018163459.80579-1-ojeda@kernel.org/ 。报道写,子系统自己的拉取请求里还会有更多 Rust 代码,包括 NVIDIA Nova 驱动改进和其他 Rust DRM 基础设施。
评论里 moltonel(69 分)写,从 v7.3 起目前看起来新增约 2.9 万行,合计约 22 万行,大约占内核代码的 0.5%。其中约 8.1 万行来自 vendored crate,包括 syn、zerocopy、proc-macro2。从 v6.2 起,平均每个版本增长约 17%。同帖里有人问 vendored crate 是什么。bleachisback(15 分)回复,这是把第三方依赖的源码放进自己的项目,不通过 Cargo.toml 正常依赖。
原文链接:https://www.phoronix.com/news/Linux-7.4-Rust
Google 公开内部 Rust 风格指南
https://google.github.io/styleguide/rustguide.html 是 Google 内部使用 Rust 的风格指南。作者 Western-Obligation47 2026 年 10 月 21 日把讨论转到 r/rust,采集时 16 分、6 条评论。原帖在 r/learnrust,页面显示 44 分、20 条评论。
指南写,这里的 style 同时包括格式、API 设计和实现设计。文中列出的使用场景有 google3、Android、ChromeOS、Fuchsia 和 Chrome。适用范围一节写,Android、Chromium 和其他代码库参与了咨询,并打算开始采用;各代码库可以自己规定执行松紧。目标一节写,Large-Scale Changes 在 Google 很常见,风格一致是为了让这类跨代码库修改更容易做。
几条和常见开源仓库不同的规则:
rust_library的源文件放在同一个目录。指南写,不要用子目录组织同一个 crate 的文件。如果需要子目录,通常说明这个 crate 已经太大,应该拆开。用 Cargo 构建的//third_party代码除外,仍按常规 Cargo 目录。- 不要使用 glob import。例外包括 inline module 的
use super::*、主要处理某个 enum 时在函数体里写use enum::*、非叶子模块的pub use submodule::*,以及为合并 C++ namespace 而做的 glob import。 - 避免
Rc和Arc。指南写,Rust 通常可以不用共享所有权智能指针表示对象图;从其他语言过来的工程师容易过早使用它们。 - Chromium 里不要使用
async/.await。Chromium 里也不要通过 Rust 标准库新建线程,优先使用 sequence。 - 库代码的 API 设计规则是强制的。应用代码里,这些规则是强建议,写法偏向简单直接,少做广泛复用。
- 不要仅仅为了组织代码而定义 trait。
- 指南写,要完全避免 panic,即使不变量被破坏也用
Result报告。例外是面向开发者的二进制可以把非致命错误做成 panic,测试可以用 panic 做断言。 - 如果类型系统表达不了不变量、必须 panic,用
expect写明原因。指南不使用unwrap。 - 不要调用
panic::catch_unwind。
原文链接:https://google.github.io/styleguide/rustguide.html
Tyr 在 Linux 7.3 启动 Mali 固件
Tyr 是 Arm Mali-G610 的 Linux 内核 GPU 驱动,用 Rust 移植已有的 C 驱动 Panthor,对用户空间保持透明。这颗 GPU 使用 Valhall v10,通过 Command Stream Frontend 和内核驱动通信。Collabora 的 Deb Brouwer 2026 年 10 月 21 日发文介绍上游进展。作者 mfilion 同日把它发到 r/rust,采集时 55 分、1 条评论。mfilion 写自己在 Collabora,Tyr 在那里开发。
文章写,Tyr 的初始 stub 在 2025 年 11 月合入 Linux v6.18,当时可以探测、绑定、上电、查询硬件信息并关机。v7.3 合入的提交让 Tyr 可以启动 GPU 的 MCU,从而和 GPU 通信。为此需要虚拟地址空间、映射方法,以及可靠配置 GPU 的 MMU。Tyr 依赖三组 Rust 抽象:DRM GEM 共享内存 helper、页表管理、GPUVM。
MCU 固件是二进制镜像,来自 Linux firmware 仓库或发行版包。Rust 已有 Linux firmware request API 的抽象,把固件载入系统内存这一步比较直接。GPU 还要求固件放在 DRM 的 GEM 缓冲区里。基础 GEM 抽象由 Asahi Lina 编写,不含后备内存的实现在 2025 年 7 月合入 Linux v6.16。Lyude Paul 和 Danilo Krummrich 在 2026 年 6 月把共享内存 helper 合入 Linux v7.1。页表抽象最初由 Asahi Lina 编写,Alice Ryhl 做了大幅重写,2026 年 4 月合入 Linux v7.0。
文章写,上游 Tyr 目前大约 3700 行,其中 6 行使用 unsafe,3 行和页表抽象有关。页表抽象的 map_pages() 是 unsafe,文档里的 Safety 要求写明调用方必须满足的条件。文章写,即使固件布局简单且固定,Tyr 仍使用完整的 GPUVM,用来维持这些不变量。文章写,这些不变量不能只靠假设。
原文链接:https://www.collabora.com/news-and-blog/blog/2026/10/21/upstreaming-tyr-rust-drm-and-the-linux-kernel/
From Rust中文社区 Mike
社区学习交流平台订阅:
评论区
写评论还没有评论