Ubuntu 20.04 LTS:Linux 内核 (IoT) 漏洞 (USN-6726-2)

high Nessus 插件 ID 193376

简介

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

描述

远程 Ubuntu 20.04 LTS 主机上安装的程序包受到 USN-6726-2 公告中提及的多个漏洞的影响。

- Xen 的虚拟网络协议中的传输请求可由多个部分组成。尽管这些部分在实际上并不实用,但除初始部分外,它们中的任何一个长度都可能为零,即完全不携带任何数据。除了要传输的数据的某个初始部分,这些部分还会直接转换为 Linux 所称的 SKB 片段。当此类转换后的请求部分对于特定 SKB 而言长度均为零时,可导致在核心网络代码中出现空指针取消引用漏洞。(CVE-2023-46838)

- 在 6.7.4 及之前版本的 Linux 内核中,drivers/md/dm-table.c 中的 dm_table_create 可能尝试(在 alloc_targets 中)分配超过 INT_MAX 字节的内存,并且可能崩溃,这是缺少对 struct dm_ioctl.target_count 的检查所致。(CVE-2023-52429)

- 在 Linux 内核中,以下漏洞已修复:f2fs:明确使 xattr 列表以 null 结尾 设置 xattr 时,明确使 xattr 列表以 null 结尾。这使得未使用的 xattr 空间始终为零这一经不起推敲的假设无效。(CVE-2023-52436)

- 在 Linux 内核中,以下漏洞已修复:binder:修复 shinker 回调中的释放后使用 在 shrinker 回调期间使用 mmap 读取锁定意味着使用 alloc->vma 指针不安全,因为它会与 munmap() 发生争用。自提交 dd2283f2605e(mm:mmap:munmap 中含有读取 mmap_sem 的 zap 页面)起,mmap 锁定在 vma 被隔离之后发生降级。通过 shrinker 的调试 sysfs,我能够手动添加一些延迟并触发页面回收来重现此问题。以下 KASAN 报告证实了 UAF:
================================================== ================ 缺陷:KASAN:zap_page_range_single+0x470/0x4b8 中存在 slab-use-after-free-with 读取大小为 8 位置:addr ffff356ed50e50f0 按任务 bash/478 CPU:1 PID:478 命令:bash 未感染 6.6.0-rc5-00055-g1c8b86a3799f-dirty #70 硬件名称:linux,dummy-virt (DT) 调用跟踪:zap_page_range_single+0x470/0x4b8 binder_alloc_free_page+0x608/0xadc
__list_lru_walk_one+0x130/0x3b0 list_lru_walk_node+0xc4/0x22c binder_shrink_scan+0x108/0x1dc shrinker_debugfs_scan_write+0x2b4/0x500 full_proxy_write+0xd4/0x140 vfs_write+0x1ac/0x758 ksys_write+0xf0/0x1dc __arm64_sys_write+0x6c/0x9c 根据任务 492 分配:kmem_cache_alloc+0x130/0x368 vm_area_alloc+0x2c/0x190 mmap_region+0x258/0x18bc do_mmap+0x694/0xa60 vm_mmap_pgoff+0x170/0x29c ksys_mmap_pgoff+0x290/0x3a0 __arm64_sys_mmap+0xcc/0x144 根据任务 491 释放:kmem_cache_free+0x17c/0x3c8 vm_area_free_rcu_cb+0x74/0x98 rcu_core+0xa38/0x26d4 rcu_core_si+0x10/0x1c __do_softirq+0x2fc/0xd24 上次可能相关的工作创建:__call_rcu_common.constprop.0+0x6c/0xba0 call_rcu+0x10/0x1c vm_area_free+0x18/0x24 remove_vma+0xe4/0x118 do_vmi_align_munmap.isra.0+0x718/0xb5c do_vmi_munmap+0xdc/0x1fc __vm_munmap+0x10c/0x278 __arm64_sys_munmap+0x58/0x7c 通过执行 vma_lookup() 来解决此问题,此函数在 mmap 锁定降级之后才能找到被隔离的 vma。
请注意,与升级至 mmap 写入锁定(会增加争夺概率)相比,此选项的效果更好。此外,mmap_write_trylock() 已于近期删除。(CVE-2023-52438)

