• 公告ID (KylinSec-SA-2024-4981)

摘要:

kernel security update

安全等级: High

公告ID: KylinSec-SA-2024-4981

发布日期: 2025年7月31日

关联CVE: CVE-2024-44939   CVE-2024-44960   CVE-2024-44970   CVE-2024-44985   CVE-2024-44986   CVE-2024-44987   CVE-2024-44988   CVE-2024-45020  

  • 详细介绍

1. 漏洞描述

   

Linux内核,即操作系统核心本身。

安全修复:

在Linux内核中,以下漏洞已被修复:

jfs: 修复dtInsertEntry中的空指针解引用问题

[syzbot报告]
常规保护错误,可能由于非规范地址0xdffffc0000000001引起:0000 [#1] PREEMPT SMP KASAN PTI
KASAN: 在范围[0x0000000000000008-0x000000000000000f]内出现空指针解引用
CPU: 0 PID: 5061 Comm: syz-executor404 Not tainted 6.8.0-syzkaller-08951-gfe46a7dd189e #0
硬件名称:Google Google Compute Engine/Google Compute Engine, BIOS Google 03/27/2024
RIP: 0010:dtInsertEntry+0xd0c/0x1780 fs/jfs/jfs_dtree.c:3713
...
[分析]
在dtInsertEntry()中,当指针h与p的值相同时,在UniStrncpy_to_le()写入名称后,
p->header.flag将被清除。这将导致之前为真的判断条件"p->header.flag & BT-LEAF"
在写入名称操作后变为假,从而进入错误的分支并在第二次判断该条件时访问未初始化的对象ih。

[修复]
获取页面后首先检查freelist,如果freelist == 0则退出dtInsert()并返回-EINVAL。(CVE-2024-44939)

在Linux内核中,以下漏洞已被修复:

usb: gadget: core: 检查未设置的描述符

在查看maxpacket之前确保描述符已设置。
这修复了在此情况下的空指针panic问题。

当gadget未正确设置当前速度的端点,或者gadget描述符格式错误
且找不到速度/端点的描述符时,可能会出现此问题。

目前没有已知的gadget驱动程序存在此问题,但这可能在新gadget
开发过程中导致难以发现的错误。(CVE-2024-44960)

在Linux内核中,以下漏洞已被修复:

net/mlx5e: SHAMPO, 修复无效的WQ链表解除链接

当WQE中的所有strides都被消耗后,WQE会从WQ链表中解除链接(mlx5_wq_ll_pop())。
对于SHAMPO,即使在WQE完全消耗并解除链接后,仍可能收到相同WQE的0消耗strides的CQEs。
这会触发对同一wqe的额外解除链接,从而损坏链表。

通过接受0大小的消耗strides而不再次解除WQE链接来修复此场景。(CVE-2024-44970)

在Linux内核中,以下漏洞已被修复:

ipv6: 防止ip6_xmit()中可能的UAF

如果skb_expand_head()返回NULL,skb已被释放,
并且相关的dst/idev也可能已被释放。

我们必须使用rcu_read_lock()来防止可能的UAF。(CVE-2024-44985)

在Linux内核中,以下漏洞已被修复:

ipv6: 修复ip6_finish_output2()中可能的UAF

如果skb_expand_head()返回NULL,skb已被释放
并且相关的dst/idev也可能已被释放。

我们需要持有rcu_read_lock()来确保dst和相关的idev仍然存活。(CVE-2024-44986)

在Linux内核中,以下漏洞已被修复:

ipv6: 防止ip6_send_skb()中的UAF

syzbot报告了ip6_send_skb()中的UAF问题[1]

在ip6_local_out()返回后,除非我们持有rcu_read_lock(),
否则我们不能再安全地解引用rt。

类似的问题已在commit a688caa34beb ("ipv6: take rcu lock in rawv6_send_hdrinc()")中修复

ip6_finish_output2()中的另一个潜在问题在单独的补丁中处理。

在Linux内核中,以下漏洞已被修复:

net: dsa: mv88e6xxx: 修复越界访问问题

如果ATU违规是由CPU加载操作引起的,SPID可能大于DSA_MAX_PORTS(即mv88e6xxx_chip.ports[]数组的大小)。(CVE-2024-44988)

在Linux内核中,以下漏洞已被修复:

bpf: 修复stacksafe()中的内核验证器崩溃问题

Daniel Hodges报告在使用sched-ext时遇到内核验证器崩溃。进一步调查显示,崩溃是由于stacksafe()中的非法内存访问导致的。具体来说,是以下代码存在问题:

if (exact != NOT_EXACT &&
old->stack[spi].slot_type[i % BPF_REG_SIZE] !=
cur->stack[spi].slot_type[i % BPF_REG_SIZE])
return false;

其中'i'会遍历old->allocated_stack。如果cur->allocated_stack < old->allocated_stack,就会发生越界访问。

为解决此问题,添加'i >= cur->allocated_stack'检查条件,如果该条件为真,则stacksafe()应返回失败。否则,cur->stack[spi].slot_type[i % BPF_REG_SIZE]的内存访问是合法的。(CVE-2024-45020)

2. 影响范围

cve名称 产品 组件 是否受影响
CVE-2024-44939 V6 kernel Fixed
CVE-2024-44960 V6 kernel Fixed
CVE-2024-44970 V6 kernel Fixed
CVE-2024-44985 V6 kernel Fixed
CVE-2024-44986 V6 kernel Fixed
CVE-2024-44987 V6 kernel Fixed
CVE-2024-44988 V6 kernel Fixed
CVE-2024-45020 V6 kernel Fixed

3. 影响组件

    kernel

4. 修复版本

   

V6

软件名称 架构 版本号
bpftool x86_64 7.2.0-1.ks6
kernel x86_64 6.6.0-28.0.0.34.kb11.ks6
kernel-devel x86_64 6.6.0-28.0.0.34.kb11.ks6
kernel-headers x86_64 6.6.0-28.0.0.34.kb11.ks6
kernel-source x86_64 6.6.0-28.0.0.34.kb11.ks6
kernel-tools x86_64 6.6.0-28.0.0.34.kb11.ks6
kernel-tools-devel x86_64 6.6.0-28.0.0.34.kb11.ks6
perf x86_64 6.6.0-28.0.0.34.kb11.ks6
python3-perf x86_64 6.6.0-28.0.0.34.kb11.ks6
bpftool aarch64 7.2.0-1.ks6
kernel aarch64 6.6.0-28.0.0.34.kb11.ks6
kernel-devel aarch64 6.6.0-28.0.0.34.kb11.ks6
kernel-headers aarch64 6.6.0-28.0.0.34.kb11.ks6
kernel-source aarch64 6.6.0-28.0.0.34.kb11.ks6
kernel-tools aarch64 6.6.0-28.0.0.34.kb11.ks6
kernel-tools-devel aarch64 6.6.0-28.0.0.34.kb11.ks6
perf aarch64 6.6.0-28.0.0.34.kb11.ks6
python3-perf aarch64 6.6.0-28.0.0.34.kb11.ks6

5. 修复方法


方法一:下载安装包进行升级安装
1、通过下载链接下载需要升级的升级包保存,如 xxx.rpm
2、通过rpm命令升级,如 rpm -Uvh xxx.rpm

方法二:通过软件源进行升级安装
1、保持能够连接上互联网
2、通过yum命令升级指定的包,如 yum install 包名

6. 下载链接

   

V6:

x86_64:

     bpftool   

     kernel   

     kernel-devel   

     kernel-headers   

     kernel-source   

     kernel-tools   

     kernel-tools-devel   

     perf   

     python3-perf   

aarch64:

     bpftool   

     kernel   

     kernel-devel   

     kernel-headers   

     kernel-source   

     kernel-tools   

     kernel-tools-devel   

     perf   

     python3-perf   

上一篇:KylinSec-SA-2025-2700 下一篇:KylinSec-SA-2024-4818