• 公告ID (KylinSec-SA-2025-2722)

摘要:

kernel security update

安全等级: High

公告ID: KylinSec-SA-2025-2722

发布日期: 2025年6月11日

关联CVE: CVE-2025-21935   CVE-2023-52935   CVE-2025-21781   CVE-2025-21780   CVE-2023-53010   CVE-2025-22035   CVE-2025-21877   CVE-2025-21898   CVE-2025-21993  

  • 详细介绍

1. 漏洞描述

   

The Linux Kernel, the operating system core itself.

Security Fix(es):

In the Linux kernel, the following vulnerability has been resolved:

mm/khugepaged: fix ->anon_vma race

If an ->anon_vma is attached to the VMA, collapse_and_free_pmd() requires
it to be locked.

Page table traversal is allowed under any one of the mmap lock, the
anon_vma lock (if the VMA is associated with an anon_vma), and the
mapping lock (if the VMA is associated with a mapping); and so to be
able to remove page tables, we must hold all three of them.
retract_page_tables() bails out if an ->anon_vma is attached, but does
this check before holding the mmap lock (as the comment above the check
explains).

If we racily merged an existing ->anon_vma (shared with a child
process) from a neighboring VMA, subsequent rmap traversals on pages
belonging to the child will be able to see the page tables that we are
concurrently removing while assuming that nothing else can access them.

Repeat the ->anon_vma check once we hold the mmap lock to ensure that
there really is no concurrent page table access.

Hitting this bug causes a lockdep warning in collapse_and_free_pmd(),
in the line "lockdep_assert_held_write(&vma->anon_vma->root->rwsem)".
It can also lead to use-after-free access.(CVE-2023-52935)

In the Linux kernel, the following vulnerability has been resolved:

bnxt: Do not read past the end of test names

Test names were being concatenated based on a offset beyond the end of
the first name, which tripped the buffer overflow detection logic:

detected buffer overflow in strnlen
[...]
Call Trace:
bnxt_ethtool_init.cold+0x18/0x18

Refactor struct hwrm_selftest_qlist_output to use an actual array,
and adjust the concatenation to use snprintf() rather than a series of
strncat() calls.(CVE-2023-53010)

In the Linux kernel, the following vulnerability has been resolved:

drm/amdgpu: avoid buffer overflow attach in smu_sys_set_pp_table()

It malicious user provides a small pptable through sysfs and then
a bigger pptable, it may cause buffer overflow attack in function
smu_sys_set_pp_table().(CVE-2025-21780)

In the Linux kernel, the following vulnerability has been resolved:

batman-adv: fix panic during interface removal

Reference counting is used to ensure that
batadv_hardif_neigh_node and batadv_hard_iface
are not freed before/during
batadv_v_elp_throughput_metric_update work is
finished.

But there isn't a guarantee that the hard if will
remain associated with a soft interface up until
the work is finished.

This fixes a crash triggered by reboot that looks
like this:

Call trace:
batadv_v_mesh_free+0xd0/0x4dc [batman_adv]
batadv_v_elp_throughput_metric_update+0x1c/0xa4
process_one_work+0x178/0x398
worker_thread+0x2e8/0x4d0
kthread+0xd8/0xdc
ret_from_fork+0x10/0x20

(the batadv_v_mesh_free call is misleading,
and does not actually happen)

I was able to make the issue happen more reliably
by changing hardif_neigh->bat_v.metric_work work
to be delayed work. This allowed me to track down
and confirm the fix.

[sven@narfation.org: prevent entering batadv_v_elp_get_throughput without
soft_iface](CVE-2025-21781)

In the Linux kernel, the following vulnerability has been resolved:

usbnet: gl620a: fix endpoint checking in genelink_bind()

Syzbot reports [1] a warning in usb_submit_urb() triggered by
inconsistencies between expected and actually present endpoints
in gl620a driver. Since genelink_bind() does not properly
verify whether specified eps are in fact provided by the device,
in this case, an artificially manufactured one, one may get a
mismatch.

Fix the issue by resorting to a usbnet utility function
usbnet_get_endpoints(), usually reserved for this very problem.
Check for endpoints and return early before proceeding further if
any are missing.

