摘要:
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
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)
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 |
软件名称 | 架构 | 版本号 |
---|---|---|
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 包名