第 1.14 节 FreeBSD 安全公告
- 主题: Wi-Fi 加密绕过
- 分类: 核心
- 模块: net80211
- 公告日期: 2023 年 09 月 06 日
- 贡献者 请参阅参考部分中链接的论文
- 受影响版本: 所有受支持的 FreeBSD 版本
- 修复日期:
- 2023 年 06 月 26 日 12:02:00 UTC (stable/13, 13.2-STABLE)
- 2023 年 09 月 06 日 17:13:25 UTC (releng/13.2, 13.2-RELEASE-p3)
- 2023 年 06 月 26 日 12:30:23 UTC (stable/12, 12.4-STABLE)
- 2023 年 09 月 06 日 17:38:34 UTC (releng/12.4, 12.4-RELEASE-p5)
- CVE 名称: CVE-2022-47522
FreeBSD 的 net80211 内核子系统提供了 IEEE 802.11 无线(Wi-Fi)通信的基础设施和驱动程序。Wi-Fi 通信依赖于单播和多播密钥来保护传输。
在单播密钥被删除的情况下,net80211 子系统会退回到多播密钥以处理单播流量。这将导致缓冲的单播流量暴露给具有多播密钥访问权限的任何站点。
正如《Framing Frames: Bypassing Wi-Fi Encryption by Manipulating Transmit Queues》(绕过 Wi-Fi 加密通过操作传输队列)论文中所述,攻击者可以诱使访问点为客户端缓冲帧,断开客户端的连接(导致从访问点删除单播密钥),然后刷新缓冲的帧,这些帧现在使用多播密钥进行加密。这将使攻击者能够访问数据。
没有可用的解决方法。不使用 Wi-Fi 的系统不受影响。
升级您的受影响系统到受支持的 FreeBSD STABLE 版本或 RELEASE/安全分支(releng),日期在纠正日期之后,并重新启动。
执行以下操作之一:
- 1.通过二进制补丁更新您的受影响系统:
在 amd64、i386 或(在 FreeBSD 13 及以后)arm64 平台上运行 FreeBSD RELEASE 版本的系统可以通过 freebsd-update(8) 工具进行更新:
# freebsd-update fetch
# freebsd-update install
# shutdown -r +10min "Rebooting for a security update"
- 2.通过源代码补丁更新您的受影响系统:
以下补丁已被验证可适用于适用的 FreeBSD 发布分支。
a) 从以下位置下载相关补丁,并使用您的 PGP 工具验证分离的 PGP 签名。
# fetch https://security.FreeBSD.org/patches/SA-23:11/wifi.patch
# fetch https://security.FreeBSD.org/patches/SA-23:11/wifi.patch.asc
# gpg --verify wifi.patch.asc
b) 应用补丁。以 root 用户身份执行以下命令:
# cd /usr/src
# patch < /path/to/patch
此问题通过以下 STABLE 和 RELEASE 分支中的相应 Git 提交哈希或 Subversion 修订号来纠正:
分支/路径 | 哈希 | 修订号 |
---|---|---|
stable/13/ | 6c9bcecfb296 | stable/13-n255680 |
releng/13.2/ | 7f34ee7cc56b | releng/13.2-n254632 |
stable/12/ | | r373115 |
releng/12.4/ | | r373187 |
对于 FreeBSD 13 及更高版本:
运行以下命令以查看特定提交修改的文件:
# git show --stat <commit hash>
或访问以下 URL,替换 NNNNNN 为哈希值:
要确定工作树中的提交计数(用于与上表中的 nNNNNNN 进行比较),运行:
# git rev-list --count --first-parent HEAD
对于 FreeBSD 12 及更早版本:
运行以下命令以查看特定修订号修改的文件,替换 NNNNNN 为修订号:
# svn diff -cNNNNNN --summarize svn://svn.freebsd.org/base
或访问以下 URL,替换 NNNNNN 为修订号:
- 主题: pf 在处理多个 IPv6 分片头时出现错误
- 分类: 核心
- 模块: pf
- 公告日期: 2023 年 09 月 06 日
- 贡献者 Enrico Bassetti [email protected] (罗马大学的 NetSecurityLab)
- 受影响版本: 所有受支持的 FreeBSD 版本
- 修复日期:
- 2023 年 08 月 04 日 14:08:05 UTC (stable/13, 13.2-STABLE)
- 2023 年 09 月 06 日 16:58:39 UTC (releng/13.2, 13.2-RELEASE-p3)
- 2023 年 08 月 04 日 14:14:08 UTC (stable/12, 12.4-STABLE)
- 2023 年 09 月 06 日 17:38:31 UTC (releng/12.4, 12.4-RELEASE-p5)
- CVE 名称: CVE-2023-4809
pf 是最初为 OpenBSD 编写的 Internet 协议数据包过滤器。pf 可以重新组装分段的 IPv6 数据包以便对重新组装后的数据包应用规则。这使得 pf 可以基于上层协议(例如 TCP、UDP)信息进行过滤。
IPv6 数据包可能会被原始节点分段,并且将包含一个分段扩展头。一个 IPv6 数据包通常只包含一个分段扩展头。
使用'scrub fragment reassemble'规则,包含多个 IPv6 分片头的数据包将被重新组装,然后立即处理。也就是说,包含多个分段扩展头的数据包不会被识别为正确的最终有效载荷。而是,多个 IPv6 分片头的数据包将意外地被解释为分段数据包,而非实际有效载荷是什么。
IPv6 分段可能会绕过基于所有分段已被重新组装的假设编写的防火墙规则,并因此被主机转发或处理。
没有可用的解决方法,但不使用 pf 防火墙的系统不受影响。
升级您的受影响系统到支持的 FreeBSD STABLE 版本或 RELEASE/安全分支(releng),日期在纠正日期之后,并重新启动。
执行以下操作之一:
- 1.通过二进制补丁更新您受影响的系统:
在 amd64、i386 或(在 FreeBSD 13 及以后)arm64 平台上运行 FreeBSD RELEASE 版本的系统可以通过 freebsd-update(8)工具进行更新:
# freebsd-update fetch
# freebsd-update install
# shutdown -r +10min "Rebooting for a security update"
- 2.通过源代码补丁更新您的受影响系统:
以下补丁已被验证可适用于适用的 FreeBSD 发布分支。
a) 从以下位置下载相关补丁,并使用您的 PGP 工具验证分离的 PGP 签名。
[FreeBSD 13.2]
# fetch https://security.FreeBSD.org/patches/SA-23:10/pf.13.patch
# fetch https://security.FreeBSD.org/patches/SA-23:10/pf.13.patch.asc
# gpg --verify pf.13.patch.asc
[FreeBSD 12.4]
# fetch https://security.FreeBSD.org/patches/SA-23:10/pf.12.patch
# fetch https://security.FreeBSD.org/patches/SA-23:10/pf.12.patch.asc
# gpg --verify pf.12.patch.asc
b) 应用补丁。以 root 用户身份执行以下命令:
# cd /usr/src
# patch < /path/to/patch
此问题通过以下 Stable 和 Release 分支中的相应 Git 提交哈希或 Subversion 修订号来纠正:
分支/路径 | 哈希 | 修订号 |
---|---|---|
stable/13/ | 3a0461f23a4f | stable/13-n255953 |
releng/13.2/ | 41b7760991ef | releng/13.2-n254631 |
stable/12/ | | r373157 |
releng/12.4/ | | r373186 |