FreeBSD 12.4-RELEASE 发行说明(2022 年 12 月 5 日)

摘要

FreeBSD 12.4-RELEASE 的发行说明总结了在 12-STABLE 开发分支中对 FreeBSD 基本系统所做的变更。本文件列出了自上次发布以来发布的适用安全公告,以及对 FreeBSD 内核和用户空间的重大变更。同时还提供了一些关于升级的简要说明。

简介

本文件包含 FreeBSD 12.4-RELEASE 的发行说明,介绍了 FreeBSD 最近新增、修改或删除的功能,并提供了从早期版本的 FreeBSD 升级的相关说明。

这些发行说明适用于 12-STABLE 开发分支中最新的版本点,自 12-STABLE 创建以来的所有改动均包含在内。关于此分支的预构建二进制发行版本的更多信息,请访问 https://www.FreeBSD.org/releases/arrow-up-right

这些发行说明适用于 12-STABLE 开发分支中,自 12.3-RELEASE 以来的某个开发节点。12.4-RELEASE 预计将成为 12-STABLE 分支的最终发行版本。有关该分支预构建二进制发行版本的更多信息,请访问 https://www.FreeBSD.org/releases/arrow-up-right

FreeBSD 12.4-RELEASE 的发行版本是一个正式发布版本,可通过 https://www.FreeBSD.org/releases/arrow-up-right 或其镜像站点获取。关于获取此版本(或其他版本)更多信息,请参考 FreeBSD Handbookarrow-up-right 中的 Obtaining FreeBSD 附录arrow-up-right

所有用户在安装 FreeBSD 之前都应查看发行勘误文件。勘误文件会包含在发行周期后期或发布后发现的“最新信息”,通常包括已知问题、安全公告和文档更正。FreeBSD 12.4-RELEASE 的最新勘误文档可以在 FreeBSD 官网找到。

本文档介绍了自 12.3-RELEASE 以来 FreeBSD 中最显著的新功能或变更。一般来说,这些变更是 12-STABLE 分支独有的,除非明确标注为合并(MERGED)特性。

发行说明通常涉及 12.3-RELEASE 之后发布的安全公告、新的驱动或硬件支持、新命令或选项、主要的错误修复或第三方软件升级。文档可能还会列出主要的 Port/软件包变更或发布工程实践改进。显然,发行说明无法列出每一个变更;本文档主要关注安全公告、用户可见的变更和主要的架构改进。

从 FreeBSD 早期版本升级

可以使用 freebsd-update(8)arrow-up-right 工具支持 RELEASE 版本之间的二进制升级(以及各安全分支的快照)。二进制升级过程会更新未修改的用户空间工具和作为 FreeBSD 官方发行版一部分的未修改 GENERIC 内核。使用 freebsd-update(8)arrow-up-right 工具要求升级的主机具备互联网连接。

基于源码的升级(即通过重新编译 FreeBSD 基本系统从源码进行升级)受到支持,具体请参阅 /usr/src/UPDATING 中的说明。

在尝试升级 FreeBSD 之前,必须备份所有数据和配置文件。

安全与勘误

本节列出了自 12.3-RELEASE 发布以来的各种安全公告和勘误通知。

安全公告

公告名称
日期
主题

2022 年 3 月 15 日

多个 WiFi 问题

2022 年 3 月 15 日

OpenSSL 证书解析无限循环

2022 年 4 月 6 日

netmap 中可能的 jail 越狱漏洞

2022 年 4 月 6 日

Bhyve e82545 设备模拟越界写入

2022 年 4 月 6 日

mpr/mps/mpt 驱动程序 ioctl 堆越界写入

2022 年 4 月 6 日

802.11 堆缓冲区溢出

2022 年 4 月 6 日

zlib 压缩越界写入

2022 年 8 月 9 日

elf_note_prpsinfo() 中越界读取

2022 年 8 月 9 日

AIO 凭据引用计数泄漏

2022 年 8 月 9 日

由于过时的虚拟内存映射导致的内存泄漏

2022 年 8 月 30 日

zlib 堆缓冲区溢出

2022 年 11 月 29 日(修订版)

Heimdal 中的多个漏洞

2022 年 11 月 29 日

ping(8) 的堆栈溢出

勘误通知

勘误编号
日期
主题

2022 年 1 月 11 日

不正确的 XSAVE 状态大小

2022 年 1 月 11 日

