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

摘要:

kernel security update

安全等级: Critical

公告ID: KylinSec-SA-2024-4987

发布日期: 2025年7月18日

关联CVE: CVE-2023-52917   CVE-2023-52918   CVE-2024-35949   CVE-2024-35964   CVE-2024-36884   CVE-2024-42301   CVE-2024-43858   CVE-2024-43867   CVE-2024-43871   CVE-2024-44982   CVE-2024-44997   CVE-2024-46675   CVE-2024-46677   CVE-2024-46724   CVE-2024-46749   CVE-2024-46757   CVE-2024-46775   CVE-2024-46782   CVE-2024-46802   CVE-2024-46853   CVE-2024-46871   CVE-2024-47659   CVE-2024-47660   CVE-2024-47661   CVE-2024-47667   CVE-2024-47681   CVE-2024-47683   CVE-2024-47684   CVE-2024-47685   CVE-2024-47689   CVE-2024-47692   CVE-2024-47695   CVE-2024-47698   CVE-2024-47709   CVE-2024-47710   CVE-2024-47720   CVE-2024-47737   CVE-2024-47743   CVE-2024-47757   CVE-2024-49855   CVE-2024-49866   CVE-2024-49867   CVE-2024-49868   CVE-2024-49895   CVE-2024-49900   CVE-2024-49902   CVE-2024-49903   CVE-2024-49911   CVE-2024-49918   CVE-2024-49919   CVE-2024-49927   CVE-2024-49965   CVE-2024-49969   CVE-2024-49974   CVE-2024-49976   CVE-2024-49985   CVE-2024-50007   CVE-2024-50012   CVE-2024-50046   CVE-2024-50049   CVE-2024-50057   CVE-2024-50065  

  • 详细介绍

1. 漏洞描述

   

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

安全修复:

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

ntb: intel: 修复debugfs_create_dir()的NULL与IS_ERR()错误
debugfs_create_dir()函数返回错误指针而非NULL,因此应使用IS_ERR()进行检查。(CVE-2023-52917)

在Linux内核中,以下漏洞已被修复:
media: pci: cx23885: 检查cx23885_vdev_init()返回值
cx23885_vdev_init()可能返回NULL指针,但该指针在下一行未经检查就被使用。添加NULL指针检查并在出现NULL时跳转到错误处理流程。(CVE-2023-52918)

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

btrfs: 确保所有元数据块都设置WRITTEN标志
我们之前会在启用完整性检查时调用btrfs_check_leaf(),这意味着只有设置了WRITTEN标志的叶子才能运行扩展检查。这存在检查漏洞,因为磁盘上可能存在WRITTEN未设置的损坏叶子,导致无法运行关键的指针验证检查。

自732fab95abe2("btrfs: check-integrity: remove CONFIG_BTRFS_FS_CHECK_INTEGRITY option")起,我们不再从btrfs_mark_buffer_dirty()调用btrfs_check_leaf(),因此只会在写入块(已设置WRITTEN)或读取块(应设置WRITTEN)时调用它。

添加检查确保WRITTEN被正确设置,并确保__btrfs_check_leaf()始终执行项目检查。这将保护我们免受WRITTEN标志被破坏的文件系统影响。

该问题出现在人为修改WRITTEN位的镜像上,KASAN报告了EB访问器的越界访问。示例是EB末尾的目录项。

[详细错误日志和调用栈...](CVE-2024-35949)

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

Bluetooth: ISO: 修复未验证setsockopt用户输入
在复制数据前检查用户输入长度。(CVE-2024-35964)

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

iommu/arm-smmu: 在nvidia_smmu_context_fault()中使用正确类型
由于函数指针间接调用导致该问题被遗漏。

nvidia_smmu_context_fault()也被安装为irq函数,且'void *'被改为struct arm_smmu_domain。由于iommu_domain嵌入在非零偏移处,这导致nvidia_smmu_context_fault()计算错误偏移。修复类型问题。
在Linux内核中,已修复以下漏洞:
text

drm/nouveau: prime: 修复引用计数下溢问题