- 在 Linux 内核中,以下漏洞已修复:uio:修复 uio_open core-1 core-2 中的释放后使用 ------------------------------------------------------- uio_unregister_device uio_open idev = idr_find() device_unregister(&idev->dev) put_device(&idev->dev) uio_device_release get_device(&idev->dev) kfree(idev) uio_free_minor(minor) uio_release put_device(&idev->dev) kfree(idev)
------------------------------------------------------- 在 core-1 uio_unregister_device() 中,如果 idev->dev kobject ref 为 1,device_unregister 将 kfree idev。但在执行 core-1 device_unregister、put_device 与 kfree 之间,core-2 可能会 get_device。然后:1. 在 core-1 kfree idev 之后,core-2 将会为 idev 执行释放后使用。2. core-2 执行 uio_release 和 put_device 后,idev 将被双重释放。要解决此问题,我们可通过 minor_lock 获取 idev atomic 和 inc idev 引用。
(CVE-2023-52439)

- 在 Linux 内核中,以下漏洞已修复:apparmor:避免解析的配置文件名称为空时发生崩溃 处理 unpack_profile() 中的打包配置文件时,如配置文件 :ns::samba-dcerpcd /usr/lib*/samba/{,samba/}samba-dcerpcd {...} 所述,字符串 :samba-dcerpcd 被解包为完全限定名称,然后传递至 aa_splitn_fqname()。aa_splitn_fqname() 视 :samba-dcerpcd 仅包含命名空间。因此,它会为 tmpname 返回 NULL,同时 tmpns 为非 NULL。稍后,aa_alloc_profile() 崩溃,因为新的配置文件名称现在为 NULL。一般保护错误,可能适用于非规范地址 0xdffffc0000000000:0000 [#1] PREEMPT SMP KASAN NOPTI KASAN:null-ptr-deref 在范围内 [0x0000000000000000-0x0000000000000007] CPU:6 PID:1657 命令:apparmor_parser 未感染 6.7.0-rc2-dirty #16 硬件名称:QEMU Standard PC(i440FX + PIIX,1996),BIOS rel-1.16.2-3-gd478f380-rebuilt.opensuse.org 04/01/2014 RIP: 0010:strlen+0x1e/0xa0 调用跟踪:<TASK> ? strlen+0x1e/0xa0 aa_policy_init+0x1bb/0x230 aa_alloc_profile+0xb1/0x480 unpack_profile+0x3bc/0x4960 aa_unpack+0x309/0x15e0 aa_replace_profiles+0x213/0x33c0 policy_update+0x261/0x370 profile_replace+0x20e/0x2a0 vfs_write+0x2af/0xe00 ksys_write+0x126/0x250 do_syscall_64+0x46/0xf0 entry_SYSCALL_64_after_hwframe+0x6e/0x76 </TASK> ---[结束跟踪 0000000000000000]--- RIP:
0010:strlen+0x1e/0xa0 aa_splitn_fqname() 的此类行为似乎在预期之中,并在被调用的其他位置(例如 aa_remove_profiles)进行检查。内部有一个明确的注释:可以使用不含以下配置文件的 ns 名称。AFAICS,没有什么能够阻止解包名称采用类似 :samba-dcerpcd 的格式,因为名称从用户空间传递而来。拒绝在此类情况下替换整个配置文件设置,并通过 EPROTO 向用户发送解释消息通知。由 Linux 验证中心 (linuxtesting.org) 发现。
(CVE-2023-52443)

- 在 Linux 内核中,以下漏洞已修复:f2fs:经过修复,可避免 dirent 损坏 如 Al 在 link[1] 中所报告的那样:f2fs_rename() ... 如果 (old_dir != new_dir && !whiteout) f2fs_set_link(old_inode, old_dir_entry, old_dir_page, new_dir); 否则 f2fs_put_page(old_dir_page, 0); 您需要修正 .. 链接中的编号。而且跨目录重命名会将来源移动到新的父项,即使系统要求您在旧地方留下 whiteout。[1] https://lore.kernel.org/all/20231017055040.GN800259@ZenIV/ 使用下面的测试案例时,可能导致 dirent 损坏,因为它未调用 f2fs_set_link() 来更新…
链接到新目录。- mkdir -p dir/foo - renameat2 -w dir/foo bar [ASSERT] (__chk_dots_dentry:1421)
--> '..' 的错误 inode 编号 [0x4],父 ino 为 [0x3] [FSCK] 其他损坏缺陷 [失败] (CVE-2023-52444)

- 在 Linux 内核中,以下漏洞已修复:media:pvrusb2:修复上下文断开连接时发生的释放后使用 在模块加载时,系统为 pvr2_context_thread_func 函数创建了一个 kthread,该函数可以调用 pvr2_context_destroy,因而也能调用上下文对象上的 kfree()。不过,这可能发生在 usb hub_event 处理程序通知驱动程序之前。在 syzbot 报告无效读取之前,此补丁已在上下文断开连接调用堆栈内添加健全性检查。(CVE-2023-52445)

- 在 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 内核中,以下漏洞已修复:mtd:修复 ftl 通知程序造成的 gluebi 空指针取消引用 如果 ftl.ko 和 gluebi.ko 都已加载,尝试访问 gluebi_read() 中的 gluebi->desc' 时,ftl 的通知程序会触发空指针取消引用。ubi_gluebi_init ubi_register_volume_notifier ubi_enumerate_volumes ubi_notify_all gluebi_notify nb->notifier_call() gluebi_create mtd_device_register mtd_device_parse_register add_mtd_device blktrans_notify_add not->add() ftl_add_mtd tr->add_mtd() scan_header mtd_read mtd_read_oob mtd_read_oob_std gluebi_read mtd->read() gluebi->desc - NULL 如需再现问题详情,请访问链接 [1]。正常情况下,请在 gluebi_get_device() 中获取 gluebi->desc,并在 gluebi_read() 中访问 gluebi->desc。但是,gluebi_get_device() 不会提前在 ftl_add_mtd() 进程中执行,导致发生空指针取消引用。适用于 gluebi 模块的解决方案是在 UBI 卷上运行 jffs2,而不考虑使用 ftl 或 mtdblock [2]。因此,通过阻止 gluebi 在创建类型 MTD_UBIVOLUME 的 mtd 分区后创建 mtdblock 设备,可避免此问题。(CVE-2023-52449)

- 在 Linux 内核中,以下漏洞已修复:powerpc/pseries/memhp:修复超出 drmem 数组结尾的访问 如果 LMB 查找无法将条目与给定的 DRC 索引匹配,dlpar_memory_remove_by_index() 可能会越界访问 drmem lmb 数组。如果搜索失败,光标仍会指向 &drmem_info->lmbs[drmem_info->n_lmbs],即数组中最后一个有效条目之后的元素。函数末尾的调试消息随后可取消引用此指针:
pr_debug(无法热删除 %llx\n 的内存,lmb->base_addr);检查时发现了问题,并通过 KASAN 进行了确认:pseries-hotplug-mem:尝试热删除 LMB,drc 索引 1234 ======================== ========================================== 缺陷:KASAN:dlpar_memory+0x298/0x1658 中存在 slab-out-of-bounds 读取大小为 8 位置:addr c000000364e97fd0 按任务 bash/949 dump_stack_lvl+0xa4/0xfc (unreliable) print_report+0x214/0x63c kasan_report+0x140/0x2e0
__asan_load8+0xa8/0xe0 dlpar_memory+0x298/0x1658 handle_dlpar_errorlog+0x130/0x1d0 dlpar_store+0x18c/0x3e0 kobj_attr_store+0x68/0xa0 sysfs_kf_write+0xc4/0x110 kernfs_fop_write_iter+0x26c/0x390 vfs_write+0x2d4/0x4e0 ksys_write+0xac/0x1a0 system_call_exception+0x268/0x530 system_call_vectored_common+0x15c/0x2ec 由任务 1 分配:kasan_save_stack+0x48/0x80 kasan_set_track+0x34/0x50 kasan_save_alloc_info+0x34/0x50 __kasan_kmalloc+0xd0/0x120 __kmalloc+0x8c/0x320 kmalloc_array.constprop.0+0x48/0x5c drmem_init+0x2a0/0x41c do_one_initcall+0xe0/0x5c0 kernel_init_freeable+0x4ec/0x5a0 kernel_init+0x30/0x1e0 ret_from_kernel_user_thread+0x14/0x1c 有缺陷的地址属于 c000000364e80000 中的对象(属于大小为 131072 的缓存 kmalloc-128k)。有缺陷的地址位于被分配 98256 字节的区域的右侧 0 字节处 [c000000364e80000, c000000364e97fd0) ================================================================== pseries-hotplug-mem:
无法删除 0 处的内存 系统无法记录通过单独的消息执行的查找,并且仅当光标指向有效条目时才能取消引用。(CVE-2023-52451)

- 在 Linux 内核中,以下漏洞已修复:nvmet-tcp:修复主机发送无效 H2C PDU 长度时发生的内核错误 如果主机发送含有无效 DATAL 的 H2CData 命令,内核在 nvmet_tcp_build_pdu_iovec() 中可能会崩溃。无法处理虚拟地址 0000000000000000 中发生的内核空指针取消引用 lr:nvmet_tcp_io_work+0x6ac/0x718 [nvmet_tcp] 调用跟踪:
process_one_work+0x174/0x3c8 worker_thread+0x2d0/0x3e8 kthread+0x104/0x110 如果 DATAL 与数据包大小不一致,则通过触发致命错误来修复此缺陷。此外,PDU 长度不应超过 MAXH2CDATA 参数,该参数已在 nvmet_tcp_handle_icreq() 中传递给主机。(CVE-2023-52454)

- 在 Linux 内核中,以下漏洞已修复:serial:8250:omap:如果 pm_runtime_resume_and_get() 失败,则不跳过资源释放 从 .remove() 返回错误代码可使驱动程序核心发出“几乎无用”的错误消息:移除回调返回了非零值。系统会忽略此消息,然后仍然移除设备。因此,在这种情况下,所有未释放的资源都会被泄露。
跳过 serial8250_unregister_port() 可能会保留足够的 UART,从而触发释放后使用。因此,以更有用的错误消息替换返回的错误(以及“几乎无用”的错误消息)并继续清理。(CVE-2023-52457)

- 在 Linux 内核中,以下漏洞已修复:EDAC/thunderx:修复可能存在的越界字符串访问 如果在全局范围启用 -Wstringop-overflow,系统会针对使用 strncat() 时存在的常见缺陷显示警告消息:drivers/edac /thunderx_edac.c:在函数“thunderx_ocx_com_threaded_isr”中:
drivers/edac/thunderx_edac.c:1136:17:错误:“strncat”指定的边界 1024 等于目标大小 [-Werror=stringop-overflow=] 1136 | strncat(msg, other, OCX_MESSAGE_SIZE); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ... 1145 | strncat(msg, other, OCX_MESSAGE_SIZE); ... 1150 | strncat(msg, other, OCX_MESSAGE_SIZE); ... 显然,此驱动程序的作者预期 strncat() 会以 strlcat() 的方式运行,后者使用目标缓冲区的大小而不是源缓冲区的长度作为第三个参数。结果就是系统不会检查已分配缓冲区的大小,而是将其更改为 strlcat()。[ bp:调整编译器输出,修复提交消息。] (CVE-2023-52464)

- 在 Linux 内核中,以下漏洞已修复:drivers/amd/pm:修复 kv_parse_power_table 中的释放后使用 如果 kzalloc 分配的 ps 为空,kv_parse_power_table 会释放之前分配的 adev->pm.dpm.ps。但是,在控制流经过以下调用链之后:kv_parse_power_table |-> kv_dpm_init |-> kv_dpm_sw_init |-> kv_dpm_fini 在 kv_parse_power_table 中第一次释放后,adev->pm.dpm.ps 用于 kv_dpm_fini 的 for 循环,并且会造成释放后使用缺陷。(CVE-2023-52469)

- 在 Linux 内核中,以下漏洞已修复:drm/radeon:检查 radeon_crtc_init() 中的 alloc_workqueue 返回值 检查 radeon_crtc_init() 中的 alloc_workqueue 返回值,以避免 null-ptr-deref。(CVE-2023-52470)

- 在 Linux 内核中,以下漏洞已修复:binder:修复 mmput() 和 do_exit() 之间的争用 任务 A 需要调用 binder_update_page_range() 才能在任务 B 的远程地址空间中分配和插入页面。为此,任务 A 需要先通过 mmget_not_zero() 固定远程 mm。这可能与任务 B do_exit() 发生争用,并且任务 A 最终会发生 mmput() 引用计数减少。任务 B
-----------------+-------------------- mmget_not_zero() | | do_exit() | | exit_mm() | mmput() mmput() | | exit_mmap() | remove_vma() | fput() | 在这种情况下,任务 B 中的 ____fput() 工作会以 TWA_RESUME 的形式出现在任务 A 的队列中。因此,理论上,任务 A 会返回用户空间并执行清理工作。
然而,任务 A 却进入了休眠状态,等待任务 B 回复,但是任务 B 从未回复(处于无效状态)。这意味着 binder_deferred_release() 会遭到拦截,直到不相关的 binder 事件强制任务 A 返回用户空间。所有相关的无效通知也将延迟到那个时候。为了修复此问题,请使用 mmput_async()(而非任务 A)在相应的 mm->async_put_work WQ 中安排工作。(CVE-2023-52609)

- 在 Linux 内核中,以下漏洞已修复:crypto:scomp - 修复 req->dst 缓冲区溢出 从 scomp_scratch->dst 复制 req->dst 缓冲区之前,应检查其大小,以免出现 req->dst 缓冲区溢出问题。(CVE-2023-52612)

- 在 Linux 内核的 Netfilter 子系统中发现一个缺陷。问题出在 nft_byteorder_eval() 函数中,其中的代码会在循环中迭代,并写入“dst”数组。每次迭代都会写入 8 个字节,但“dst”是 u32 数组,因此每个元素只有 4 个字节的空间。这意味着每次迭代都会覆盖前一个损坏此 u32 数组的元素的部分。本地用户可利用此缺陷造成拒绝服务或可能破坏 NetFilter 功能。(CVE-2024-0607)

- 在 6.7.1 及以下版本的 Linux 内核中,drivers/md/dm-ioctl.c 中的 copy_params 可能会尝试分配超过 INT_MAX 的字节,然后崩溃,原因是缺少 param_kernel->data_size 检查。此问题与 ctl_ioctl 有关。(CVE-2024-23851)

- 在 Linux 内核中,以下漏洞已修复:net:qualcomm:rmnet:修复 rmnet_policy 中的全局 oob 变量 rmnet_link_ops 分配了*更大的*maxtype 漏洞,会其在解析 netlink 属性时导致发生全局越界读取。请参阅下面的缺陷跟踪:
================================================================== 缺陷:KASAN:validate_nla lib/nlattr.c:386 中存在 global-out-of-bounds [inline] 缺陷:KASAN:
__nla_validate_parse+0x24af/0x2750 lib/nlattr.c:600 中存在 global-out-of-bounds 读取大小为 1 位置:addr ffffffff92c438d0 按任务 syz-executor.6/84207 CPU:0 PID:84207 命令:syz-executor.6 未感染:G N 6.1.0 #3 硬件名称:QEMU Standard PC(i440FX + PIIX,1996),BIOS 1.13.0-1ubuntu1.1 04/01/2014 调用跟踪:<TASK> __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0x8b/0xb3 lib/dump_stack.c:106 print_address_description mm/kasan/report.c:284 [inline] print_report+0x172/0x475 mm/kasan/report.c:395 kasan_report+0xbb/0x1c0 mm/kasan/report.c:495 validate_nla lib/nlattr.c:386 [inline] __nla_validate_parse+0x24af/0x2750 lib/nlattr.c:600 __nla_parse+0x3e/0x50 lib/nlattr.c:697 nla_parse_nested_deprecated include/net/netlink.h:1248 [inline] __rtnl_newlink+0x50a/0x1880 net/core/rtnetlink.c:3485 rtnl_newlink+0x64/0xa0 net/core/rtnetlink.c:3594 rtnetlink_rcv_msg+0x43c/0xd70 net/core/rtnetlink.c:6091 netlink_rcv_skb+0x14f/0x410 net/netlink/af_netlink.c:2540 netlink_unicast_kernel net/netlink/af_netlink.c:1319 [inline] netlink_unicast+0x54e/0x800 net/netlink/af_netlink.c:1345 netlink_sendmsg+0x930/0xe50 net/netlink/af_netlink.c:1921 sock_sendmsg_nosec net/socket.c:714 [inline] sock_sendmsg+0x154/0x190 net/socket.c:734 ____sys_sendmsg+0x6df/0x840 net/socket.c:2482
___sys_sendmsg+0x110/0x1b0 net/socket.c:2536 __sys_sendmsg+0xf3/0x1c0 net/socket.c:2565 do_syscall_x64 arch/x86/entry/common.c:50 [inline] do_syscall_64+0x3b/0x90 arch/x86/entry/common.c:80 entry_SYSCALL_64_after_hwframe+0x63/0xcd RIP: 0033:0x7fdcf2072359 Code: 28 00 00 00 75 05 48 83 c4 28 c3 e8 f1 19 00 00 90 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 b8 ff ff ff f7 d8 64 89 01 48 RSP:002b:00007fdcf13e3168 EFLAGS:00000246 ORIG_RAX:000000000000002e RAX:ffffffffffffffda RBX:00007fdcf219ff80 RCX:00007fdcf2072359 RDX:
0000000000000000 RSI:0000000020000200 RDI:0000000000000003 RBP:00007fdcf20bd493 R08:0000000000000000 R09:0000000000000000 R10:0000000000000000 R11:0000000000000246 R12:0000000000000000 R13:
00007fffbb8d7bdf R14:00007fdcf13e3300 R15:0000000000022000 </TASK> 有缺陷的地址属于变量:rmnet_policy+0x30/0xe0 有缺陷的地址属于物理页:page:0000000065bdeb3c refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x155243 标记:
0x200000000001000(reserved|node=0|zone=2) raw:0200000000001000 ffffea00055490c8 ffffea00055490c8 0000000000000000 raw:0000000000000000 0000000000000000 00000001ffffffff 0000000000000000 页面被弃用,因为:kasan:检测到不良访问 缺陷地址的内存状态:ffffffff92c43780:f9 f9 f9 f9 00 00 00 02 f9 f9 f9 f9 00 00 00 07 ffffffff92c43800:f9 f9 f9 f9 00 00 00 05 f9 f9 f9 f9 06 f9 f9 f9 >ffffffff92c43880:f9 f9 f9 f9 00 00 00 00 00 00 f9 f9 f9 f9 f9 f9 ^ ffffffff92c43900:00 00 00 00 00 00 00 00 07 f9 f9 f9 f9 f9 f9 f9 ffffffff92c43980:00 00 00 07 f9 f9 f9 f9 00 00 00 05 f9 f9 f9 f9 根据“nla_parse_nested_deprecated”的注释,maxtype 应为 len(目标数组)- 1. 因此在此处使用“IFLA_RMNET_MAX”。(CVE-2024-26597)

- 在 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)