与某些 Hyper-V 版本的 vPCI 兼容性改进

2022 年 1 月 11 日

不正确的 PCID 模式无效化

2022 年 1 月 11 日

libalias 中不正确的分片 IPv4 包处理

2022 年 2 月 1 日

i386 TLB 无效化逻辑中的回归

2022 年 3 月 15 日

freebsd-update 创建错误的启动环境

2022 年 3 月 22 日

时区数据库信息更新

2022 年 8 月 9 日

在 SCSI 错误恢复期间的内核内存损坏

2022 年 8 月 30 日

时区数据库信息更新

2022 年 11 月 1 日

时区数据库信息更新

2022 年 11 月 29 日

Heimdal KDC 中的回归

用户空间

本节涉及用户空间应用程序、第三方软件以及系统工具的变更和新增内容。

用户空间应用程序变更

ar(1)arrow-up-right 工具不会覆盖标准输出流指针,以使其与 musl 库兼容。它还弃用了 -T 参数。21a6c9bd6f2farrow-up-right(由 FreeBSD 基金会赞助)

cp(1)arrow-up-right 工具将检测由 -R 参数引起的无限递归并将其消除。b57954717ddfarrow-up-right a605ca25ef68arrow-up-right(由 Klara, Inc. 赞助)

cp(1)arrow-up-right 工具将正确地处理参数 -H-L-P。特别是,当指定 -H-P 时,它不会解析遍历过程中遇到的符号链接。1d9f60b05128arrow-up-right(由 Klara, Inc. 赞助)

cp(1)arrow-up-right 工具将允许 -P 在没有 -R 的情况下工作,符合 POSIX 标准。19413ce66cc0arrow-up-right

df(1)arrow-up-right 工具现在将支持同时使用参数 -l-t。如果同时指定,它将把 -t 选项的参数列表应用于本地文件系统的选择。741b90dc69eearrow-up-right

elfctl(1)arrow-up-right 工具在没有变更的情况下将避免修改文件。e048bd5c0954arrow-up-right(由 FreeBSD 基金会赞助)

elfctl(1)arrow-up-right 工具将检测主机字节序与目标字节序是否不同,并交换 ELF 注释字段的字节顺序,而不是失败。c7d961a39893arrow-up-right(由 Stormshield 赞助)

elfctl(1)arrow-up-right 工具对手册页进行了改进。f3cdcf235966arrow-up-right(由 FreeBSD 基金会赞助)

elfctl(1)arrow-up-right 工具修复了多个文件上执行多个功能时的若干错误,解决了多次指定参数 -e-e 的错误处理问题。bbb92ab05fa2arrow-up-right a528bad95e0carrow-up-right d3cbb4745a13arrow-up-right(由 FreeBSD 基金会赞助)

fsck_ufs(8)arrow-up-right 工具修复了在与 gjournal(8)arrow-up-right 一起使用时的段错误问题。f8145bd4bcc0arrow-up-right

growfs(8)arrow-up-right 工具在文件系统已经是请求的大小时不会报错。11f45b8f8009arrow-up-right(由 FreeBSD 基金会赞助)

nfsd(8)arrow-up-right 工具增加了若干合规性检查。0f2244008573arrow-up-right b5c577931db1arrow-up-right 5ad7804beb38arrow-up-right c0ea059da22farrow-up-right

nfsd(8)arrow-up-right 工具修复了验证如 FilesAvail 等属性时的错误。b386392ea909arrow-up-right

nfsd(8)arrow-up-right 工具修复了关于 NFSv4.1/4.2 会话槽释放的问题。81091a7ca11aarrow-up-right

nfsd(8)arrow-up-right 工具修复了在处理 pNFS 服务器的 Open/Create 操作时的错误。d5c176ad6a7barrow-up-right

sh(1)arrow-up-right 工具现在将读取更多的配置文件。它将加载 /etc/profile.d 中的每个 .sh 文件,然后是 /usr/local/etc/profile,最后是 /usr/local/etc/profile.d/ 中的每个 .sh 文件。73ab1c87c208arrow-up-right

usbconfig(8)arrow-up-right 工具将使用 getopt(3)arrow-up-right 来处理选项。081853844bd4arrow-up-right

usbconfig(8)arrow-up-right 工具的文档得到了改进。940db7edacb2arrow-up-right

