Oracle Linux 9:内核 (ELSA-2024-2394)

critical Nessus 插件 ID 195036

简介

远程 Oracle Linux 主机缺少一个或多个安全更新。

描述

远程 Oracle Linux 9 主机上安装的程序包受到 ELSA-2024-2394 公告中提及的多个漏洞的影响。

- 在 Linux 内核 6.2.3 之前版本的 lib/kobject.c 中发现问题。攻击者可利用根访问权限触发争用条件,进而导致 fill_kobj_path 越界写入。(CVE-2023-45863)

- 在 Linux 内核 6.2 的 drivers/bluetooth/hci_ldisc.c 中发现一个问题。在 hci_uart_tty_ioctl 中,HCIUARTSETPROTO 和 HCIUARTGETPROTO 之间存在竞争条件。HCI_UART_PROTO_SET 在设置 hu->proto 之前设置。空指针取消引用可能会发生。(CVE-2023-31083)

- 在 Linux 内核的 XFRM 子系统中发现一个缺陷。该特定缺陷存在于处理状态过滤器的过程中,可能导致读取范围超出已分配缓冲区的末尾。本地特权 (CAP_NET_ADMIN) 攻击者可利用此缺陷触发越界读取,从而可能导致信息泄露。(CVE-2023-39194)

- 在 6.4.5 之前的 Linux 内核中,drivers/gpu/drm/drm_atomic.c 在无阻塞原子提交和驱动程序卸载之间有争用条件期间存在释放后使用。(CVE-2023-51043)

- 在 Linux 内核 hugetlbfs (HugeTLB 页面) 功能的 hugetlbfs_fill_super 函数中发现空指针取消引用缺陷。本地用户可能利用此问题造成系统崩溃,或可能提升其在系统中的权限。(CVE-2024-0841)

- 在 Linux 内核中,以下漏洞已修复:mlxsw:spectrum_acl_tcam:修复堆栈损坏 首次将 tc 筛选条件添加到 net 设备时,相应的本地端口会绑定到设备中的 ACL 组。该组包含 ACL 的列表。反过来,每个 ACL 都指向存储筛选条件的不同 TCAM 区域。在转发期间,系统会按顺序评估 ACL,直到找到匹配项。之所以将筛选条件放置在不同区域中,其中一项原因在于,只有以优先级递减及交替顺序添加筛选条件,两个连续的筛选条件才永远不会因其密钥用法而适合放入同一区域中。在 Spectrum-2 和更新的 ASIC 中,固件开始报告一个组中的最大 ACL 数量是否超过 16,但是配置 ACL 组 (PAGT) 的寄存器的布局未被更新以解决该问题。因此,如果出现某个组中需要 16 个以上 ACL 的极少情况,可能会造成堆栈损坏 [1]。如需解决此问题,请将最大 ACL 组大小限制为固件报告的大小与 PAGT 寄存器适合的最大 ACL 数量之间的最小值。添加测试,以确保计算机在遇到此情况时不会崩溃。[1] 内核错误 - 未同步:stack-protector:内核堆栈在以下位置发生损坏:mlxsw_sp_acl_tcam_group_update+0x116/0x120 [...] dump_stack_lvl+0x36/0x50 panic+0x305/0x330 __stack_chk_fail+0x15/0x20 mlxsw_sp_acl_tcam_group_update+0x116/0x120 mlxsw_sp_acl_tcam_group_region_attach+0x69/0x110 mlxsw_sp_acl_tcam_vchunk_get+0x492/0xa20 mlxsw_sp_acl_tcam_ventry_add+0x25/0xe0 mlxsw_sp_acl_rule_add+0x47/0x240 mlxsw_sp_flower_replace+0x1a9/0x1d0 tc_setup_cb_add+0xdc/0x1c0 fl_hw_replace_filter+0x146/0x1f0 fl_change+0xc17/0x1360 tc_new_tfilter+0x472/0xb90 rtnetlink_rcv_msg+0x313/0x3b0 netlink_rcv_skb+0x58/0x100 netlink_unicast+0x244/0x390 netlink_sendmsg+0x1e4/0x440 ____sys_sendmsg+0x164/0x260 ___sys_sendmsg+0x9a/0xe0 __sys_sendmsg+0x7a/0xc0 do_syscall_64+0x40/0xe0 entry_SYSCALL_64_after_hwframe+0x63/0x6b (CVE-2024-26586)

- 拒绝原因:此 CVE ID 已被其 CVE Numbering Authority 拒绝或撤回。
(CVE-2024-26609)

- 在 Linux 内核中,以下漏洞已修复:mm/sparsemem:修复访问 memory_section->usage 时发生的争用 在设备内存区域内的 PFN 上发现下方的争用,其中 PFN 的系统内存配置为 [ZONE_NORMAL ZONE_DEVICE ZONE_NORMAL]。由于正常的区域开始和结束 pfn 也包含设备内存 PFN,因此即使在 NOP 中结束,也会在设备内存 PFN 上尝试触发的压缩(因为 pfn_to_online_page() 会为 ZONE_DEVICE 内存部分返回空)。当从其他核心删除 ZONE_DEVICE 区域(含有相关的 PFN)的区段映射时,当前正在其中执行的压缩操作会导致已启用 CONFIG_SPASEMEM_VMEMAP 的内核崩溃。请参查看 [1] 中的崩溃日志。
compact_zone() memunmap_pages ------------- --------------- __pageblock_pfn_to_page ...... (a)pfn_valid():
valid_section()//return true (b)__remove_pages()-> sparse_remove_section()-> section_deactivate():[释放数组 ms->usage 并设置 ms->usage = NULL] pfn_section_valid() [访问状态为 NULL 的 ms->usage] 注意:
从上文可以看到,启用 SPASEMEM_VMEMAP 时,pfn_valid()/pfn_section_valid() 与区段停用之间才会发生争用。提交 b943f045a9af(mm/sparse:通过 pfn_section_valid 检查解决内存崩溃)尝试通过清除 SECTION_HAS_MEM_MAP 来解决相同的问题,并期望 valid_section() 返回 false,这样 ms->usage 就不会被访问。通过以下步骤解决此问题:a) 释放 ->usage 之前清除 SECTION_HAS_MEM_MAP。b) SECTION_HAS_MEM_MAP 被清除后,受 RCU 保护的读取端关键部分将返回 NULL 或可以成功访问 ->usage。c) 使用 kfree_rcu() 释放 ->usage 并设置 ms->usage = NULL。之后,系统不会尝试访问 ->usage,因为 SECTION_HAS_MEM_MAP 已清除,所以 valid_section() 会返回 false。感谢 David/Pavan 提供有关此补丁的建议。[1] https://lore.kernel.org/linux-mm/994410bb-89aa-d987-1f50-f514903c55aa@quicinc.com/ 在 Snapdragon SoC 上,由于上述 PFN 的内存配置为 [ZONE_NORMAL ZONE_DEVICE ZONE_NORMAL],我们在 Device Farm 中进行测试时,每天都可能会发现大量问题。以下是有关此特定问题的日志。尽管以下日志未直接指向 pfn_section_valid(){ ms->usage;},当我们在 T32 lauterbach 工具上加载此转储时,却指向的该对象。[ 540.578056] 无法处理虚拟地址 0000000000000000 上的内核空指针取消引用 [ 540.578068] 内存中止信息[ 540.578070] ESR = 0x0000000096000005 [ 540.578073] EC = 0x25:DABT(当前 EL),IL = 32 位 [ 540.578077] SET = 0,FnV = 0 [ 540.578080] EA = 0,S1PTW = 0 [540.578082] FSC = 0x05:1 级转换错误 [ 540.578085] 数据中止信息:[ 540.578086] ISV = 0,ISS = 0x00000005 [ 540.578088] CM = 0,WnR = 0 [ 540.579431] 粘贴:82400005 (Nzcv daif +PAN -UAO +TCO
-DIT -SSBSBTYPE=--) [ 540.579436] pc:__pageblock_pfn_to_page+0x6c/0x14c [ 540.579454] lr:
compact_zone+0x994/0x1058 [ 540.579460] sp:ffffffc03579b510 [ 540.579463] x29:ffffffc03579b510 x28:
0000000000235800 x27:000000000000000c [ 540.579470] x26:0000000000235c00 x25:0000000000000068 x24:ffffffc03579b640 [ 540.579477] x23:0000000000000001 x22:ffffffc03579b660 x21:0000000000000000 [540.579483] x20:0000000000235bff x19:ffffffdebf7e3940 x18:ffffffdebf66d140 [ 540.579489] x17:
00000000739ba063 x16:00000000739ba063 x15:00000000009f4bff [ 540.579495] x14:0000008000000000 x13:
0000000000000000 x12:0000000000000001 [ 540.579501] x11:0000000000000000 x10:0000000000000000 x9:ffffff897d2cd440 [ 540.579507] x8:0000000000000000 x7:0000000000000000 x6:ffffffc03579b5b4 [540.579512] x5:0000000000027f25 x4:ffffffc03579b5b8 x3:0000000000000 ---truncated--- (CVE-2023-52489)

