Amazon Linux 2:kernel (ALASKERNEL-5.10-2024-048)

high Nessus Plugin ID 190029

概要

遠端 Amazon Linux 2 主機缺少安全性更新。

說明

遠端主機上安裝的核心版本早於 5.10.209-198.812。因此,會受到 ALAS2KERNEL-5.10-2024-048 公告中所提及的多個弱點影響。

- Xen 虛擬網路通訊協定中的傳輸要求可由多個部分組成。雖然這些部分不是真的實用,但除了初始部分,其中任何一個都可能是零長度,即根本不攜帶任何資料。除了要傳輸資料的特定初始部分,這些部分會直接轉譯為 Linux 所稱的 SKB 片段。這類轉換的要求部分在針對特定 SKB 而言長度為零時,可導致核心網路程式碼中出現 NULL 解除參照。(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 核心中,下列弱點已修復:gfs2:修復 gfs2_rgrp_dump 中的 NULL 指標解除參照 據 Syzkaller 報告,存取 gfs2_rgrp_dump() 中的 rgd->rd_rgl 時發生 NULL 指標解除參照。在 read_rindex_entry() 中建立 rgd->rd_gl 失敗時,可能會發生這種情況。在 gfs2_rgrp_dump() 中新增 NULL 指標檢查,以防止該情形發生。(CVE-2023-52448)

- 在 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 的 NULL 指標解除參照 [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 位元 VA,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() 中的 null 指標解除參照 kasprintf() 會向動態配置記憶體傳回指標,此指標在失敗時變為 NULL。(CVE-2023-52467)

- 在 Linux 核心中,下列弱點已修復:drivers/amd/pm:修復 kv_parse_power_table 中的釋放後使用 若 kzalloc 配置的 ps 等於 NULL,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)

已報告涉及 netfilter 的超出邊界存取弱點,且此弱點已修復為:f1082dd31fe4 (netfilter:nf_tables:拒絕不受支援系列的表格);建立新的 netfilter 表格時,由於缺少針對 `nf_tables_newtable` 函式中無效 nf_tables 系列 (pf) 值的防護措施,攻擊者可以實現超出邊界存取目的。(CVE-2023-6040)

- 在 Linux 核心中,在 lib/idr.c 的 ida_free 中發現一個 NULL 指標解除參照問題。此問題可能允許使用此程式庫的攻擊者因函式傳回時遺漏檢查而造成拒絕服務弱點。(CVE-2023-6915)

- 在 Linux Kernel 的 SMB Client 子元件中,fs/smb/client/smb2ops.c 的 receive_encrypted_standard 有一個超出邊界記憶體讀取缺陷。發生此問題的原因是 memcpy 長度存在整數反向溢位弱點,這會導致拒絕服務。(CVE-2024-0565)

- 在 Linux 核心的 Netfilter 子系統中發現一個缺陷。問題存在於 nft_byteorder_eval() 函式中,其中的程式碼會反覆使用迴圈並寫入「dst」陣列。每次重複時,都會寫入 8 個位元組,但「dst」是 u32 的陣列,因此每個元素只有 4 個位元組的空間。這表示每次反覆運算都會覆寫損毀此 u32 陣列的部分先前元素。本機使用者可利用此缺陷造成拒絕服務,或可能損壞 NetFilter 的功能。(CVE-2024-0607)

- 當使用者呼叫以 ktls 通訊端作為目標的 splice 函式時,Linux 核心的傳輸層安全性功能中存在一個超出邊界記憶體寫入缺陷。本機使用者可利用此缺陷造成系統當機,或可能提升自己的系統權限。(CVE-2024-0646)

- 在 6.7.1 及其之前版本的 Linux 核心中,net/rds/af_rds.c 的 rds_recv_track_latency 中存在一個 RDS_MSG_RX_DGRAM_TRACE_MAX 比較的差一錯誤,這會導致超出邊界存取。(CVE-2024-23849)

- 在 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] Kernel panic - not syncing: stack-protector: Kernel stack is corrupted in: 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)

請注意,Nessus 並未測試這些問題,而是僅根據應用程式自我報告的版本號碼作出判斷。

解決方案

執行「yum update kernel」以更新系統。

另請參閱

https://alas.aws.amazon.com/AL2/ALASKERNEL-5.10-2024-048.html

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-6915.html

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

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

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

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

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

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

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

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

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

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

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

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

Plugin 詳細資訊

嚴重性: High

ID: 190029

檔案名稱: al2_ALASKERNEL-5_10-2024-048.nasl

版本: 1.4

類型: local

代理程式: unix

已發布: 2024/2/6

已更新: 2024/5/10

支援的感應器: Agentless Assessment, Frictionless Assessment Agent, Frictionless Assessment AWS, Nessus Agent, 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-0646

弱點資訊

CPE: p-cpe:/a:amazon:linux:bpftool, p-cpe:/a:amazon:linux:bpftool-debuginfo, p-cpe:/a:amazon:linux:kernel, p-cpe:/a:amazon:linux:kernel-debuginfo, p-cpe:/a:amazon:linux:kernel-debuginfo-common-aarch64, 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-livepatch-5.10.209-198.812, 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, cpe:/o:amazon:linux:2

必要的 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-52448, CVE-2023-52462, CVE-2023-52463, CVE-2023-52467, CVE-2023-52469, CVE-2023-6040, CVE-2023-6915, CVE-2024-0565, CVE-2024-0607, CVE-2024-0646, CVE-2024-23849, CVE-2024-26586