usbconfig(8)arrow-up-right 工具新增了 -v 参数。bb0b7f405138arrow-up-right 1cab5dac1c2darrow-up-right

第三方的软件

blacklistd(8)arrow-up-right 守护进程现在可以处理零大小的消息。5f7ae464db5barrow-up-right

dma(8)arrow-up-right 工具已更新为 2022-01-27 快照。27941a274ebfarrow-up-right

dma(8)arrow-up-right 邮件代理现在如果使用无效(0)argc 调用,将退出。647d3bf17cd9arrow-up-right(由 FreeBSD 基金会赞助)

dma(8)arrow-up-right 邮件代理现在会将行数限制为 998 个字符,符合 RFC2822 标准。5c1ee92b0ebaarrow-up-right(由 FreeBSD 基金会赞助)

用于解析 XML 的 expat C 库已更新为版本 2.4.9。8a7b2fbbaae4arrow-up-right

file(1)arrow-up-right 工具已更新为版本 5.43。91f1a04f9baaarrow-up-right

libarchive(3)arrow-up-right 库已更新为版本 3.6.0。bbc312a1ec99arrow-up-right

LLVM 工具链套件已更新为版本 13.0.0。838e2fa19531arrow-up-right

mandoc(1)arrow-up-right 工具已更新为版本 1.14.6。6ec92eb155fbarrow-up-right

OpenBSM 修复了 au_read_rec 错误情况中的 free() 问题。990aa6476eecarrow-up-right

OpenSSL 已更新为 1.1.1q。c83325e95a98arrow-up-right

OpenSSH 已更新为 9.1p1。50cb877af1fbarrow-up-right(由 FreeBSD 基金会赞助)

sendmail(8)arrow-up-right 邮件传输代理修复了与 cyrus-sasl-2.1.28 身份验证相关的错误。1ccfac2381c3arrow-up-right(由 FreeBSD 基金会赞助)

sqlite3(1)arrow-up-right 工具已更新为版本 3.39.3。25fd07c106d8arrow-up-right

telnet(1)arrow-up-right 工具现在会默默忽略无效的 set ' ' 和无效的 help help 命令,而不是发生段错误。eeadef8fd523arrow-up-right

telnet(1)arrow-up-right 工具修复了 CVE-2020-39028 漏洞。f2aa49e7fda5arrow-up-right

telnet(1)arrow-up-right 工具修复了 CVE-2020-10188 漏洞。229863871f52arrow-up-right

telnetd(8)arrow-up-right 守护进程已弃用。616b1b813891arrow-up-right

tcpdump(1)arrow-up-right 工具现在允许用户设置规则上的数字,这些数字将作为 pflog 标头的一部分暴露。7f944794868farrow-up-right(由 Rubicon Communications, LLC ("Netgate") 赞助)

tzdata 信息已更新,以修正斐济和巴勒斯坦的夏令时(DST)。74a0f31dbbd0arrow-up-right 89e293e5dcb4arrow-up-right

tzdata 2022f 已导入到树中。df5c24d59089arrow-up-right

unbound(8)arrow-up-right 工具已更新为版本 1.16.3。51206a8d11aearrow-up-right

wpa 已更新为版本 2.10,包括 hostapd 2.10。ea5113953168arrow-up-right

内核

本节涉及未分类的内核配置、系统调优和系统控制参数的变更。

一般内核变更

hwpmc(4)arrow-up-right 框架修复了 arm64 平台的计数器/中断状态初始化错误。 c8a4404da737arrow-up-right(由 FreeBSD 基金会赞助)

hwpmc(4)arrow-up-right 框架添加了 Intel Comet/Ice/Tiger/Rocketlake CPU 的 ID。 d2138bddf3ecarrow-up-right

iflib(4)arrow-up-right 网络接口修复了在使用 vmxnet3 驱动的 VMware 虚拟机中导致崩溃的数据竞争问题。 f43d2e1199b9arrow-up-right

iflib(4)arrow-up-right 网络接口修复了驱动中的 VLAN 处理问题。 cf101bd5ceebarrow-up-right

iflib(4)arrow-up-right 网络接口驱动框架修复了锁顺序反转(LOR)问题。 ea25a6af57e0arrow-up-right

net80211(4)arrow-up-right 接口增加了对 A-MSDU 设计缺陷(CVE-2020-24588)的缓解。 76ee776f4d9farrow-up-right

