Amazon Linux 2:内核 (ALASKERNEL-5.15-2024-036)

high Nessus 插件 ID 190021

简介

远程 Amazon Linux 2 主机缺少安全更新。

描述

远程主机上安装的内核版本低于 5.15.148-97.158。因此,会受到 ALAS2KERNEL-5.15-2024-036 公告中提及的多个漏洞影响。

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

- 在 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 内核中,以下漏洞已修复:bpf:修复对尝试损坏溢出指针的检查 当寄存器作为 1/2/4 字节寄存器在堆栈上溢出时,我们会设置 slot_type[BPF_REG_SIZE - 1](以及其下方可能发生更多少量溢出,具体取决于实际溢出大小)。因此,要检查某个堆栈槽是否发生了寄存器溢出,我们需要查询 slot_type[7],而非 slot_type[0]。为避免以后需要记住和仔细检查此项,只需使用 is_spilled_reg() 辅助函数即可。
(CVE-2023-52462)

- 在 Linux 内核中,以下漏洞已修复:efivarfs:如果不支持 SetVariable,在重新挂载时会强制执行 RO 如果固件不支持运行时的 SetVariable,我们绝不会为该函数分配回调。同时将 efivarfs 挂载为 RO,让任何人都无法调用。但是,我们从不会检查权限标记,除非有人将文件系统重新挂载为 RW。因此,这会导致崩溃,具体如下所示:$ mount -o remount,rw /sys/firmware/efi/efivars $ efi-updatevar -f PK.auth PK [303.279166] 无法处理虚拟地址 0000000000000000 的内核空指针取消引用 [303.280482] 内存中止信息:[ 303.280854] ESR = 0x0000000086000004 [ 303.281338] EC = 0x21:IABT(当前 EL),IL = 32 位 [ 303.282016] SET = 0,FnV = 0 [ 303.282414] EA = 0,S1PTW = 0 [ 303.282821] FSC = 0x04:
0 级转换错误 [ 303.283771] 用户 pgtable:4k 页面,48 位虚拟机,pgdp=000000004258c000 [303.284913] [0000000000000000] pgd=0000000000000000、p4d=0000000000000000 [ 303.286076] 内部错误:
Oops:0000000086000004 [#1] PREEMPT SMP [ 303.286936] 模块链接位置:qrtr tpm_tis tpm_tis_core crct10dif_ce arm_smccc_trng rng_core drm fuse ip_tables x_tables ipv6 [ 303.288586] CPU:1 PID:755 命令:
efi-updatevar 未感染 6.3.0-rc1-00108-gc7d0c4695c68 #1 [ 303.289748] 硬件名称:未知 未知产品/未知产品,BIOS 2023.04-00627-g88336918701d 04/01/2023 [ 303.291150] pstate:60400005 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--) [ 303.292123] pc:0x0 [ 303.292443] lr:
efivar_set_variable_locked+0x74/0xec [ 303.293156] sp:ffff800008673c10 [ 303.293619] x29:
ffff800008673c10 x28:ffff0000037e8000 x27:0000000000000000 [ 303.294592] x26:0000000000000800 x25:
ffff000002467400 x24:0000000000000027 [ 303.295572] x23:ffffd49ea9832000 x22:ffff0000020c9800 x21:
ffff000002467000 [ 303.296566] x20:0000000000000001 x19:00000000000007fc x18:0000000000000000 [303.297531] x17:0000000000000000 x16:0000000000000000 x15:0000aaaac807ab54 [ 303.298495] x14:
ed37489f673633c0 x13:71c45c606de13f80 x12:47464259e219acf4 [ 303.299453] x11:ffff000002af7b01 x10:
0000000000000003 x9:0000000000000002 [ 303.300431] x8:0000000000000010 x7:ffffd49ea8973230 x6:
0000000000a85201 [ 303.301412] x5:0000000000000000 x4:ffff0000020c9800 x3:00000000000007fc [303.302370] x2:0000000000000027 x1:ffff000002467400 x0:ffff000002467000 [ 303.303341] 调用跟踪:[303.303679] 0x0 [ 303.303938] efivar_entry_set_get_size+0x98/0x16c [ 303.304585] efivarfs_file_write+0xd0/0x1a4 [ 303.305148] vfs_write+0xc4/0x2e4 [ 303.305601] ksys_write+0x70/0x104 [303.306073] __arm64_sys_write+0x1c/0x28 [ 303.306622] invoke_syscall+0x48/0x114 [ 303.307156] el0_svc_common.constprop.0+0x44/0xec [ 303.307803] do_el0_svc+0x38/0x98 [ 303.308268] el0_svc+0x2c/0x84 [303.308702] el0t_64_sync_handler+0xf4/0x120 [ 303.309293] el0t_64_sync+0x190/0x194 [ 303.309794] 代码:
???????? ???????? ???????? ???????? (????????) [ 303.310612] ---[结束跟踪 0000000000000000]--- 通过向 fs 操作添加 .reconfigure() 函数修复此漏洞,我们可以使用此函数检查请求的标记,并拒绝不是 RO 的任何内容(前提是固件在运行时未实施 SetVariable)。(CVE-2023-52463)

- 在 Linux 内核中,以下漏洞已修复:mfd:syscon:修复 of_syscon_register() 中的空指针取消引用 kasprintf() 会向动态分配内存返回一个指针,此指针在发生故障时会变为空。(CVE-2023-52467)

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

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

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

- 当用户调用以 ktls 套接字作为目标的函数 splice 时,在 Linux 内核的传输层安全功能中发现一个越界内存写入缺陷。本地用户可利用此缺陷导致系统崩溃或可能升级其系统权限。(CVE-2024-0646)

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

- 在 Linux 内核中,以下漏洞已修复:bpf:修复 bpf_tracing_prog_attach 中的重新附加分支 由于缺少 attach_btf,以下情况会造成崩溃:1) 加载 rawtp 程序 2) 加载将 rawtp 作为 target_fd 的 fentry 程序 3) 利用 target_fd = 0 为 fentry 程序创建跟踪链接 4) 重复 3 最后,我们有:- prog->aux->dst_trampoline == NULL - tgt_prog == NULL(因为我们没有为 link_create 提供 target_fd)- prog->aux->attach_btf == NULL(程序使用 attach_prog_fd=X 加载而来)- 已为 tgt_prog 加载程序,但我们无法找出具体是哪一个 缺陷:内核空指针取消引用,地址:0000000000000058 调用跟踪:<TASK> ? __die+0x20/0x70 ? page_fault_oops+0x15b/0x430 ? fixup_exception+0x22/0x330 ? exc_page_fault+0x6f/0x170 ? asm_exc_page_fault+0x22/0x30 ? bpf_tracing_prog_attach+0x279/0x560 ? btf_obj_id+0x5/0x10 bpf_tracing_prog_attach+0x439/0x560 __sys_bpf+0x1cf4/0x2de0 __x64_sys_bpf+0x1c/0x30 do_syscall_64+0x41/0xf0 entry_SYSCALL_64_after_hwframe+0x6e/0x76 在此情况下返回 -EINVAL。
(CVE-2024-26591)

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

