摘要:
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
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)
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 |
软件名称 | 架构 | 版本号 |
---|---|---|
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 |
方法一:下载安装包进行升级安装
1、通过下载链接下载需要升级的升级包保存,如 xxx.rpm
2、通过rpm命令升级,如 rpm -Uvh xxx.rpm
方法二:通过软件源进行升级安装
1、保持能够连接上互联网
2、通过yum命令升级指定的包,如 yum install 包名