net80211(4)arrow-up-right 接口将拒绝混合明文/加密片段(CVE-2020-26147)。 00cd5a2f614aarrow-up-right

net80211(4)arrow-up-right 接口将防止明文注入 A-MSDU RFC1042/EAPOL 帧(CVE-2020-26144)。 2d09e4366b67arrow-up-right

net80211(4)arrow-up-right 接口改进了多个验证,包括 SSID 长度和 Mesh ID 长度。 f4d0e8787a09arrow-up-right e7c990ba3f8darrow-up-right

pf(4)arrow-up-right 框架现已确保在 ICMP 错误中正确的源/目的 IP 地址。 a50876f0ac7aarrow-up-right(由 Rubicon Communications, LLC ("Netgate") 赞助)

框架 pf(4)arrow-up-right 修复了内存泄漏问题。 329c9b9da592arrow-up-right

框架 pf(4)arrow-up-right 改进了 pfsync(4)arrow-up-right 状态的路由处理。 592b4f93632aarrow-up-right(由 Orange Business Services 赞助)

sched_ule(4)arrow-up-right 调度程序修复了当设置 kern.sched.interact 高于 32 时丧失精度的错误。 b7eded5ea1f1arrow-up-right

虚拟内存子系统修复了一个问题,该问题导致在无法提供满意的页面集合时错误地打破了虚拟内存保留。 46549e319c52arrow-up-right

从 DVD 安装的镜像修复了符号链接问题,便于使用光盘上的软件包。 7b05f19e9708arrow-up-right(由 Rubicon Communications, LLC ("Netgate") 赞助)

设备与驱动

设备驱动程序

x86 CPU 上的 AES 和 SHA 加速器的驱动程序 aesni(4)arrow-up-right 修复了一个可能的越界访问错误。 83d0a7763a92arrow-up-right(由 FreeBSD 基金会赞助)

Allwinner SoC 中 SPI 控制器的驱动程序 aw_spi(4)arrow-up-right 改进了 TX FIFO 下溢和 RX FIFO 溢出的 I/O 稳定性。 1e7b0dc00076arrow-up-right

carp(4)arrow-up-right 协议现在能够优雅地处理 net.inet.carp.demotion 的负值。 1c16de99bd7darrow-up-right(由 Modirum MDPay 赞助)

已更新内核驱动程序 ena(4)arrow-up-right 为 2.6.1 版本。 1a97579ae67aarrow-up-right(由亚马逊赞助)

驱动程序 if_epair(4)arrow-up-right 现在允许使用多个核心处理流量,从而提高性能。 092da35a0d80arrow-up-right(由 Orange Business Services 赞助)

隧道接口 if_gif(4)arrow-up-right 修复了关机时的 panic 错误。 b4a51fd9c124arrow-up-right(由 Rubicon Communications, LLC ("Netgate") 赞助)

设备 if_pflog(4)arrow-up-right 修复了一个关于数据包长度的错误。 d41caea44ba9arrow-up-right(由 Rubicon Communications, LLC ("Netgate") 赞助)

网络接口 if_vlan(4)arrow-up-right 修复了一个错误,避免了在添加和删除条目时哈希表的抖动。 a5f19abeb719arrow-up-right(由 NetApp, Inc. 赞助)

以太网控制器 igc(4)arrow-up-right 修复了一个错误,防止在变更过滤器时正确更新 RCTL。 73e1138208a5arrow-up-right

驱动程序 ixl(4)arrow-up-right 修复了 VLAN 硬件过滤的一些问题。 83ca71099913arrow-up-right

驱动程序 ixl(4)arrow-up-right 修复了一些 panic 错误。 749c7da9b9b4arrow-up-right

mpr(4)arrow-up-right 在固件更新期间修复了一个 panic 错误。 956f15e74d66arrow-up-right

驱动程序 mpr(4)arrow-up-rightmps(4)arrow-up-right 实施了更强大的设备映射功能。 9d842d84f49aarrow-up-right(由 iXsystems, Inc. 赞助)

设备驱动程序 ocs_fc(4)arrow-up-right 修复了内存泄漏问题。 12e6cbd15853arrow-up-right

设备驱动程序 ocs_fc(4)arrow-up-right 修复了两个使用后释放(use-after-free)错误。 241d13765504arrow-up-right fa3e66e9f7cdarrow-up-right

设备驱动程序 ocs_fc(4)arrow-up-right 修复了一个可能的空指针解引用错误。 9199f5e0ba5carrow-up-right