- 在 Linux 内核中解决了下列漏洞:HID:sony:修复 sony_probe() 中可能的内存泄漏。如果在成功调用 usb_alloc_urb() 后发生错误,应调用 usb_free_urb()。 (CVE-2023-52529)

- 在 Linux 内核中,以下漏洞已修复:net/sched: act_ct:修复 ooo frags 上的 skb 泄漏和崩溃 act_ct 在碎片整理之前添加了 skb->users。如果 frag 依序到达,最后一个 frag 的引用会在以下位置重置:非直接引用的 inet_frag_reasm_prepare skb_morph。然而,如果 frags 无序到达,没有人会 unref 最后的 frag,并且所有 frags 都会被泄露。情况会更糟糕,因为同时克隆和共享 skb 时,启动数据包捕获可导致崩溃[0]。通过在整理碎片之前移除 skb_get() 来解决问题。如果碎片整理失败或正在进行中,act_ct 会返回 TC_ACT_CONSUMED。[0]:[ 843.804823]------------[在此处剪切]------------ [843.809659] net/core/skbuff.c:2091 中的内核缺陷![843.814516] 无效的操作码:0000 [#1] PREEMPT SMP [843.819296] CPU:7 PID:0 命令:swapper/7 Kdump:已加载 已感染:GS 6.7.0-rc3 #2 [843.824107] 硬件名称:XFUSION 1288H V6/BC13MBSBD,BIOS 1.29 11/25/2022 [ 843.828953] RIP:0010:pskb_expand_head+0x2ac/0x300 [843.833805] 代码:8b 70 28 48 85 f6 74 82 48 83 c6 08 bf 01 00 00 00 e8 38 bd ff ff 8b 83 c0 00 00 00 48 03 83 c8 00 00 00 e9 62 ff ff ff 0f 0b <0f> 0b e8 8d d0 ff ff e9 b3 fd ff ff 81 7c 24 14 40 01 00 00 4c 89 [843.843698] RSP:0018:ffffc9000cce07c0 EFLAGS:00010202 [ 843.848524] RAX:0000000000000002 RBX:
ffff88811a211d00 RCX:0000000000000820 [843.853299] RDX:0000000000000640 RSI:0000000000000000 RDI:
ffff88811a211d00 [843.857974] RBP:ffff888127d39518 R08:00000000bee97314 R09:0000000000000000 [843.862584] R10:0000000000000000 R11:ffff8881109f0000 R12:0000000000000880 [843.867147] R13:
ffff888127d39580 R14:0000000000000640 R15:ffff888170f7b900 [843.871680] FS:0000000000000000(0000) GS:ffff889ffffc0000(0000) knlGS:0000000000000000 [ 843.876242] CS:0010 DS:0000 ES:0000 CR0:
0000000080050033 [ 843.880778] CR2:00007fa42affcfb8 CR3:000000011433a002 CR4:0000000000770ef0 [843.885336] DR0:0000000000000000 DR1:0000000000000000 DR2:0000000000000000 [ 843.889809] DR3:
0000000000000000 DR6:00000000fffe0ff0 DR7:0000000000000400 [843.894229] PKRU:55555554 [843.898539] 调用跟踪:[843.902772] <IRQ> [843.906922] ? __die_body+0x1e/0x60 [ 843.911032] ? die+0x3c/0x60 [843.915037] ? do_trap+0xe2/0x110 [843.918911] ? pskb_expand_head+0x2ac/0x300 [ 843.922687] ? do_error_trap+0x65/0x80 [ 843.926342] ? pskb_expand_head+0x2ac/0x300 [843.929905] ? exc_invalid_op+0x50/0x60 [843.933398] ? pskb_expand_head+0x2ac/0x300 [843.936835] ? asm_exc_invalid_op+0x1a/0x20 [843.940226] ? pskb_expand_head+0x2ac/0x300 [843.943580] inet_frag_reasm_prepare+0xd1/0x240 [843.946904] ip_defrag+0x5d4/0x870 [843.950132] nf_ct_handle_fragments+0xec/0x130 [nf_conntrack] [843.953334] tcf_ct_act+0x252/0xd90 [act_ct] [843.956473] ? tcf_mirred_act+0x516/0x5a0 [act_mirred] [843.959657] tcf_action_exec+0xa1/0x160 [843.962823] fl_classify+0x1db/0x1f0 [cls_flower] [843.966010] ? skb_clone+0x53/0xc0 [843.969173] tcf_classify+0x24d/0x420 [843.972333] tc_run+0x8f/0xf0 [843.975465]
__netif_receive_skb_core+0x67a/0x1080 [843.978634] ? dev_gro_receive+0x249/0x730 [843.981759]
__netif_receive_skb_list_core+0x12d/0x260 [843.984869] netif_receive_skb_list_internal+0x1cb/0x2f0 [843.987957] ? mlx5e_handle_rx_cqe_mpwrq_rep+0xfa/0x1a0 [mlx5_core] [843.991170] napi_complete_done+0x72/0x1a0 [843.994305] mlx5e_napi_poll+0x28c/0x6d0 [mlx5_core] [843.997501]
__napi_poll+0x25/0x1b0 [844.000627] net_rx_action+0x256/0x330 [844.003705] __do_softirq+0xb3/0x29b [844.006718] irq_exit_rcu+0x9e/0xc0 [844.009672] common_interrupt+0x86/0xa0 [844.012537] </IRQ> [844.015285] <TASK> [844.017937] asm_common_interrupt+0x26/0x40 [844.020591] RIP:
0010:acpi_safe_halt+0x1b/0x20 [844.023247] 代码:ff 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 65 48 8b 04 25 00 18 03 00 48 8b 00 a8 08 75 0c 66 90 0f 00 2d 81 d0 44 00 fb ---truncated--- (CVE-2023-52610)

- 已解决 Linux 内核中的下列漏洞:net: tls: 处理 crypto 请求的积压。我们在对 crypto API 的请求上设置了 CRYPTO_TFM_REQ_MAY_BACKLOG 旗标,因此 crypto_aead_{encrypt,decrypt} 可以在有效情况下返回 -EBUSY,而非 -EINPROGRESS。例如,当 AESNI 的 cryptd 队列已满(通过人为降低的 cryptd.cryptd_max_cpu_qlen 可以轻易触发)时,请求将进入 backlog,但仍会得到处理。在这种情况下,异步回调也会被调用两次:第一次是通过 err == -EINPROGRESS(我们似乎可以忽略),然后是通过 err == 0。与 Sabrina 的原始补丁相比,此版本会使用新的 tls_*crypt_async_wait( ) 帮助函数并将 EBUSY 转换为 EINPROGRESS,以避免必须修改所有错误处理路径。处理方式是相同的。(CVE-2024-26584)

- 在 Linux 内核的 cxgb4 驱动程序中发现释放后使用漏洞。cxgb4 设备分离时会发生此缺陷,可能是因为在工作队列重新准备了 flower_stats_timer。本地用户可利用此缺陷导致系统崩溃,从而造成拒绝服务情况。(CVE-2023-4133)

拒绝不受支持系列的表)中修复;创建新的 netfilter 表时,由于“nf_tables_newtable”函数中缺少针对无效 nf_tables 系列 (pf) 值的防护措施,攻击者可借此实现越界访问。(CVE-2023-6040)