- 当路由器遇到太大而无法传输到下一跃点的 IPv6 数据包时,它将向发送方返回“ICMP6 数据包过大 (PTB)”消息。发送方会缓存更新后的最大传输单元 (MTU),以便了解在随后路由到同一主机时不要超过此值。(CVE-2023-52340)

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

解决方案

更新受影响的 kernel 程序包。

另见

https://ubuntu.com/security/notices/USN-6726-2

插件详情

严重性: High

ID: 193376

文件名: ubuntu_USN-6726-2.nasl

版本: 1.1

类型: local

代理: unix

发布时间: 2024/4/17

最近更新时间: 2024/4/18

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

风险信息

VPR

风险因素: Medium

分数: 6.7

CVSS v2

风险因素: Medium

基本分数: 6.8

时间分数: 5

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

CVSS 分数来源: CVE-2023-52469

CVSS v3

风险因素: High

基本分数: 7.8

时间分数: 6.8

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

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

漏洞信息

CPE: cpe:/o:canonical:ubuntu_linux:20.04:-:lts, p-cpe:/a:canonical:ubuntu_linux:linux-image-5.4.0-1034-iot

必需的 KB 项: Host/cpu, Host/Ubuntu, Host/Ubuntu/release, Host/Debian/dpkg-l

易利用性: No known exploits are available

补丁发布日期: 2024/4/16

漏洞发布日期: 2024/1/18

参考资料信息

CVE: CVE-2023-46838, CVE-2023-52340, CVE-2023-52429, CVE-2023-52436, CVE-2023-52438, CVE-2023-52439, CVE-2023-52443, CVE-2023-52444, CVE-2023-52445, CVE-2023-52448, CVE-2023-52449, CVE-2023-52451, CVE-2023-52454, CVE-2023-52457, CVE-2023-52464, CVE-2023-52469, CVE-2023-52470, CVE-2023-52609, CVE-2023-52612, CVE-2024-0607, CVE-2024-23851, CVE-2024-26597, CVE-2024-26633

USN: 6726-2