本次月报总结了 SIG 在 7 月和 8 月的工作进展,涵盖 SMC 新特性推进及多个稳定性问题的修复:

01 整体进展

1、特性:推动上游 smc-tools 用户态工具对 IPPROTO_SMC 协议的透明替换支持。

2、特性:推动上游内核和 smc-tools 用户态工具对 SMC 持有共享内存数量的监控支持。

3、修复:修复多个通用内核网络、SMC 和 virtio-net 相关的 bug。

02 ANCK 通用内核网络协议栈

Bugfix

  • 修复 sch_multiq 中潜在的 OOB 写异常问题。(PR3462)

  • 修复 sockmap 中未被 accept 的 child sock 记录残留的问题。(PR3451)

  • 修复 tcp 的异常警告问题。(PR3788)

  • 修复 GRE 隧道发送路径上未捕获 pskb_trim 异常返回值导致的错误。(PR3612)

  • 修复在 __skb_tstamp_tx 中存在的 skb 泄漏问题。(PR3615)

  • 修复 SOCK_RAW socket 访问 icmp 头中未初始化字段导致的访问错误。(PR3606)

  • 修复 netlink_set_err 中可能发生死锁的问题。(PR3609)

安全

  • 修复 CVE-2024-36886:在 tipc_buf_append 错误处理路径中存在的 use-after-free 漏洞。(PR3529)

  • 修复 CVE-2024-41090 和 CVE-2024-41091:禁止 tap/tun 设备传递长度小于以太网头的数据报文以避免潜在安全风险。(PR3559, PR3560)

03 SMC

双月 SMC 相关工作集中在推进上游 smc-tools 支持 IPPROTO_SMC 协议、smc 共享内存数量监控特性及稳定性问题修复。

smc-tools 支持 IPPROTO_SMC

随着 6 月 SIG 提交的 IPPROTO_SMC 特性合入上游,相关的对 smc-tools 用户态工具的补充也已提交上游 [1],此提交使 smc-tools 能够基于 eBPF 完成 IPPROTO_SMC 的透明替换。

共享内存数量监控

smc-tools 提供的 SMC 状态统计中缺少对每个 link group 或当前活跃连接持有共享内存的统计。为此,SIG 在 8 月向上游提交了共享内存监控相关的补丁[2],相应的用户态工具修改也已提交至上游 smc-tools 仓库[3],目前均已合入。

稳定性问题修复

修复了 IPPROTO_SMC 协议在 socket 创建失败时可能导致的 use-after-free 问题 [4]。

04 virtio

稳定性问题修复

修复了 virtio 网卡未协商 VIRTIO_NET_F_VQ_NOTF 特性时 vq resize 可能失败的问题 [5]。

相关链接:

[1] https://github.com/ibm-s390-linux/smc-tools/pull/10

[2][PATCH net-next v3 0/2] net/smc: introduce ringbufs usage statistics - Wen Gu

[3] https://github.com/ibm-s390-linux/smc-tools/pull/11

[4][PATCH net] net/smc: prevent UAF in inet_create() - D. Wythe

[5] Receive patch set 4ba8d970837,b50f2af9fbc · Pull Request !3774 · anolis/cloud-kernel - Gitee.com

注:更多龙蜥 SIG 月度动态可点击这里查看。

高性能网络 SIG(Special Interest Group) :在这个万物互联的时代,云上的网络通信效率对各种服务至关重要,高性能网络兴趣组致力于利用 XDP、RDMA、VIRTIO 等新高效通信技术,结合软硬件一体化的思想,打造高性能网络协议栈,提升云计算时代数据中心应用的网络性能。

高性能网络 SIG 主页:High Performance Network SIG - OpenAnolis龙蜥操作系统开源社区

Logo

欢迎加入龙蜥社区,参与开源活动即刻有好礼相送!

更多推荐