- 在用于加密算法 scatterwalk 功能的 Linux 内核 API 中发现了空指针取消引用缺陷。当用户使用特定套接字配置构造恶意数据包时,就会出现此问题,这可能允许本地用户崩溃系统或提升其在系统上的权限。(CVE-2023-6176)

- 在到 6.2.9 的 Linux 内核中,net/bluetooth/hci_conn.c 中的 hci_conn_cleanup 存在释放后使用(在 hci_conn_hash_flush 中观察到),原因是调用了 hci_dev_put 和 hci_conn_put。存在可导致权限升级的双重释放。 (CVE-2023-28464)

- 在 Linux 内核的 Netfilter 子系统中发现漏洞。IPSET_CMD_ADD 和 IPSET_CMD_SWAP 之间的竞争条件可能会由于在错误的“set”上调用“__ip_set_put”而造成内核错误。
本地用户可以利用此问题造成系统崩溃。(CVE-2023-42756)

- 在 Linux 内核的 fs/locks.c 函数的 filelock_init 中发现一个缺陷。由于 memcg 未限制可移植操作系统接口 (POSIX) 文件锁定的数量,此问题可导致主机内存耗尽。(CVE-2022-0480)

- 在 Linux 内核的 NVMe-oF/TCP 子系统中发现越界读取漏洞。远程攻击者可利用此问题发送构建的 TCP 数据包,触发基于堆的缓冲区溢出,进而导致 kmalloc 数据被打印,同时也可能泄漏到内核环形缓冲区 (dmesg)。
(CVE-2023-6121)

- 在 Linux 内核中,在 lib/idr.c 的 ida_free 中发现一个空指针取消引用问题。此问题可能会允许使用此库的攻击者因缺少函数返回检查而造成拒绝服务问题。(CVE-2023-6915)

- 在 Bluetooth Core Specification 4.2 至 5.4(含)中,具有安全简单配对和安全连接配对功能的蓝牙 BR/EDR 设备允许某些强制使用短密钥长度的中间人攻击,并且可能导致加密密钥泄露和实时注入,即 BLUFFS。(CVE-2023-24023)

- 在 Linux 内核的 Netfilter 子系统中发现一个缺陷。sctp_mt_check 未验证 flag_count 字段。本地特权 (CAP_NET_ADMIN) 攻击者可利用此缺陷触发越界读取,从而导致程序崩溃或信息泄露。(CVE-2023-39193)

- 在 Linux 内核中解决了以下漏洞:net:bridge:使用 DEV_STATS_INC() syzbot/KCSAN 报告了 br_handle_frame_finish() 中的数据争用 [1] 此函数可在多个 cpu 运行,而不会互斥。采用 SMP safe DEV_STATS_INC() 以更新 dev->stats 字段。同时处理了对 dev->stats.tx_dropped 的更新。 [1] 缺陷:KCSAN:cpu 1 上的中断对 8 字节的 0xffff8881374b2178 读写引起 br_handle_frame_finish / br_handle_frame_finish 数据争用:
br_handle_frame_finish+0xd4f/0xef0 net/bridge/br_input.c:189 br_nf_hook_thresh+0x1ed/0x220 br_nf_pre_routing_finish_ipv6+0x50f/0x540 NF_HOOK include/linux/netfilter.h:304 [inline] br_nf_pre_routing_ipv6+0x1e3/0x2a0 net/bridge/br_netfilter_ipv6.c:178 br_nf_pre_routing+0x526/0xba0 net/bridge/br_netfilter_hooks.c:508 nf_hook_entry_hookfn include/linux/netfilter.h:144 [inline] nf_hook_bridge_pre net/bridge/br_input.c:272 [inline] br_handle_frame+0x4c9/0x940 net/bridge/br_input.c:417 __netif_receive_skb_core+0xa8a/0x21e0 net/core/dev.c:5417
__netif_receive_skb_one_core net/core/dev.c:5521 [inline] __netif_receive_skb+0x57/0x1b0 net/core/dev.c:5637 process_backlog+0x21f/0x380 net/core/dev.c:5965 __napi_poll+0x60/0x3b0 net/core/dev.c:6527 napi_poll net/core/dev.c:6594 [inline] net_rx_action+0x32b/0x750 net/core/dev.c:6727
__do_softirq+0xc1/0x265 kernel/softirq.c:553 run_ksoftirqd+0x17/0x20 kernel/softirq.c:921 smpboot_thread_fn+0x30a/0x4a0 kernel/smpboot.c:164 kthread+0x1d7/0x210 kernel/kthread.c:388 ret_from_fork+0x48/0x60 arch/x86/kernel/process.c:147 ret_from_fork_asm+0x11/0x20 arch/x86/entry/entry_64.S:304 读写到 cpu 0 上的中断的 8 字节 0xffff8881374b2178
br_handle_frame_finish+0xd4f/0xef0 net/bridge/br_input.c:189 br_nf_hook_thresh+0x1ed/0x220 br_nf_pre_routing_finish_ipv6+0x50f/0x540 NF_HOOK include/linux/netfilter.h:304 [inline] br_nf_pre_routing_ipv6+0x1e3/0x2a0 net/bridge/br_netfilter_ipv6.c:178 br_nf_pre_routing+0x526/0xba0 net/bridge/br_netfilter_hooks.c:508 nf_hook_entry_hookfn include/linux/netfilter.h:144 [inline] nf_hook_bridge_pre net/bridge/br_input.c:272 [inline] br_handle_frame+0x4c9/0x940 net/bridge/br_input.c:417 __netif_receive_skb_core+0xa8a/0x21e0 net/core/dev.c:5417
__netif_receive_skb_one_core net/core/dev.c:5521 [inline] __netif_receive_skb+0x57/0x1b0 net/core/dev.c:5637 process_backlog+0x21f/0x380 net/core/dev.c:5965 __napi_poll+0x60/0x3b0 net/core/dev.c:6527 napi_poll net/core/dev.c:6594 [inline] net_rx_action+0x32b/0x750 net/core/dev.c:6727
__do_softirq+0xc1/0x265 kernel/softirq.c:553 do_softirq+0x5e/0x90 kernel/softirq.c:454
__local_bh_enable_ip+0x64/0x70 kernel/softirq.c:381 __raw_spin_unlock_bh include/linux/spinlock_api_smp.h:167 [inline] _raw_spin_unlock_bh+0x36/0x40 kernel/locking/spinlock.c:210 spin_unlock_bh include/linux/spinlock.h:396 [inline] batadv_tt_local_purge+0x1a8/0x1f0 net/batman-adv/translation-table.c:1356 batadv_tt_purge+0x2b/0x630 net/batman-adv/translation-table.c:3560 process_one_work kernel/workqueue.c:2630 [inline] process_scheduled_works+0x5b8/0xa30 kernel/workqueue.c:2703 worker_thread+0x525/0x730 kernel/workqueue.c:2784 kthread+0x1d7/0x210 kernel/kthread.c:388 ret_from_fork+0x48/0x60 arch/x86/kernel/process.c:147 ret_from_fork_asm+0x11/0x20 arch/x86/entry/entry_64.S:304 值已更改:0x00000000000d7190 -> 0x00000000000d7191 由 CPU: 0 PID:14848 Comm: kworker/u4:11 Not6.tainted rc1-syzkaller-00236-gad8a69f361b9 #0 (CVE-2023-52578) 的内核并发审查器报告