解决方案

运行“yum update kernel”以更新系统。

另见

https://alas.aws.amazon.com/faqs.html

https://alas.aws.amazon.com/cve/html/CVE-2023-6040.html

https://alas.aws.amazon.com/cve/html/CVE-2023-46838.html

https://alas.aws.amazon.com/cve/html/CVE-2023-6915.html

https://alas.aws.amazon.com/cve/html/CVE-2024-0565.html

https://alas.aws.amazon.com/cve/html/CVE-2024-0646.html

https://alas.aws.amazon.com/AL2/ALASKERNEL-5.15-2024-036.html

https://alas.aws.amazon.com/cve/html/CVE-2024-1085.html

https://alas.aws.amazon.com/cve/html/CVE-2023-52463.html

https://alas.aws.amazon.com/cve/html/CVE-2023-52439.html

https://alas.aws.amazon.com/cve/html/CVE-2023-52462.html

https://alas.aws.amazon.com/cve/html/CVE-2023-52467.html

https://alas.aws.amazon.com/cve/html/CVE-2024-26591.html

https://alas.aws.amazon.com/cve/html/CVE-2024-26586.html

插件详情

严重性: High

ID: 190021

文件名: al2_ALASKERNEL-5_15-2024-036.nasl

版本: 1.5

类型: local

代理: unix

发布时间: 2024/2/6

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

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

风险信息

VPR

风险因素: High

分数: 7.4

CVSS v2

风险因素: High

基本分数: 7.7

时间分数: 5.7

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

CVSS 分数来源: CVE-2024-0565

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

CVSS 分数来源: CVE-2024-1085

漏洞信息

CPE: cpe:/o:amazon:linux:2, p-cpe:/a:amazon:linux:kernel, p-cpe:/a:amazon:linux:kernel-debuginfo, p-cpe:/a:amazon:linux:kernel-debuginfo-common-x86_64, p-cpe:/a:amazon:linux:kernel-devel, p-cpe:/a:amazon:linux:kernel-headers, p-cpe:/a:amazon:linux:kernel-tools, p-cpe:/a:amazon:linux:kernel-tools-debuginfo, p-cpe:/a:amazon:linux:kernel-tools-devel, p-cpe:/a:amazon:linux:perf, p-cpe:/a:amazon:linux:perf-debuginfo, p-cpe:/a:amazon:linux:python-perf, p-cpe:/a:amazon:linux:python-perf-debuginfo, p-cpe:/a:amazon:linux:kernel-debuginfo-common-aarch64, p-cpe:/a:amazon:linux:bpftool, p-cpe:/a:amazon:linux:bpftool-debuginfo, p-cpe:/a:amazon:linux:kernel-livepatch-5.15.148-97.158

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

易利用性: No known exploits are available

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

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

参考资料信息

CVE: CVE-2023-46838, CVE-2023-52439, CVE-2023-52462, CVE-2023-52463, CVE-2023-52467, CVE-2023-6040, CVE-2023-6915, CVE-2024-0565, CVE-2024-0646, CVE-2024-1085, CVE-2024-26586, CVE-2024-26591