在未初始化nouveau_bo(及其背后的ttm_bo)的情况下调用nouveau_bo_ref()会导致引用计数下溢。

在drm_gem_object_init()的回滚路径中,不再调用nouveau_bo_ref(),而是手动清理资源。

(摘选自提交1b93f3e89d03cfc576636e195466a0d728ad8de5)(CVE-2024-43867)

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

devres: 修复由驱动API devm_free_percpu()引起的内存泄漏

使用驱动API devm_free_percpu()释放由devm_alloc_percpu()分配的内存时会导致内存泄漏,通过在devm_free_percpu()中使用devres_release()替代devres_destroy()修复此问题。(CVE-2024-43871)

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

drm/msm/dpu: 若dpu_format_populate_layout失败则清理FB

如果dpu_format_populate_layout()失败,FB会被准备但未清理。这将导致GEM对象的pin_count泄漏,并在DRM文件关闭时产生错误信息:

msm_obj->pin_count
WARNING: CPU: 2 PID: 569 at drivers/gpu/drm/msm/msm_gem.c:121 update_lru_locked+0xc4/0xcc
[...]
调用跟踪:
update_lru_locked+0xc4/0xcc
put_pages+0xac/0x100
msm_gem_free_object+0x138/0x180
drm_gem_object_free+0x1c/0x30
drm_gem_object_handle_put_unlocked+0x108/0x10c
drm_gem_object_release_handle+0x58/0x70
idr_for_each+0x68/0xec
drm_gem_release+0x28/0x40
drm_file_free+0x174/0x234
drm_release+0xb0/0x160
__fput+0xc0/0x2c8
__fput_sync+0x50/0x5c
__arm64_sys_close+0x38/0x7c
invoke_syscall+0x48/0x118
el0_svc_common.constprop.0+0x40/0xe0
do_el0_svc+0x1c/0x28
el0_svc+0x4c/0x120
el0t_64_sync_handler+0x100/0x12c
el0t_64_sync+0x190/0x194
中断事件标记:129818
hardirqs最后启用于(129817):[<ffffa5f6d953fcc0>] console_unlock+0x118/0x124
hardirqs最后禁用于(129818):[<ffffa5f6da7dcf04>] el1_dbg+0x24/0x8c
softirqs最后启用于(129808):[<ffffa5f6d94afc18>] handle_softirqs+0x4c8/0x4e8
softirqs最后禁用于(129785):[<ffffa5f6d94105e4>] __do_softirq+0x14/0x20

补丁链接:https://patchwork.freedesktop.org/patch/600714/(CVE-2024-44982)

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

net: ethernet: mtk_wed: 修复mtk_wed_setup_tc_block_cb()中的释放后使用恐慌

当一个频段上有多个ap接口且启用WED时,关闭接口会导致MT798X上的内核恐慌。

先前,cb_priv在mtk_wed_setup_tc_block()中被释放但未标记为NULL,且mtk_wed_setup_tc_block_cb()也未检查该值。

在mtk_wed_setup_tc_block()中释放cb_priv后将其赋值为NULL,并在mtk_wed_setup_tc_block_cb()中检查NULL。

----------
无法处理内核分页请求,虚拟地址0072460bca32b4f5
调用跟踪:
mtk_wed_setup_tc_block_cb+0x4/0x38
0xffffffc0794084bc
tcf_block_playback_offloads+0x70/0x1e8
tcf_block_unbind+0x6c/0xc8
...
---------(CVE-2024-44997)

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

usb: dwc3: core: 防止USB核心访问无效事件缓冲区地址

此提交解决了在运行时挂起期间USB核心可能访问无效事件缓冲区地址的问题,该问题可能导致Exynos平台上的SMMU故障和其他内存问题。问题源于以下序列:
1. 在dwc3_gadget_suspend中,当通过软件清除运行/停止位后,将USB核心移至停止状态时可能出现超时。
2. 在dwc3_core_exit中,无论USB核心状态如何,事件缓冲区都会被清除,如果USB核心尝试访问事件缓冲区地址,则可能导致SMMU故障和其他内存问题。