虚拟设备 pfsync(4)arrow-up-right 修复了一些锁定错误。 7164b77ce2f3arrow-up-right(由 Rubicon Communications, LLC ("Netgate") 赞助)

虚拟设备 pfsync(4)arrow-up-right 修复了一些 NULL 检查错误。 bbbe18b31795arrow-up-right f3b722fed330arrow-up-right(由 Rubicon Communications, LLC ("Netgate") 赞助)

虚拟设备 pfsync(4)arrow-up-right 修复了一个延迟模式错误。 c36006be5424arrow-up-right(由 Rubicon Communications, LLC ("Netgate") 赞助)

x86 上的驱动程序 random(4)arrow-up-right 现在将优先使用 RDSEED,而不是 RDRAND(如果可用),根据 Intel 文档。 a68e606c402earrow-up-right

设备 random(4)arrow-up-right 进行了一些改进,现在使得熵源的注销更为安全。 7878a69e0415arrow-up-right

驱动程序 rk_i2c(4)arrow-up-right 进行了多项改进,包括将可发送的字节数增加到 32。 342d73431ee5arrow-up-right

USB 音频和 MIDI 驱动程序 snd_uaudio(4)arrow-up-right 修复了 iFeature 字符串计算错误。 43a03be0bb50arrow-up-right(由 NVIDIA Networking 赞助)

驱动程序 usb(4)arrow-up-right 修复了一个使用后释放错误。 bb9bee1ffbb2arrow-up-right(由 NVIDIA Networking 赞助)

虚拟终端控制台驱动程序 vt(4)arrow-up-right 修复了关于双击选中文本行首/尾的错误。 caeade0e00d5arrow-up-right(由 FreeBSD 基金会赞助)

虚拟终端控制台驱动程序 vt(4)arrow-up-right 修复了关于像素块颜色超出 4 种颜色限制的错误。 4e4e477d89fdarrow-up-right(由 FreeBSD 基金会赞助)

存储

本节涉及文件系统和其他存储子系统(包括本地和网络存储)的变更和新增内容。

一般存储

fusefs(5)arrow-up-right 用户空间文件系统修复了一个竞态条件错误。 c85846ea3ea5arrow-up-right

fusefs(5)arrow-up-right 用户空间文件系统修复了几个关于 VOP_RECLAIM 的错误。 4d5fb17274aaarrow-up-right

fusefs(5)arrow-up-right 文件系统修复了一个未定义变量访问错误。 20004b265addarrow-up-right(由 Axcient 赞助)

NFS 客户端代码修复了一个强制卸载循环错误。 00e9bc2d937farrow-up-right

NFS 客户端代码修复了多个错误,包括两个使用后释放错误。 04c2ce41e3fcarrow-up-right 22d6238a0473arrow-up-right

NFS 客户端代码修复了一个竞态条件错误。 ca826694e3b0arrow-up-right

启动加载器变更

本节介绍启动加载器、启动菜单以及其他与启动相关的变更。

启动加载器变更

(暂无内容)

网络

本节介绍影响 FreeBSD 网络的变更。

通用网络

系统工具 dummynet(4)arrow-up-right 修复了一个越界访问漏洞。55351c2620c5arrow-up-right(由 FreeBSD 基金会赞助)

系统工具 dummynet(4)arrow-up-right 修复了一个与套接字选项长度验证相关的错误。3f22f161b936arrow-up-right(由 FreeBSD 基金会赞助)

包过滤器 ipfilter(4)arrow-up-right 新增了 DT5SDT dtrace(1)arrow-up-right 探测点。67b86b71c19carrow-up-right 09aa9a1f82bfarrow-up-right

从现在起,为了提升安全性,ipfilter(4)arrow-up-right 仅允许 jails 在拥有独立 VNET 的情况下操作 ipfilter 规则、NAT 表和 ippools。ed86cf0121f9arrow-up-right

包过滤器 ipfilter(4)arrow-up-right 现在支持以 ippool.conf 格式导出 ippool 的副本。95dfabe85a54arrow-up-right

框架 netmap(4)arrow-up-right 修复了一个整数溢出漏洞(CVE-2022-23085)。95602165e33aarrow-up-right

框架 netmap(4)arrow-up-right 修复了一个 TOCTOU 漏洞(CVE-2022-23084)。6fa8af618475arrow-up-right

最后更新于