- 在采用设备文件“/dev/dri/renderD128(或 Dxxx)”的 Linux 内核中,在 GPU 组件的 drivers/gpu/vmxgfx/vmxgfx_execbuf.c 中的 vmwgfx 驱动程序中发现空指针取消引用漏洞。在系统中具有用户帐户的本地攻击者可利用此缺陷获得特权,造成拒绝服务 (DoS)。
(CVE-2022-38096)

- 用于 1.9.30 之前版本的 Linux 内核的 Intel(R) 以太网控制器 RDMA 驱动器存在访问控制不当漏洞,经身份验证的用户可借此通过网络访问实现特权提升。
(CVE-2023-25775)

- 在 Linux 内核 6.5.9 及之前的版本中发现问题。在 SQ 线程退出的竞争中,可能会发生 io_uring/fdinfo.c io_uring_show_fdinfo 空指针取消引用。(CVE-2023-46862)

- 在 Linux 内核中解决了以下漏洞:net:修复 neigh_periodic_work() 中可能存在的存储拆分问题。在查看涉及 neigh_periodic_work() 的相关 syzbot 报告时,我发现在从列表中删除 RCU 保护项时忘记添加注释。阅读器使用 rcu_deference(*np),我们需要在编写器端使用 rcu_assign_pointer() 或 WRITE_ONCE() 以防止存储拆分。我使用 rcu_assign_pointer() 来获得 lockdep 支持,这是在 neigh_flush_dev() 中做出的选择。 (CVE-2023-52522)

- 在 Linux 内核中发现了一个释放后使用缺陷,原因是 Unix 垃圾回收器在删除 SKB 时与 unix_stream_read_generic() 函数在套接字上存在竞争问题,而该 SKB 正在该套接字上排队。
(CVE-2023-6531)

- 在 Linux 内核的 GSM 0710 tty 多路器中发现争用条件。之所以发生此问题,是因为两个线程在 gsm 行规则已启用的情况下对同一 tty 文件描述符执行了 GSMIOC_SETCONF ioctl,并且会在重新启动 gsm mux 时导致 struct gsm_dlci 发生释放后使用问题。本地非特权用户可利用此问题提升其在系统中的权限。(CVE-2023-6546)

- 在 Linux 内核 IPv4 堆栈中发现一个空指针取消引用缺陷。在调用 __ip_options_compile 之前,假定套接字缓冲区 (skb) 与设备关联,但如果 skb 由 ipvs 重新路由,则 skb 可能未与设备关联。此问题可能允许具有 CAP_NET_ADMIN 权限的本地用户造成系统崩溃。(CVE-2023-42754)

- 在 Linux 内核 6.0.10 及之前所有版本中发现一个问题。 net/bluetooth/l2cap_core.c 中的 l2cap_config_req 可通过 L2CAP_CONF_REQ 数据包进行整数封装。(CVE-2022-45934)

- Linux 内核 ipv4 组件中存在一个释放后使用漏洞,攻击者可利用此漏洞以实现本地特权提升。攻击者可利用争用条件导致定时器在由其他线程释放的 RCU 读取锁定对象上被错误注册。我们建议升级过去的提交 e2b706c691905fe78468c361aaabc719d0a496f1。(CVE-2023-6932)

- 在 6.2.8 及之前版本的 Linux 内核中,net/bluetooth/hci_sync.c 允许越界访问,这是因为 amp_init1[] 和 amp_init2[] 本应有一个故意无效的元素,但实际上却没有。
(CVE-2023-28866)

- 在 Linux 内核的 QXL 驱动程序中发现竞争条件。qxl_mode_dumb_create() 函数取消引用 qxl_gem_object_create_with_handle() 返回的 qobj,但该句柄是唯一对其引用的句柄。此缺陷允许攻击者猜测返回的句柄值并触发释放后使用问题,这可能导致拒绝服务或权限升级。(CVE-2023-39198)

- 在 Linux 内核中解决了以下漏洞:netfilter: nf_tables:修复在超过 255 个元素过期时发生的内存泄漏。 当超过 255 个元素过期时,我们应切换至新的 gc 容器结构。这种情况永远不会发生:u8 类型会在到达边界前换行,且 nft_trans_gc_space() 始终返回 true。这意味着我们会回收初始 gc 容器结构,且无法追踪之前的元素。使用时,请不要在我们将“gc”传递给 call_rcu 后将其取消引用。 (CVE-2023-52581)

- Linux 内核 netfilter: nf_tables 组件中存在一个释放后使用漏洞,攻击者可利用此漏洞以实现本地特权提升。在释放 catch-all set 元素之前,nft_setelem_catchall_deactivate() 函数会检查其在当前生成中是否处于活动状态,而不是在新一代中仅将其标记为不活动,如此便可多次释放该元素,进而导致双重释放漏洞。我们升级过去的提交 b1db244ffd041a49ecc9618e8feb6b5c1afcdaa7。(CVE-2024-1085)