为防止Exynos平台上的此硬件问题,本提交确保在运行时挂起期间,当USB核心处于活动状态时,不会通过软件清除事件缓冲区地址,方法是在清除缓冲区地址之前检查其状态。(CVE-2024-46675)

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

gtp: 修复潜在的NULL指针解引用

当sockfd_lookup()失败时,gtp_encap_enable_socket()返回NULL指针,但其调用者仅检查错误指针,因此忽略了NULL指针情况。

通过返回带有sockfd_lookup()错误代码的错误指针来修复此问题。

(我在代码审查期间发现了此错误。)(CVE-2024-46677)

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

drm/amdgpu: 修复df_v1_7_channel_number的越界读取

检查fb_channel_number范围以避免数组越界读取错误(CVE-2024-46724)

2. 影响范围

cve名称 产品 组件 是否受影响
CVE-2023-52917 V6 kernel Fixed
CVE-2023-52918 V6 kernel Fixed
CVE-2024-35949 V6 kernel Fixed
CVE-2024-35964 V6 kernel Fixed
CVE-2024-36884 V6 kernel Fixed
CVE-2024-42301 V6 kernel Fixed
CVE-2024-43858 V6 kernel Fixed
CVE-2024-43867 V6 kernel Fixed
CVE-2024-43871 V6 kernel Fixed
CVE-2024-44982 V6 kernel Fixed
CVE-2024-44997 V6 kernel Fixed
CVE-2024-46675 V6 kernel Fixed
CVE-2024-46677 V6 kernel Fixed
CVE-2024-46724 V6 kernel Fixed
CVE-2024-46749 V6 kernel Fixed
CVE-2024-46757 V6 kernel Fixed
CVE-2024-46775 V6 kernel Fixed
CVE-2024-46782 V6 kernel Fixed
CVE-2024-46802 V6 kernel Fixed
CVE-2024-46853 V6 kernel Fixed
CVE-2024-46871 V6 kernel Fixed
CVE-2024-47659 V6 kernel Fixed
CVE-2024-47660 V6 kernel Fixed
CVE-2024-47661 V6 kernel Fixed
CVE-2024-47667 V6 kernel Fixed
CVE-2024-47681 V6 kernel Fixed
CVE-2024-47683 V6 kernel Fixed
CVE-2024-47684 V6 kernel Fixed
CVE-2024-47685 V6 kernel Fixed
CVE-2024-47689 V6 kernel Fixed
CVE-2024-47692 V6 kernel Fixed
CVE-2024-47695 V6 kernel Fixed
CVE-2024-47698 V6 kernel Fixed
CVE-2024-47709 V6 kernel Fixed
CVE-2024-47710 V6 kernel Fixed
CVE-2024-47720 V6 kernel Fixed
CVE-2024-47737 V6 kernel Fixed
CVE-2024-47743 V6 kernel Fixed
CVE-2024-47757 V6 kernel Fixed
CVE-2024-49855 V6 kernel Fixed
CVE-2024-49866 V6 kernel Fixed
CVE-2024-49867 V6 kernel Fixed
CVE-2024-49868 V6 kernel Fixed
CVE-2024-49895 V6 kernel Fixed
CVE-2024-49900 V6 kernel Fixed
CVE-2024-49902 V6 kernel Fixed
CVE-2024-49903 V6 kernel Fixed
CVE-2024-49911 V6 kernel Fixed
CVE-2024-49918 V6 kernel Fixed
CVE-2024-49919 V6 kernel Fixed
CVE-2024-49927 V6 kernel Fixed
CVE-2024-49965 V6 kernel Fixed
CVE-2024-49969 V6 kernel Fixed
CVE-2024-49974 V6 kernel Fixed
CVE-2024-49976 V6 kernel Fixed
CVE-2024-49985 V6 kernel Fixed
CVE-2024-50007 V6 kernel Fixed
CVE-2024-50012 V6 kernel Fixed
CVE-2024-50046 V6 kernel Fixed
CVE-2024-50049 V6 kernel Fixed
CVE-2024-50057 V6 kernel Fixed
CVE-2024-50065 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-2581 下一篇:KylinSec-SA-2025-2586