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

摘要:

kernel security update

安全等级: High

公告ID: KylinSec-SA-2024-4975

发布日期: 2025年7月31日

关联CVE: CVE-2023-52888   CVE-2024-39509   CVE-2024-40956   CVE-2024-40990   CVE-2024-41035   CVE-2024-41042   CVE-2024-41046   CVE-2024-42105   CVE-2024-42114   CVE-2024-42158   CVE-2024-42223  

  • 详细介绍

1. 漏洞描述

   

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

安全修复:

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

media: mediatek: vcodec: 仅释放非NULL的缓冲区VA

在MediaTek vcodec驱动中,虽然mtk_vcodec_mem_free()大多只在需要释放的缓冲区存在时被调用,但实际存在一些未进行检查的实例并触发了警告。

我们认为这些检查是被无意遗漏的。重新添加检查以修复警告。(CVE-2023-52888)

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

HID: core: 移除implement()中不必要的WARN_ON()

当尝试向输出报告中较小尺寸的字段写入值时,Syzkaller触发了implement()中的警告[1]。

由于implement()已通过hid_warn()打印警告信息,且问题值已通过:
...
value &= m;
...
进行修剪,WARN_ON可能被认为是多余的。移除它以抑制未来的syzkaller触发。

[1]
WARNING: CPU: 0 PID: 5084 at drivers/hid/hid-core.c:1451 implement drivers/hid/hid-core.c:1451 [inline]
WARNING: CPU: 0 PID: 5084 at drivers/hid/hid-core.c:1451 hid_output_report+0x548/0x760 drivers/hid/hid-core.c:1863
Modules linked in:
CPU: 0 PID: 5084 Comm: syz-executor424 Not tainted 6.9.0-rc7-syzkaller-00183-gcf87f46fd34d #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 04/02/2024
RIP: 0010:implement drivers/hid/hid-core.c:1451 [inline]
RIP: 0010:hid_output_report+0x548/0x760 drivers/hid/hid-core.c:1863
...
Call Trace:
<TASK>
__usbhid_submit_report drivers/hid/usbhid/hid-core.c:591 [inline]
usbhid_submit_report+0x43d/0x9e0 drivers/hid/usbhid/hid-core.c:636
hiddev_ioctl+0x138b/0x1f00 drivers/hid/usbhid/hiddev.c:726
vfs_ioctl fs/ioctl.c:51 [inline]
__do_sys_ioctl fs/ioctl.c:904 [inline]
__se_sys_ioctl+0xfc/0x170 fs/ioctl.c:890
do_syscall_x64 arch/x86/entry/common.c:52 [inline]
do_syscall_64+0xf5/0x240 arch/x86/entry/common.c:83
entry_SYSCALL_64_after_hwframe+0x77/0x7f
...(CVE-2024-39509)

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

dmaengine: idxd: 修复irq_process_work_list中可能的Use-After-Free问题

使用list_for_each_entry_safe()允许在迭代过程中遍历列表并删除条目。描述符通过idxd_desc_complete()释放,当描述符被另一个线程重用而未从列表中删除时,可能会对列表迭代器造成轻微问题。(CVE-2024-40956)

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

RDMA/mlx5: 添加对srq max_sge属性的检查

max_sge属性由用户传递,并在未检查的情况下插入和使用,因此在使用前验证该值不超过允许的最大值。(CVE-2024-40990)

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

USB: core: 通过清除描述符中的保留位修复重复端点错误

Syzbot在usbcore中发现了一个错误(见Closes标签),原因是我们的假设认为端点描述符的bEndpointAddress字段中的保留位将始终为0。由于这个错误,config.c中的endpoint_is_duplicate()例程(可能还有其他例程)可能认为两个描述符是针对不同的端点,即使它们具有相同的方向和端点号。这可能导致混淆,包括syzbot识别的错误(两个具有匹配端点号和方向的描述符,其中一个是中断,另一个是批量)。

为了修复这个错误,我们将在解析描述符时清除bEndpointAddress中的保留位。(注意USB-2.0和USB-3.1规范都说这些位是"保留的,重置为零"。)这要求我们在usb_parse_endpoint()中更早地创建描述符的副本,并在检查重复时使用副本而不是原始描述符。(CVE-2024-41035)

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

netfilter: nf_tables: 优先使用nft_chain_validate

nft_chain_validate已经执行了循环检测,因为循环将导致调用堆栈溢出(ctx->level >= NFT_JUMP_STACK_SIZE)。

它还通过nft_lookup中的->validate回调跟踪映射,因此似乎没有理由再次迭代映射。

可以删除nf_tables_check_loops()及其所有辅助函数。这将显著提高规则集加载时间,从23秒降至12秒。

这也修复了一个崩溃错误。旧的循环检测代码可能导致无限递归:

BUG: TASK stack guard page was hit at ....
Oops: stack guard page: 0000 [#1] PREEMPT SMP KASAN
CPU: 4 PID: 1539 Comm: nft Not tainted 6.10.0-rc5+ #1
[..]

在验证寄存器存储时使用适当的规则集。

我看不出有任何实际理由尝试从nft_validate_register_store()检查这一点,此时事务仍在进行中,因此我们没有完整的规则图。

对于nf-next,要么删除它,要么使其依赖于table->validate_state,以便我们可以更早地捕获错误(以改进对用户空间的错误报告)。(CVE-2024-41042)

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

net: ethernet: lantiq_etop: 修复分离时的双重释放

当前释放的描述符数量从未增加,导致同一个skb被多次释放。(CVE-2024-41046)

2. 影响范围

cve名称 产品 组件 是否受影响
CVE-2023-52888 V6 kernel Fixed
CVE-2024-39509 V6 kernel Fixed
CVE-2024-40956 V6 kernel Fixed
CVE-2024-40990 V6 kernel Fixed
CVE-2024-41035 V6 kernel Fixed
CVE-2024-41042 V6 kernel Fixed
CVE-2024-41046 V6 kernel Fixed
CVE-2024-42105 V6 kernel Fixed
CVE-2024-42114 V6 kernel Fixed
CVE-2024-42158 V6 kernel Fixed
CVE-2024-42223 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-4976