- 在 Linux 内核中,以下漏洞已得到解决:tls:修复了异步通知和套接字关闭之间的争用问题,即异步 crypto 处理程序一旦调用 complete(),调用 recvmsg/sendmsg 的提交线程就可能会退出,导致超过该点的任何代码均存在接触已释放数据的风险。尝试完全避免锁定和额外标记。让主线程保留额外的引用,这样我们就可以完全依赖原子引用计数器进行同步。也不要滥用完成重新初始化,我们现在会严格控制完成触发。(CVE-2024-26583)

- 可以利用 Linux 内核的性能事件系统组件中的堆越界写入漏洞实现本地特权提升。perf_event 的 read_size 可能溢出,导致 perf_read_group() 发生堆越界递增或写入。我们建议升级过去的提交 382c27f4ed28f803b1f1473ac2d8db0afc795a1b。(CVE-2023-6931)

- 在 Linux 内核的 Netfilter 子系统中发现一个缺陷。nfnl_osf_add_callback 函数未验证用户模式控制的 opt_num 字段。本地特权 (CAP_NET_ADMIN) 攻击者可利用此缺陷触发越界读取,从而导致程序崩溃或信息泄露。(CVE-2023-39189)

- 在 Linux 内核中,以下漏洞已修复:i2c:i801:修复区块进程调用事务 根据 Intel 数据表,软件必须为区块进程调用事务重置两次区块缓冲区索引:将传出数据写入缓冲区前重置一次,从缓冲区读取传入数据前再重置一次。驱动程序当前缺少第二次重置,从而导致读取区块缓冲区的错误部分。(CVE-2024-26593)

- 在 6.6.8 之前的 Linux 内核中发现了一个问题。因 vcc_recvmsg 争用条件,net/atm/ioctl.c 中的 do_vcc_ioctl 存在释放后使用漏洞。(CVE-2023-51780)

- 已解决 Linux 内核中的下列漏洞:tls:修复了 tx 工作安排和套接字关闭之间的争用问题。与上一个提交相似,异步 crypto 处理程序一旦调用 complete(),提交线程就可能会退出。记录器在调用 complete() 之前安排工作计划。首先,这似乎更符合逻辑,因为这与提交线程的操作顺序相反。(CVE-2024-26585)

- 蓝牙核心规范 1.0B 版至 5.2 版中的蓝牙旧版 BR/EDR PIN 代码配对功能可能允许未经身份验证的附近设备伪造对等设备的 BD_ADDR,从而在不知道 PIN 的情况下完成配对。(CVE-2020-26555)

- 在 Linux 内核中,发现 vc_screen 中 drivers/tty/vt/vc_screen.c 的 vcs_read 存在释放后使用缺陷。具有本地用户访问权限的攻击者可利用此问题造成系统崩溃或泄露内部内核信息。(CVE-2023-3567)

- 在 Linux 内核 6.4.2 及之前版本的 USB 子系统中发现了一个问题。drivers/usb/core/sysfs.c 中的 read_descriptors 出现越界和崩溃漏洞。(CVE-2023-37453)

