摘要:
kernel security update
安全等级: High
公告ID: KylinSec-SA-2024-4990
发布日期: 2025年7月19日
关联CVE: CVE-2024-46719 CVE-2024-46794 CVE-2024-46803 CVE-2024-46807 CVE-2024-47663 CVE-2024-47668 CVE-2024-47673 CVE-2024-47693 CVE-2024-47702 CVE-2024-47726 CVE-2024-49920 CVE-2024-50082 CVE-2024-50095 CVE-2024-50120 CVE-2024-50131 CVE-2024-50145 CVE-2024-50152 CVE-2024-50156 CVE-2024-50184 CVE-2024-50186
Linux内核,即操作系统核心本身。
安全修复:
在Linux内核中,以下漏洞已被修复:
usb: typec: ucsi: 修复跟踪中的空指针解引用
ucsi_register_altmode检查alt指针是否为IS_ERR,并将NULL视为有效。当未启用CONFIG_TYPEC_DP_ALTMODE时,ucsi_register_displayport返回NULL,导致跟踪中出现空指针解引用。与其返回NULL,不如在未启用CONFIG_TYPEC_DP_ALTMODE时调用typec_port_register_altmode以注册DisplayPort备用模式作为不可控模式。(CVE-2024-46719)
在Linux内核中,以下漏洞已被修复:
x86/tdx: 修复mmio_read()中的数据泄漏
mmio_read()函数通过TDVMCALL从VMM获取MMIO数据地址。Sean注意到mmio_read()无意中将栈上初始化变量(val)的值暴露给VMM。该变量仅作为输出值使用,最初无需传递给VMM。不要将*val的原始值发送给VMM。[dhansen: 澄清'val'的用途。](CVE-2024-46794)
在Linux内核中,以下漏洞已被修复:
drm/amdkfd: 在写入dbg_ev_file前检查调试陷阱是否启用
在中断上下文中,写入dbg_ev_file将由工作队列执行。这会导致在debug_trap_disable后执行写入dbg_ev_file,从而引发空指针访问。v2: 在将dbg_ev_file设置为NULL之前取消工作"debug_event_workarea"。(CVE-2024-46803)
在Linux内核中,以下漏洞已被修复:
drm/amd/amdgpu: 检查tbo资源指针
验证tbo资源指针,若为NULL则跳过。(CVE-2024-46807)
在Linux内核中,以下漏洞已被修复:
staging: iio: frequency: ad9834: 验证频率参数值
在ad9834_write_frequency()中,clk_get_rate()可能返回0。这种情况下调用ad9834_calc_freqreg()会导致除以零。检查'if (fout > (clk_freq / 2))'在'fout'为0时不起保护作用。ad9834_write_frequency()从ad9834_write()调用,其中fout取自文本缓冲区,可能包含任何值。修改参数检查。由Linux验证中心(linuxtesting.org)通过SVACE发现。(CVE-2024-47663)
在Linux内核中,以下漏洞已被修复:
lib/generic-radix-tree.c: 修复__genradix_ptr_alloc()中的罕见竞争
如果需要增加树深度,分配新节点,然后与在我们之前增加树深度的另一个线程竞争,我们仍将有一个预分配的节点可能稍后使用。如果我们将该节点用于新的非根节点,它仍将包含指向旧根的指针而不是被清零 - 通过在cmpxchg失败路径中清零来修复此问题。(CVE-2024-47668)
在Linux内核中,以下漏洞已被修复:
wifi: iwlwifi: mvm: 当固件停止时暂停TCM
不这样做将导致我们在固件未活动时向传输发送主机命令,从而触发警告。
bad state = 0
WARNING: CPU: 2 PID: 17434 at drivers/net/wireless/intel/iwlwifi/iwl-trans.c:115 iwl_trans_send_cmd+0x1cb/0x1e0 [iwlwifi]
RIP: 0010:iwl_trans_send_cmd+0x1cb/0x1e0 [iwlwifi]
Call Trace:
<TASK>
iwl_mvm_send_cmd+0x40/0xc0 [iwlmvm]
iwl_mvm_config_scan+0x198/0x260 [iwlmvm]
iwl_mvm_recalc_tcm+0x730/0x11d0 [iwlmvm]
iwl_mvm_tcm_work+0x1d/0x30 [iwlmvm]
process_one_work+0x29e/0x640
worker_thread+0x2df/0x690
? rescuer_thread+0x540/0x540
kthread+0x192/0x1e0
? set_kthread_struct+0x90/0x90
ret_from_fork+0x22/0x30(CVE-2024-47673)
在Linux内核中,以下漏洞已被修复:
IB/core: 修复ib_cache_setup_one错误流清理
当ib_cache_update返回错误时,我们立即退出ib_cache_setup_one而没有适当清理,尽管在此之前我们已经成功执行了gid_table_setup_one,这会导致内核警告如下。在返回错误之前使用gid_table_cleanup_one进行适当清理以修复问题。
WARNING: CPU: 4 PID: 922 at drivers/infiniband/core/cache.c:806 gid_table_release_one+0x181/0x1a0
...(CVE-2024-47693)
在Linux内核中,以下漏洞已被修复:
bpf: 验证失败数据包data/data_end/data_meta的符号扩展
syzbot报告了一个由于提交1f1e864b6555("bpf: 处理上下文成员访问的符号扩展")导致的内核崩溃。原因是由于对数据包data/data_end/data_meta uapi字段的32位加载进行符号扩展。修复方法是在is_valid_access()回调函数中添加对数据包data/data_end/data_meta访问的额外检查。如果这些访问带有符号扩展,验证将失败。[1] https://lore.kernel.org/bpf/000000000000c90eee061d236d37@google.com/(CVE-2024-47702)
在Linux内核中,以下漏洞已被修复:
f2fs: 修复等待dio完成
在块移除之前应等待所有现有的dio写入IO,否则先前的直接写入IO可能会覆盖可能被其他inode重用的块中的数据。(CVE-2024-47726)
在Linux内核中,以下漏洞已被修复:
drm/amd/display: 多次使用前检查空指针
[WHAT & HOW] 指针如stream_enc和dc->bw_vbios在同一函数中先前已被检查是否为null,因此Coverity警告"暗示stream_enc和dc->bw_vbios可能为null"。它们在后续代码中被多次使用,需要被检查。这修复了Coverity报告的10个FORWARD_NULL问题。(CVE-2024-49920)
在Linux内核中,以下漏洞已被修复:
blk-rq-qos: 修复rq_qos_wait与rq_qos_wake_function竞争导致的崩溃
我们看到来自rq_qos_wake_function的崩溃如下:
BUG: unable to handle page fault for address: ffffafe180a40084
#PF: supervisor write access in kernel mode
#PF: error_code(0x0002) - not-present page
PGD 100000067 P4D 100000067 PUD 10027c067 PMD 10115d067 PTE 0
Oops: Oops: 0002 [#1] PREEMPT SMP PTI
CPU: 17 UID: 0 PID: 0 Comm: swapper/17 Not tainted 6.12.0-rc3-00013-geca631b8fe80 #11
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.0-0-gd239552ce722-prebuilt.qemu.org 04/01/2014
RIP: 0010:_raw_spin_lock_irqsave+0x1d/0x40
...
问题在于rq_qos_wake_function()在删除等待队列条目后访问它。修复方法是交换顺序。我们还需要使用list_del_init_careful()以匹配finish_wait()中的list_empty_careful()。(CVE-2024-50082)
cve名称 | 产品 | 组件 | 是否受影响 |
---|---|---|---|
CVE-2024-46719 | V6 | kernel | Fixed |
CVE-2024-46794 | V6 | kernel | Fixed |
CVE-2024-46803 | V6 | kernel | Fixed |
CVE-2024-46807 | V6 | kernel | Fixed |
CVE-2024-47663 | V6 | kernel | Fixed |
CVE-2024-47668 | V6 | kernel | Fixed |
CVE-2024-47673 | V6 | kernel | Fixed |
CVE-2024-47693 | V6 | kernel | Fixed |
CVE-2024-47702 | V6 | kernel | Fixed |
CVE-2024-47726 | V6 | kernel | Fixed |
CVE-2024-49920 | V6 | kernel | Fixed |
CVE-2024-50082 | V6 | kernel | Fixed |
CVE-2024-50095 | V6 | kernel | Fixed |
CVE-2024-50120 | V6 | kernel | Fixed |
CVE-2024-50131 | V6 | kernel | Fixed |
CVE-2024-50145 | V6 | kernel | Fixed |
CVE-2024-50152 | V6 | kernel | Fixed |
CVE-2024-50156 | V6 | kernel | Fixed |
CVE-2024-50184 | V6 | kernel | Fixed |
CVE-2024-50186 | 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 包名