[1] Syzbot report:
usb 5-1: Manufacturer: syz
usb 5-1: SerialNumber: syz
usb 5-1: config 0 descriptor??
gl620a 5-1:0.23 usb0: register 'gl620a' at usb-dummy_hcd.0-1...
------------[ cut here ]------------
usb 5-1: BOGUS urb xfer, pipe 3 != type 1
WARNING: CPU: 2 PID: 1841 at drivers/usb/core/urb.c:503 usb_submit_urb+0xe4b/0x1730 drivers/usb/core/urb.c:503
Modules linked in:
CPU: 2 UID: 0 PID: 1841 Comm: kworker/2:2 Not tainted 6.12.0-syzkaller-07834-g06afb0f36106 #0
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014
Workqueue: mld mld_ifc_work
RIP: 0010:usb_submit_urb+0xe4b/0x1730 drivers/usb/core/urb.c:503
...
Call Trace:
<TASK>
usbnet_start_xmit+0x6be/0x2780 drivers/net/usb/usbnet.c:1467
__netdev_start_xmit include/linux/netdevice.h:5002 [inline]
netdev_start_xmit include/linux/netdevice.h:5011 [inline]
xmit_one net/core/dev.c:3590 [inline]
dev_hard_start_xmit+0x9a/0x7b0 net/core/dev.c:3606
sch_direct_xmit+0x1ae/0xc30 net/sched/sch_generic.c:343
__dev_xmit_skb net/core/dev.c:3827 [inline]
__dev_queue_xmit+0x13d4/0x43e0 net/core/dev.c:4400
dev_queue_xmit include/linux/netdevice.h:3168 [inline]
neigh_resolve_output net/core/neighbour.c:1514 [inline]
neigh_resolve_output+0x5bc/0x950 net/core/neighbour.c:1494
neigh_output include/net/neighbour.h:539 [inline]
ip6_finish_output2+0xb1b/0x2070 net/ipv6/ip6_output.c:141
__ip6_finish_output net/ipv6/ip6_output.c:215 [inline]
ip6_finish_output+0x3f9/0x1360 net/ipv6/ip6_output.c:226
NF_HOOK_COND include/linux/netfilter.h:303 [inline]
ip6_output+0x1f8/0x540 net/ipv6/ip6_output.c:247
dst_output include/net/dst.h:450 [inline]
NF_HOOK include/linux/netfilter.h:314 [inline]
NF_HOOK include/linux/netfilter.h:308 [inline]
mld_sendpack+0x9f0/0x11d0 net/ipv6/mcast.c:1819
mld_send_cr net/ipv6/mcast.c:2120 [inline]
mld_ifc_work+0x740/0xca0 net/ipv6/mcast.c:2651
process_one_work+0x9c5/0x1ba0 kernel/workqueue.c:3229
process_scheduled_works kernel/workqueue.c:3310 [inline]
worker_thread+0x6c8/0xf00 kernel/workqueue.c:3391
kthread+0x2c1/0x3a0 kernel/kthread.c:389
ret_from_fork+0x45/0x80 arch/x86/kernel/process.c:147
ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244
</TASK>(CVE-2025-21877)

In the Linux kernel, the following vulnerability has been resolved:

ftrace: Avoid potential division by zero in function_stat_show()

Check whether denominator expression x * (x - 1) * 1000 mod {2^32, 2^64}
produce zero and skip stddev computation in that case.

For now don't care about rec->counter * rec->counter overflow because
rec->time * rec->time overflow will likely happen earlier.(CVE-2025-21898)

In the Linux kernel, the following vulnerability has been resolved:

rapidio: add check for rio_add_net() in rio_scan_alloc_net()

The return value of rio_add_net() should be checked. If it fails,
put_device() should be called to free the memory and give up the reference
initialized in rio_add_net().(CVE-2025-21935)

In the Linux kernel, the following vulnerability has been resolved:

iscsi_ibft: Fix UBSAN shift-out-of-bounds warning in ibft_attr_show_nic()

When performing an iSCSI boot using IPv6, iscsistart still reads the
/sys/firmware/ibft/ethernetX/subnet-mask entry. Since the IPv6 prefix
length is 64, this causes the shift exponent to become negative,
triggering a UBSAN warning. As the concept of a subnet mask does not
apply to IPv6, the value is set to ~0 to suppress the warning message.(CVE-2025-21993)

In the Linux kernel, the following vulnerability has been resolved:

tracing: Fix use-after-free in print_graph_function_flags during tracer switching

Kairui reported a UAF issue in print_graph_function_flags() during
ftrace stress testing [1]. This issue can be reproduced if puting a
'mdelay(10)' after 'mutex_unlock(&trace_types_lock)' in s_start(),
and executing the following script:

$ echo function_graph > current_tracer
$ cat trace > /dev/null &
$ sleep 5 # Ensure the 'cat' reaches the 'mdelay(10)' point
$ echo timerlat > current_tracer

The root cause lies in the two calls to print_graph_function_flags
within print_trace_line during each s_show():

* One through 'iter->trace->print_line()';
* Another through 'event->funcs->trace()', which is hidden in
print_trace_fmt() before print_trace_line returns.

Tracer switching only updates the former, while the latter continues
to use the print_line function of the old tracer, which in the script
above is print_graph_function_flags.

Moreover, when switching from the 'function_graph' tracer to the
'timerlat' tracer, s_start only calls graph_trace_close of the
'function_graph' tracer to free 'iter->private', but does not set
it to NULL. This provides an opportunity for 'event->funcs->trace()'
to use an invalid 'iter->private'.

To fix this issue, set 'iter->private' to NULL immediately after
freeing it in graph_trace_close(), ensuring that an invalid pointer
is not passed to other tracers. Additionally, clean up the unnecessary
'iter->private = NULL' during each 'cat trace' when using wakeup and
irqsoff tracers.