- 已解决 Linux 内核中的以下漏洞:smb:客户端:修复了 smb2_parse_contexts() 中的潜在 OOB,即在取消引用 smb2_parse_contexts() 中的创建上下文之前验证偏移和长度。这修复了从服务器访问无效创建环境时出现的以下 oops:错误:
无法处理地址页面错误:ffff8881178d8cc3 #PF:内核模式下的 supervisor 读取访问 #PF:
error_code(0x0000) - 不存在页面 PGD 4a01067 P4D 4a01067 PUD 0 Oops:0000 [#1] PREEMPT SMP NOPTI CPU:
3 PID:1736 Comm:mount.cifs Not tainted 6.7.0-rc4 #1 硬件名称:QEMU Standard PC (Q35 + ICH9, 2009)、BIOS rel-1.16.2-3-gd478f380-rebuilt.opensuse.org 04/01/2014 RIP: 0010:smb2_parse_contexts+0xa0/0x3a0 [cifs] 代码:f8 10 75 13 48 b8 93 ad 25 50 9c b4 11 e7 49 39 06 0f 84 d2 00 00 00 8b 45 00 85 c0 74 61 41 29 c5 48 01 c5 41 83 fd 0f 76 55 <0f> b7 7d 04 0f b7 45 06 4c 8d 74 3d 00 66 83 f8 04 75 bc ba 04 00 RSP:
0018:ffffc900007939e0 EFLAGS:00010216 RAX:ffffc90000793c78 RBX:ffff8880180cc000 RCX:ffffc90000793c90 RDX:ffffc90000793cc0 RSI:ffff8880178d8cc0 RDI:ffff8880180cc000 RBP:ffff8881178d8cbf R08:
ffffc90000793c22 R09:0000000000000000 R10:ffff8880180cc000 R11:0000000000000024 R12:0000000000000000 R13:0000000000000020 R14:0000000000000000 R15:ffffc90000793c22 FS:00007f873753cbc0(0000) GS:ffff88806bc00000(0000) knlGS:0000000000000000 CS:0010 DS:0000 ES:0000 CR0:0000000080050033 CR2:
ffff8881178d8cc3 CR3:00000000181ca000 CR4:0000000000750ef0 PKRU:55555554 调用跟踪:<TASK> ?
__die+0x23/0x70 ? page_fault_oops+0x181/0x480 ? search_module_extables+0x19/0x60 ? srso_alias_return_thunk+0x5/0xfbef5 ? exc_page_fault+0x1b6/0x1c0 ? asm_exc_page_fault+0x26/0x30 ? smb2_parse_contexts+0xa0/0x3a0 [cifs] SMB2_open+0x38d/0x5f0 [cifs] ? smb2_is_path_accessible+0x138/0x260 [cifs] smb2_is_path_accessible+0x138/0x260 [cifs] cifs_is_path_remote+0x8d/0x230 [cifs] cifs_mount+0x7e/0x350 [cifs] cifs_smb3_do_mount+0x128/0x780 [cifs] smb3_get_tree+0xd9/0x290 [cifs] vfs_get_tree+0x2c/0x100 ? capable+0x37/0x70 path_mount+0x2d7/0xb80 ? srso_alias_return_thunk+0x5/0xfbef5 ?
_raw_spin_unlock_irqrestore+0x44/0x60 __x64_sys_mount+0x11a/0x150 do_syscall_64+0x47/0xf0 entry_SYSCALL_64_after_hwframe+0x6f/0x77 RIP:0033:0x7f8737657b1e (CVE-2023-52434)

- 已解决 Linux 内核中的以下漏洞:net/core:修复 ETH_P_1588 流分析器 将大小超过 256 字节且后跟 0xff 模式的 PTP 以太网原始帧发送到 __skb_flow_dissect 时,nhoff 值计算错误. 例如:hdr->message_length 取值错误 (0xffff) 并且未能复制实际标头长度。在此情况下,“nhoff”值被覆盖,且 PTP 标头遭错误解析。这会导致内核崩溃。net/core: flow_dissector net/core flow dissector nhoff = 0x0000000e net/core flow dissector hdr->message_length = 0x0000ffff net/core flow dissector nhoff = 0x0001000d (u16 overflow) ... skb linear: 00000000: 00 a0 c9 00 00 00 00 a0 c9 00 00 00 88 skb frag: 00000000: f7 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff Using the size of the ptp_header struct will allow the corrected calculation of the nhoff value. net/core flow dissector nhoff = 0x0000000e net/core flow dissector nhoff = 0x00000030 (sizeof ptp_header) ... skb linear:
00000000: 00 a0 c9 00 00 00 00 a0 c9 00 00 00 88 f7 ff ff skb linear: 00000010: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff skb linear: 00000020: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff skb frag:
00000000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 内核追踪:[ 74.984279] ------------[在此处剪切]------------ [ 74.989471] include/linux/skbuff.h:2440! 的内核缺陷[ 74.995237] 无效 opcode:
0000 [#1] PREEMPT SMP NOPTI [ 75.001098] CPU:4 PID: 0 Comm:swapper/4 Tainted: GU 5.15.85-intel-ese-standard-lts #1 [ 75.011629] 硬件名称:Intel Corporation A- Island (CPU:AlderLake)/A-Island (ID:06),BIOS SB_ADLP.01.01.00.01.03.008.D-6A9D9E73-dirty 2023 年 3 月 30 日 [ 75.026507] RIP:
0010:eth_type_trans+0xd0/0x130 [ 75.031594] Code: 03 88 47 78 eb c7 8b 47 68 2b 47 6c 48 8b 97 c0 00 00 00 83 f8 01 7e 1b 48 85 d2 74 06 66 83 3a ff 74 09 b8 00 04 00 00 eb ab <0f> 0b b8 00 01 00 00 eb a2 48 85 ff 74 eb 48 8d 54 24 06 31 f6 b9 [ 75.052612] RSP: 0018:ffff9948c0228de0 EFLAGS: 00010297 [ 75.058473] RAX:
00000000000003f2 RBX: ffff8e47047dc300 RCX: 0000000000001003 [ 75.066462] RDX: ffff8e4e8c9ea040 RSI:
ffff8e4704e0a000 RDI: ffff8e47047dc300 [ 75.074458] RBP: ffff8e4704e2acc0 R08: 00000000000003f3 R09:
0000000000000800 [ 75.082466] R10: 000000000000000d R11: ffff9948c0228dec R12: ffff8e4715e4e010 [75.090461] R13: ffff9948c0545018 R14: 0000000000000001 R15: 0000000000000800 [ 75.098464] FS:
0000000000000000(0000) GS:ffff8e4e8fb00000(0000) knlGS:0000000000000000 [ 75.107530] CS: 0010 DS: 0000 ES:
0000 CR0: 0000000080050033 [ 75.113982] CR2: 00007f5eb35934a0 CR3: 0000000150e0a002 CR4: 0000000000770ee0 [ 75.121980] PKRU: 55555554 [ 75.125035] 调用跟踪:[ 75.127792] <IRQ> [ 75.130063] ? eth_get_headlen+0xa4/0xc0 [ 75.134472] igc_process_skb_fields+0xcd/0x150 [ 75.139461] igc_poll+0xc80/0x17b0 [ 75.143272] __napi_poll+0x27/0x170 [ 75.147192] net_rx_action+0x234/0x280 [75.151409] __do_softirq+0xef/0x2f4 [ 75.155424] irq_exit_rcu+0xc7/0x110 [ 75.159432] common_interrupt+0xb8/0xd0 [ 75.163748] </IRQ> [ 75.166112] <TASK> [ 75.168473] asm_common_interrupt+0x22/0x40 [ 75.173175] RIP: 0010:cpuidle_enter_state+0xe2/0x350 [ 75.178749] Code: 85 c0 0f 8f 04 02 00 00 31 ff e8 39 6c 67 ff 45 84 ff 74 12 9c 58 f6 c4 02 0f 85 50 02 00 00 31 ff e8 52 b0 6d ff fb 45 85 f6 <0f> 88 b1 00 00 00 49 63 ce 4c 2b 2c 24 48 89 c8 48 6b d1 68 48 c1 [ 75.199757] RSP:
0018:ffff9948c013bea8 EFLAGS: 00000202 [ 75.205614] RAX: ffff8e4e8fb00000 RBX: ffffb948bfd23900 RCX:
000000000000001f [ 75.213619] RDX: 0000000000000004 RSI: ffffffff94206161 RDI: ffffffff94212e20 [75.221620] RBP: 0000000000000004 R08: 000000117568973a R09: 0000000000000001 [ 75.229622] R10:
000000000000afc8 R11: ffff8e4e8fb29ce4 R12: ffffffff945ae980 [ 75.237628] R13: 000000117568973a R14:
0000000000000004 R15: 0000000000000000 [ 75.245635] ? ---truncated--- (CVE-2023-52580)

- Linux 内核 netfilter: nf_tables 组件中存在一个释放后使用漏洞,攻击者可利用此漏洞以实现本地特权提升。nft_verdict_init() 函数允许在挂钩判定中将正值作为丢弃错误,因此,当 NF_DROP 发出类似于 NF_ACCEPT 的丢弃错误时,nf_hook_slow() 函数可造成双重释放漏洞。我们建议升级过去的提交 f342de4e2f33e0e39165d8639387aa6c19dff660。(CVE-2024-1086)

- 在 Linux 内核中,以下漏洞已修复:ip6_tunnel:修复 ip6_tnl_parse_tlv_enc_lim() 中的 NEXTHDR_FRAGMENT 处理 syzbot 指出 [1],NEXTHDR_FRAGMENT 处理已中断。
只有提取足够的字节到 skb->head 才能读取 frag_off。目前,我们可能会访问垃圾邮件。[1] 缺陷:KMSAN:uninit-value in ip6_tnl_parse_tlv_enc_lim+0x94f/0xbb0 ip6_tnl_parse_tlv_enc_lim+0x94f/0xbb0 ipxip6_tnl_xmit net/ipv6/ip6_tunnel.c:1326 [inline] ip6_tnl_start_xmit+0xab2/0x1a70 net/ipv6/ip6_tunnel.c:1432 __netdev_start_xmit include/linux/netdevice.h:4940 [inline] netdev_start_xmit include/linux/netdevice.h:4954 [inline] xmit_one net/core/dev.c:3548 [inline] dev_hard_start_xmit+0x247/0xa10 net/core/dev.c:3564
__dev_queue_xmit+0x33b8/0x5130 net/core/dev.c:4349 dev_queue_xmit include/linux/netdevice.h:3134 [inline] neigh_connected_output+0x569/0x660 net/core/neighbour.c:1592 neigh_output include/net/neighbour.h:542 [inline] ip6_finish_output2+0x23a9/0x2b30 net/ipv6/ip6_output.c:137 ip6_finish_output+0x855/0x12b0 net/ipv6/ip6_output.c:222 NF_HOOK_COND include/linux/netfilter.h:303 [inline] ip6_output+0x323/0x610 net/ipv6/ip6_output.c:243 dst_output include/net/dst.h:451 [inline] ip6_local_out+0xe9/0x140 net/ipv6/output_core.c:155 ip6_send_skb net/ipv6/ip6_output.c:1952 [inline] ip6_push_pending_frames+0x1f9/0x560 net/ipv6/ip6_output.c:1972 rawv6_push_pending_frames+0xbe8/0xdf0 net/ipv6/raw.c:582 rawv6_sendmsg+0x2b66/0x2e70 net/ipv6/raw.c:920 inet_sendmsg+0x105/0x190 net/ipv4/af_inet.c:847 sock_sendmsg_nosec net/socket.c:730 [inline] __sock_sendmsg net/socket.c:745 [inline] ____sys_sendmsg+0x9c2/0xd60 net/socket.c:2584 ___sys_sendmsg+0x28d/0x3c0 net/socket.c:2638
__sys_sendmsg net/socket.c:2667 [inline] __do_sys_sendmsg net/socket.c:2676 [inline] __se_sys_sendmsg net/socket.c:2674 [inline] __x64_sys_sendmsg+0x307/0x490 net/socket.c:2674 do_syscall_x64 arch/x86/entry/common.c:52 [inline] do_syscall_64+0x44/0x110 arch/x86/entry/common.c:83 entry_SYSCALL_64_after_hwframe+0x63/0x6b Uninit 创建时间:slab_post_alloc_hook+0x129/0xa70 mm/slab.h:768 slab_alloc_node mm/slub.c:3478 [inline] __kmem_cache_alloc_node+0x5c9/0x970 mm/slub.c:3517
__do_kmalloc_node mm/slab_common.c:1006 [inline] __kmalloc_node_track_caller+0x118/0x3c0 mm/slab_common.c:1027 kmalloc_reserve+0x249/0x4a0 net/core/skbuff.c:582 pskb_expand_head+0x226/0x1a00 net/core/skbuff.c:2098 __pskb_pull_tail+0x13b/0x2310 net/core/skbuff.c:2655 pskb_may_pull_reason include/linux/skbuff.h:2673 [inline] pskb_may_pull include/linux/skbuff.h:2681 [inline] ip6_tnl_parse_tlv_enc_lim+0x901/0xbb0 net/ipv6/ip6_tunnel.c:408 ipxip6_tnl_xmit net/ipv6/ip6_tunnel.c:1326 [inline] ip6_tnl_start_xmit+0xab2/0x1a70 net/ipv6/ip6_tunnel.c:1432 __netdev_start_xmit include/linux/netdevice.h:4940 [inline] netdev_start_xmit include/linux/netdevice.h:4954 [inline] xmit_one net/core/dev.c:3548 [inline] dev_hard_start_xmit+0x247/0xa10 net/core/dev.c:3564
__dev_queue_xmit+0x33b8/0x5130 net/core/dev.c:4349 dev_queue_xmit include/linux/netdevice.h:3134 [inline] neigh_connected_output+0x569/0x660 net/core/neighbour.c:1592 neigh_output include/net/neighbour.h:542 [inline] ip6_finish_output2+0x23a9/0x2b30 net/ipv6/ip6_output.c:137 ip6_finish_output+0x855/0x12b0 net/ipv6/ip6_output.c:222 NF_HOOK_COND include/linux/netfilter.h:303 [inline] ip6_output+0x323/0x610 net/ipv6/ip6_output.c:243 dst_output include/net/dst.h:451 [inline] ip6_local_out+0xe9/0x140 net/ipv6/output_core.c:155 ip6_send_skb net/ipv6/ip6_output.c:1952 [inline] ip6_push_pending_frames+0x1f9/0x560 net/ipv6/ip6_output.c:1972 rawv6_push_pending_frames+0xbe8/0xdf0 net/ipv6/raw.c:582 rawv6_sendmsg+0x2b66/0x2e70 net/ipv6/raw.c:920 inet_sendmsg+0x105/0x190 net/ipv4/af_inet.c:847 sock_sendmsg_nosec net/socket.c:730 [inline] __sock_sendmsg net/socket.c:745 [inline] ____sys_sendmsg+0x9c2/0xd60 net/socket.c:2584 ___sys_sendmsg+0x28d/0x3c0 net/socket.c:2638
__sys_sendmsg net/socket.c:2667 [inline] __do_sys_sendms ---truncated--- (CVE-2024-26633)

- 在 Linux 内核中,在 nf_tables 的 net/netfilter/nft_dynset.c 中的 nft_dynset_init() 中发现一个空指针取消引用漏洞。具有 CAP_NET_ADMIN 用户权限的本地攻击者可利用此问题触发拒绝服务。(CVE-2023-6622)

- 在 Linux 内核的 SMB 客户端子组件中,在 fs/smb/client/smb2ops.c 的 receive_encrypted_standard 中发现越界内存读取缺陷。出现此问题的原因是 memcpy 长度存在整数下溢,从而导致拒绝服务。(CVE-2024-0565)

- 在 6.6.8 及之前版本的 Linux 内核中,net/bluetooth/af_bluetooth.c 的 bt_sock_recvmsg 存在释放后使用漏洞,因 bt_sock_ioctl 争用条件所致。(CVE-2023-51779)

- 在 Linux 内核中解决了以下漏洞:perf/x86/lbr:筛选 vsyscall 地址。我们发现,在 LBR 采样处于活动状态的情况下进行 vsyscall 时,可能会发生错误。如果为 perf 采样中断 vsyscall (NMI),会出现此调用序列(最近的在顶部):
__insn_get_emulate_prefix() insn_get_emulate_prefix() insn_get_prefixes() insn_get_opcode() decode_branch_type() get_branch_type() intel_pmu_lbr_filter() intel_pmu_handle_irq() perf_event_nmi_handler() 在 __insn_get_emulate_prefix() 内的 0 帧调用了宏:
peek_nbyte_next(insn_byte_t, insn, i) 在此宏中,发生了以下取消引用:(insn)->next_byte 此时检查寄存器,next_byte 字段的值是所进行的 vsyscall 的地址,例如在 0xffffffffff600000 的 vsyscall 版本 gettimeofday() 函数的位置。对 vsyscall 区域中的地址的访问将由于未处理的页面错误而触发 oops。要修复该缺陷,可在确定分支类型时过滤 vsyscall。如果发现内核地址位于 vsyscall 区域内,此补丁将返回无分支。(CVE-2023-52476)

- 在 Linux 内核中解决了以下漏洞:team:当团队设备类型更改时,修复 null-ptr-deref 利用重现程序获取如下 null-ptr-deref 缺陷 [1]。缺陷:内核空指针取消引用,地址:0000000000000228 ... RIP: 0010:vlan_dev_hard_header+0x35/0x140 [8021q] ... 调用跟踪: <TASK> ? __die+0x24/0x70 ? page_fault_oops+0x82/0x150 ? exc_page_fault+0x69/0x150 ? asm_exc_page_fault+0x26/0x30 ? vlan_dev_hard_header+0x35/0x140 [8021q] ? vlan_dev_hard_header+0x8e/0x140 [8021q] neigh_connected_output+0xb2/0x100 ip6_finish_output2+0x1cb/0x520 ? nf_hook_slow+0x43/0xc0 ? ip6_mtu+0x46/0x80 ip6_finish_output+0x2a/0xb0 mld_sendpack+0x18f/0x250 mld_ifc_work+0x39/0x160 process_one_work+0x1e6/0x3f0 worker_thread+0x4d/0x2f0 ? __pfx_worker_thread+0x10/0x10 kthread+0xe5/0x120 ?
__pfx_kthread+0x10/0x10 ret_from_fork+0x34/0x50 ? __pfx_kthread+0x10/0x10 ret_from_fork_asm+0x1b/0x30 [1] $ teamd -t team0 -d -c '{runner: {name: loadbalance}}' $ ip link add name t-dummy type dummy $ ip link add link t-dummy name t-dummy.100 type vlan id 100 $ ip link add name t-nlmon type nlmon $ ip link set t-nlmon master team0 $ ip link set t-nlmon nomaster $ ip link set t-dummy up $ ip link set team0 up $ ip link set t-dummy.100 down $ ip link set t-dummy.100 master team0 将 vlan 设备绑定到团队设备,且团队设备类型从非 ether 改为 ether 时,团队设备的 header_ops 会更改为 vlan_header_ops。这是不正确的,会在 vlan_dev_hard_header() 中触发 vlan->real_dev 的 null-ptr-deref,因为团队设备不是 vlan 设备。在 team_setup() 中缓存 eth_header_ops,然后在其类型从非 ether 更改为 ether时,将缓存的 header_ops 分配给团队网络设备的 header_ops, 以修复该缺陷。(CVE-2023-52574)

- 在 Linux 内核中,以下漏洞已得到解决:net:tls:修复了部分读取和异步解密的释放后使用问题,即 tls_decrypt_sg 不会引用 clear_skb 的页面,因此 tls_decrypt_done 的 put_page() 会将其释放,当我们尝试从已部分读取的 skb 中读取时,会在 process_rx_list 中触发释放后使用。(CVE-2024-26582)

- 在 Linux 内核中,以下漏洞已修复:sched/membarrier:减少对 sys_membarrier 的频繁调用。在某些系统中,sys_membarrier 的消耗非常大,导致整体速度变慢。因此,设置路径锁定可将访问序列化,从而防止以过高频率调用此功能以及计算机超负荷运行。(CVE-2024-26602)

- 在 Linux 内核中,以下漏洞已修复:gfs2:修复 gfs2_rgrp_dump 中的内核空指针取消引用 据 Syzkaller 报告,访问 gfs2_rgrp_dump() 中的 rgd->rd_rgl 时发生空指针取消引用。在 read_rindex_entry() 中创建 rgd->rd_gl 失败时,会发生这种情况。在 gfs2_rgrp_dump() 中添加空指针检查,以防出现该问题。(CVE-2023-52448)

- 在 Linux 内核中,以下漏洞已修复:netfilter: nf_tables: 禁止匿名集超时。从未在用户空间使用,禁止这些参数。CVE-2023-52620

请注意,Nessus 尚未测试这些问题,而是只依据应用程序自我报告的版本号进行判断。

解决方案

更新受影响的程序包。

另见

https://linux.oracle.com/errata/ELSA-2024-2394.html

插件详情

严重性: Critical

ID: 195036

文件名: oraclelinux_ELSA-2024-2394.nasl

版本: 1.1

类型: local

代理: unix

发布时间: 2024/5/6

最近更新时间: 2024/5/7

支持的传感器: Frictionless Assessment Agent, Nessus Agent, Nessus

风险信息

VPR

风险因素: Critical

分数: 9.6

CVSS v2

风险因素: Medium

基本分数: 4.8

时间分数: 4.2

矢量: CVSS2#AV:A/AC:L/Au:N/C:P/I:P/A:N

CVSS 分数来源: CVE-2020-26555

CVSS v3

风险因素: Critical

基本分数: 9.8

时间分数: 9.4

矢量: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

时间矢量: CVSS:3.0/E:H/RL:O/RC:C

CVSS 分数来源: CVE-2023-25775

漏洞信息

CPE: cpe:/a:oracle:linux:9:4:appstream_base, cpe:/a:oracle:linux:9::appstream, cpe:/a:oracle:linux:9::codeready_builder, cpe:/o:oracle:linux:9, cpe:/o:oracle:linux:9:4:baseos_base, cpe:/o:oracle:linux:9::baseos_latest, p-cpe:/a:oracle:linux:bpftool, p-cpe:/a:oracle:linux:kernel, p-cpe:/a:oracle:linux:kernel-abi-stablelists, p-cpe:/a:oracle:linux:kernel-core, p-cpe:/a:oracle:linux:kernel-cross-headers, p-cpe:/a:oracle:linux:kernel-debug, p-cpe:/a:oracle:linux:kernel-debug-core, p-cpe:/a:oracle:linux:kernel-debug-devel, p-cpe:/a:oracle:linux:kernel-debug-devel-matched, p-cpe:/a:oracle:linux:kernel-debug-modules, p-cpe:/a:oracle:linux:kernel-debug-modules-core, p-cpe:/a:oracle:linux:kernel-debug-modules-extra, p-cpe:/a:oracle:linux:kernel-debug-uki-virt, p-cpe:/a:oracle:linux:kernel-devel, p-cpe:/a:oracle:linux:kernel-devel-matched, p-cpe:/a:oracle:linux:kernel-headers, p-cpe:/a:oracle:linux:kernel-modules, p-cpe:/a:oracle:linux:kernel-modules-core, p-cpe:/a:oracle:linux:kernel-modules-extra, p-cpe:/a:oracle:linux:kernel-tools, p-cpe:/a:oracle:linux:kernel-tools-libs, p-cpe:/a:oracle:linux:kernel-tools-libs-devel, p-cpe:/a:oracle:linux:kernel-uki-virt, p-cpe:/a:oracle:linux:libperf, p-cpe:/a:oracle:linux:perf, p-cpe:/a:oracle:linux:python3-perf, p-cpe:/a:oracle:linux:rtla, p-cpe:/a:oracle:linux:rv

必需的 KB 项: Host/local_checks_enabled, Host/RedHat/release, Host/RedHat/rpm-list, Host/OracleLinux

可利用: true

易利用性: Exploits are available

补丁发布日期: 2024/5/2

漏洞发布日期: 2021/5/24

可利用的方式

Core Impact

参考资料信息

CVE: CVE-2020-26555, CVE-2022-0480, CVE-2022-38096, CVE-2022-45934, CVE-2023-24023, CVE-2023-25775, CVE-2023-28464, CVE-2023-28866, CVE-2023-31083, CVE-2023-3567, CVE-2023-37453, CVE-2023-39189, CVE-2023-39193, CVE-2023-39194, CVE-2023-39198, CVE-2023-4133, CVE-2023-42754, CVE-2023-42756, CVE-2023-45863, CVE-2023-46862, CVE-2023-51043, CVE-2023-51779, CVE-2023-51780, CVE-2023-52434, CVE-2023-52448, CVE-2023-52476, CVE-2023-52489, CVE-2023-52522, CVE-2023-52529, CVE-2023-52574, CVE-2023-52578, CVE-2023-52580, CVE-2023-52581, CVE-2023-52610, CVE-2023-52620, CVE-2023-6040, CVE-2023-6121, CVE-2023-6176, CVE-2023-6531, CVE-2023-6546, CVE-2023-6622, CVE-2023-6915, CVE-2023-6931, CVE-2023-6932, CVE-2024-0565, CVE-2024-0841, CVE-2024-1085, CVE-2024-1086, CVE-2024-26582, CVE-2024-26583, CVE-2024-26584, CVE-2024-26585, CVE-2024-26586, CVE-2024-26593, CVE-2024-26602, CVE-2024-26609, CVE-2024-26633

IAVA: 2023-A-0638-S