sched discussion
Linux 6.12.96
LLM 分析
Linux 6.12.96 稳定版发布与 AF_ALG zero-copy 文档清理
系列概况
- 标题: Linux 6.12.96(发布通告) / Re: Linux 6.12.96(代表性 hunk)
- 作者: Greg Kroah-Hartman
- 版本: 6.12.96 stable release(linux-stable.git 的 linux-6.12.y 分支点发布)
- 规模: 一次大范围 stable 合并,diffstat 横跨数十子系统(arm64、loongarch、riscv、x86、block、crypto、driver core、bluetooth、cpufreq、acpi、binder、hw_random、clocksource、kvm、resctrl 等)
- 修改文件: diffstat 列出几十个路径,含 Documentation/crypto/userspace-if.rst 等
- 代码统计: 各文件级 +/- 行数(diffstat 在原邮件正文中被截断)
- Message-ID:
- 2026071859-factoid-neon-8f07@gregkh
- 2026071859-legged-scheme-bbb2@gregkh
- 完整性: 第一封只有 diffstat(被截断) + 简短通告;第二封给出 Documentation/crypto/userspace-if.rst 的完整 hunk
补丁目的
本 thread 不是 patch series,而是 stable 分支 6.12.96 的发布通告 + 代表性变更示例。
- 通告:要求所有运行 6.12.x 内核的用户升级到 6.12.96。
- 代表性变更:把 Documentation/crypto/userspace-if.rst 里描述 AF_ALG 零拷贝(vmsplice/splice)接口的整段示例和说明删除,只留一句"AF_ALG 曾支持 zero-copy,但因频繁成为漏洞来源已移除"。
旧流程的问题
stable 通告本身没有"旧/新流程"的设计对比。但代表性 hunk 透露出真实驱动:AF_ALG 的零拷贝路径历史上有过多个本地提权 / 信息泄露类 CVE,继续保留文档等于暗示"这还是一个可用接口",容易诱导用户空间依赖一个已经被维护者认为不安全的特性。
新流程
文档侧不再有 splice/vmsplice 零拷贝用法说明,仅保留:
AF_ALG used to have zero-copy support, but it was removed due to it being a
frequent source of vulnerabilities. For backwards compatibility the splice()
and sendfile() system
(即保留向后兼容系统调用名,但说明 zero-copy 路径已退役。)
Patch 概览
Documentation/crypto/userspace-if.rst:删除 33 行旧的 vmsplice/splice 示例,新增若干行历史说明(功能等价于"删文档 + 加警告")。
关键实现
代表性 hunk 来自 Documentation/crypto/userspace-if.rst:
@@ -328,33 +328,10 @@ CRYPTO_USER_API_RNG_CAVP option:
- int pipes[2];
- pipe(pipes);
- /* input data in iov */
- vmsplice(pipes[1], iov, iovlen, SPLICE_F_GIFT);
- /* opfd is the file descriptor returned from accept() system call */
- splice(pipes[0], NULL, opfd, NULL, ret, 0);
- read(opfd, out, outlen);
+AF_ALG used to have zero-copy support, but it was removed due to it being a
+frequent source of vulnerabilities. For backwards compatibility the splice()
+and sendfile() system
即:把"如何用 zero-copy 跑 AF_ALG"的完整 C 例子(基于 pipe + vmsplice(SPLICE_F_GIFT) + splice + read)整段移除,只留一段说明,提醒用户该路径已经被上游砍掉。
类比
可以把 6.12.96 stable 发布理解成"小区物业每月发的检修清单"——业主(用户)只需要关心两件事:这次修了什么,以及自己要不要去升级。
Greg 是物业:把整张清单(diffstat)贴在楼下公示栏,再把其中一项重点改造(AF_ALG zero-copy 文档撤下)单独再贴一张 A4。
AF_ALG zero-copy 文档删除就像小区里曾经开放过的一条抄近道——以前为了方便业主(用户空间性能)允许走,但这条路晚上老出事(CVE),物业就把它封了。封路时不会只把路牌拔掉,还要在公告栏写明"此门已封,禁止通行",以免新人再绕进来。
+-----------+ +---------------------+ +--------------------+
| 6.12.x | ==> | 6.12.96 stable | ==> | user-space crypto |
| (any) | upgrade| (linux-stable.git) | affects| callers |
+-----------+ +---------------------+ +--------------------+
\ |
\ | doc: AF_ALG zero-copy removed
v v
"must upgrade" "use the non-zero-copy path,
splice/sendfile kept for compat only"
Highlight:风险与注意点
- 这是 stable release 通告,不是 RFC、不是单点 bugfix patch series;本分析只基于代表性 hunk。
- AF_ALG zero-copy 历史是 CVE 重灾区(多次本地提权 / 信息泄露),保留任何 zero-copy 用法都需重新评估。
- diffstat 被原文截断,单独看这两封邮件无法判断每个子系统的具体修复范围;建议直接
git log v6.12.95..v6.12.96完整核对。 - 用户必须升级到 6.12.96;6.12.x 之前所有更早 stable 同理应升级。
- 文档删除 ≠ 接口彻底下线,仍需确认上游是否还兼容保留
splice()/sendfile()的非 zero-copy 形态。
版本变化
无版本演进:这是 6.12.y 分支的单一 release point,不存在 vN → vN+1 的多次迭代。
一句话总结
Greg KH 发布 6.12.96 stable 通告,并在代表性 hunk 中把 AF_ALG zero-copy 的文档与示例代码全部撤下,只保留一句"已因漏洞频繁被移除"的说明。