[1] https://lore.kernel.org/all/20231112150030.84609-1-ryncsn@gmail.com/(CVE-2025-22035)

2. 影响范围

cve名称 产品 组件 是否受影响
CVE-2025-21935 KY3.5.3 kernel Fixed
CVE-2025-21935 KY3.5.2 kernel Fixed
CVE-2023-52935 KY3.5.3 kernel Fixed
CVE-2023-52935 KY3.5.2 kernel Fixed
CVE-2025-21781 KY3.5.3 kernel Fixed
CVE-2025-21781 KY3.5.2 kernel Fixed
CVE-2025-21780 KY3.5.3 kernel Fixed
CVE-2025-21780 KY3.5.2 kernel Fixed
CVE-2023-53010 KY3.5.3 kernel Fixed
CVE-2023-53010 KY3.5.2 kernel Fixed
CVE-2025-22035 KY3.5.3 kernel Fixed
CVE-2025-22035 KY3.5.2 kernel Fixed
CVE-2025-21877 KY3.5.3 kernel Fixed
CVE-2025-21877 KY3.5.2 kernel Fixed
CVE-2025-21898 KY3.5.3 kernel Fixed
CVE-2025-21898 KY3.5.2 kernel Fixed
CVE-2025-21993 KY3.5.3 kernel Fixed
CVE-2025-21993 KY3.5.2 kernel Fixed

3. 影响组件

    kernel

4. 修复版本

   

KY3.5.3

软件名称 架构 版本号
bpftool x86_64 5.10.0-236.0.0.rt62.63.ky3_5
kernel x86_64 5.10.0-216.0.0.115.kb9.ky3_5
kernel-devel x86_64 5.10.0-216.0.0.115.kb9.ky3_5
kernel-headers x86_64 5.10.0-216.0.0.115.kb9.ky3_5
kernel-source x86_64 5.10.0-216.0.0.115.kb9.ky3_5
kernel-tools x86_64 5.10.0-216.0.0.115.kb9.ky3_5
kernel-tools-devel x86_64 5.10.0-216.0.0.115.kb9.ky3_5
perf x86_64 5.10.0-236.0.0.rt62.63.ky3_5
python3-perf x86_64 5.10.0-236.0.0.rt62.63.ky3_5
bpftool aarch64 5.10.0-236.0.0.rt62.63.ky3_5
kernel aarch64 5.10.0-216.0.0.115.kb9.ky3_5
kernel-devel aarch64 5.10.0-216.0.0.115.kb9.ky3_5
kernel-headers aarch64 5.10.0-216.0.0.115.kb9.ky3_5
kernel-source aarch64 5.10.0-216.0.0.115.kb9.ky3_5
kernel-tools aarch64 5.10.0-216.0.0.115.kb9.ky3_5
kernel-tools-devel aarch64 5.10.0-216.0.0.115.kb9.ky3_5
perf aarch64 5.10.0-236.0.0.rt62.63.ky3_5
python3-perf aarch64 5.10.0-236.0.0.rt62.63.ky3_5

KY3.5.2

软件名称 架构 版本号
bpftool x86_64 5.10.0-216.0.0.115.kb13.ky3_5
kernel x86_64 5.10.0-216.0.0.115.kb13.ky3_5
kernel-devel x86_64 5.10.0-216.0.0.115.kb13.ky3_5
kernel-headers x86_64 5.10.0-216.0.0.115.kb13.ky3_5
kernel-source x86_64 5.10.0-216.0.0.115.kb13.ky3_5
kernel-tools x86_64 5.10.0-216.0.0.115.kb13.ky3_5
kernel-tools-devel x86_64 5.10.0-216.0.0.115.kb13.ky3_5
perf x86_64 5.10.0-216.0.0.115.kb13.ky3_5
python3-perf x86_64 5.10.0-216.0.0.115.kb13.ky3_5
bpftool aarch64 5.10.0-216.0.0.115.kb13.ky3_5
kernel aarch64 5.10.0-216.0.0.115.kb13.ky3_5
kernel-devel aarch64 5.10.0-216.0.0.115.kb13.ky3_5
kernel-headers aarch64 5.10.0-216.0.0.115.kb13.ky3_5
kernel-source aarch64 5.10.0-216.0.0.115.kb13.ky3_5
kernel-tools aarch64 5.10.0-216.0.0.115.kb13.ky3_5
kernel-tools-devel aarch64 5.10.0-216.0.0.115.kb13.ky3_5
perf aarch64 5.10.0-216.0.0.115.kb13.ky3_5
python3-perf aarch64 5.10.0-216.0.0.115.kb13.ky3_5

5. 修复方法


方法一:下载安装包进行升级安装
1、通过下载链接下载需要升级的升级包保存,如 xxx.rpm
2、通过rpm命令升级,如 rpm -Uvh xxx.rpm

方法二:通过软件源进行升级安装
1、保持能够连接上互联网
2、通过yum命令升级指定的包,如 yum install 包名

6. 下载链接

   

KY3.5.3:

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   

KY3.5.2:

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-2721 下一篇:KylinSec-SA-2025-2533