Ubuntu 14.04 LTS / 16.04 LTS / 18.04 LTS:Linux 核心弱點 (USN-6740-1)

high Nessus Plugin ID 193593

概要

遠端 Ubuntu 主機缺少一個或多個安全性更新。

說明

遠端 Ubuntu 14.04 LTS/16.04 LTS/18.04 LTS 主機上安裝的一個套件受到 USN-6740-1 公告中所提及的多個弱點影響。

- 在配置的 con 和設定的 con->sock 之間,在 Linux 核心中發現一個資料爭用缺陷。在 Linux 核心的 tipc 通訊協定中,存取 net/tipc/topsrv.c 中的 con->sock->sk 時,此問題會導致 NULL 指標解除參照。(CVE-2023-1382)

- 在 Linux 核心的 virtio 網路子元件中,發現 drivers/vhost/net.c 的 vhost_net_set_backend 具有雙重 fget 導致的釋放後使用缺陷。本機攻擊者可利用此缺陷造成系統當機或核心資訊洩漏問題。(CVE-2023-1838)

- Linux 核心允許使用者空間處理程序透過呼叫 prctl (PR_SET_SPECULATION_CTRL 已停用推測功能),以及使用 seccomp 來啟用緩解措施。我們發現,在至少一個主要雲端供應商的 VM 上,即使在使用 prctl 啟用 spectre-BTI 緩解措施之後,核心在某些情況下仍會讓受害者處理程序容易受到攻擊。在開機命令行強制執行 IBRS 緩解措施時,可在裸機上觀察到相同的行為。發生這種情況是因為在啟用純 IBRS (非增強型 IBRS) 的情況下,核心的某些邏輯會判斷為不需要 STIBP。IBRS 位元可暗中防止跨執行緒分支目標插入。
但是,使用舊版 IBRS 時,由於效能原因,IBRS 位元會在傳回至使用者空間時遭到清除,這會停用隱含的 STIBP,並使使用者空間執行緒容易受到 STIBP 防範的跨執行緒分支目標插入弱點影響。(CVE-2023-1998)

- 在 Bluetooth Core Specification 4.2 至 5.4 (含) 中,具有安全簡易配對和安全連線配對的藍牙 BR/EDR 裝置允許強制使用短金鑰長度的特定攔截式攻擊,且可能導致發現加密金鑰和即時插入,亦即 BLUFFS。(CVE-2023-24023)

- 在 6.4.5 之前的 Linux 核心中,drivers/gpu/drm/drm_atomic.c 在非封鎖 Atomic commit 和驅動程式卸載之間發生爭用情形時,會出現釋放後使用情形。(CVE-2023-51043)

- 在 6.6.8 及更低版本的 Linux 核心中,net/bluetooth/af_bluetooth.c 中的 bt_sock_recvmsg 存在釋放後使用情形,這是因為 bt_sock_ioctl 爭用情形所致。(CVE-2023-51779)

- 在 6.7.4 及之前的 Linux 核心中,drivers/md/dm-table.c 中的 dm_table_create 會嘗試 (在 alloc_targets 中) 分配大於 INT_MAX 的位元組,但此位元組會因缺少對 dm_ioctl.target_count 結構的檢查而損毀。(CVE-2023-52429)

- 在 Linux 内核中,下列弱點已修復:media:pvrusb2:修復內容中斷連線時發生的釋放後使用 在模組載入時,系統為 pvr2_context_thread_func 函式建立了一個 kthread,該函式可以呼叫 pvr2_context_destroy,因而也能呼叫內容對象上的 kfree()。不過,這可能發生在 usb hub_event 處置程式通知驅動程式之前。在 syzbot 報告無效讀取之前,此修補程式已在內容中斷連線呼叫堆疊內新增功能健全檢查。(CVE-2023-52445)

- 在 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 核心中,下列弱點已修復: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 核心中,下列弱點已修正:jfs:修正 jfs_evict_inode 中的 uaf 執行 diMount(ipimap) 失敗時,已釋放的物件 ipimap 或可在 diFreeSpecial() 中進行訪問。rcu_core() 呼叫 jfs_free_node() 時發生非同步 ipimap 釋放。因此,diMount(ipimap) 失敗時,sbi->ipimap 不應被初始化為 ipimap。(CVE-2023-52600)

- 在 Linux 核心中,下列弱點已修正:UBSAN:dtSplitRoot 中的 array-index-out-of-bounds Syzkaller 報告了以下問題:oop0:檢測到容量變化範圍在 0 到 32768 之间 UBSAN:
fs/jfs/jfs_dtree.c:1971:9 索引 -2 中的 array-index-out-of-bounds 超出類型「struct dtslot [128]」的範圍 CPU:0 PID:3613 命令:syz-executor270 未污染 6.0.0-syzkaller-09423-g493ffd6605b2 #0 硬體名稱:Google Google Compute Engine/Google Compute Engine,BIOS Google 09/22/2022 呼叫追蹤:<TASK>
__dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0x1b1/0x28e lib/dump_stack.c:106 ubsan_epilogue lib/ubsan.c:151 [inline] __ubsan_handle_out_of_bounds+0xdb/0x130 lib/ubsan.c:283 dtSplitRoot+0x8d8/0x1900 fs/jfs/jfs_dtree.c:1971 dtSplitUp fs/jfs/jfs_dtree.c:985 [inline] dtInsert+0x1189/0x6b80 fs/jfs/jfs_dtree.c:863 jfs_mkdir+0x757/0xb00 fs/jfs/namei.c:270 vfs_mkdir+0x3b3/0x590 fs/namei.c:4013 do_mkdirat+0x279/0x550 fs/namei.c:4038 __do_sys_mkdirat fs/namei.c:4053 [inline] __se_sys_mkdirat fs/namei.c:4051 [inline] __x64_sys_mkdirat+0x85/0x90 fs/namei.c:4051 do_syscall_x64 arch/x86/entry/common.c:50 [inline] do_syscall_64+0x3d/0xb0 arch/x86/entry/common.c:80 entry_SYSCALL_64_after_hwframe+0x63/0xcd RIP:0033:0x7fcdc0113fd9 程式碼:ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 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 c0 ff ff ff f7 d8 64 89 01 48 RSP:002b:00007ffeb8bc67d8 EFLAGS:00000246 ORIG_RAX:0000000000000102 RAX:ffffffffffffffda RBX:0000000000000000 RCX:00007fcdc0113fd9 RDX:
0000000000000000 RSI:0000000020000340 RDI:0000000000000003 RBP:00007fcdc00d37a0 R08:0000000000000000 R09:00007fcdc00d37a0 R10:00005555559a72c0 R11:0000000000000246 R12:00000000f8008000 R13:
0000000000000000 R14:00083878000000f8 R15:0000000000000000 </TASK> 此問題因 fsi 的值小於 -1 所致。雖然系統可以檢查 fsi 值變為 -1 是否會發生迴圈中斷,但 syzbot 能夠產生小於 -1 的值 (導致錯誤)。此修補程式只針對小於 0 的值新增變更。此修補程式已經過 syzbot 測試。(CVE-2023-52603)

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

- 在 Linux 核心的 SCTP 子系統中,在 net/sctp/socket.c 的 sctp_auto_asconf_init 中發現因鎖死而導致的拒絕服務弱點。此瑕疵允許具有本機使用者權限的來賓觸發鎖死,並可能造成系統當機。(CVE-2024-0639)

- 在 6.7.1 版本之前的 Linux 核心中,drivers/md/dm-ioctl.c 內的 copy_params 可嘗試配置超過 INT_MAX 位元組並損毀,這是因為缺少 param_kernel->data_size 檢查所致。此問題與 ctl_ioctl 有關。(CVE-2024-23851)

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

解決方案

更新受影響的 kernel 套件。

另請參閱

https://ubuntu.com/security/notices/USN-6740-1

Plugin 詳細資訊

嚴重性: High

ID: 193593

檔案名稱: ubuntu_USN-6740-1.nasl

版本: 1.1

類型: local

代理程式: unix

已發布: 2024/4/19

已更新: 2024/8/27

支援的感應器: Frictionless Assessment AWS, Frictionless Assessment Azure, Frictionless Assessment Agent, Nessus Agent, Agentless Assessment, Nessus

風險資訊

VPR

風險因素: Medium

分數: 6.7

CVSS v2

風險因素: Medium

基本分數: 6.8

時間分數: 5.3

媒介: CVSS2#AV:L/AC:L/Au:S/C:C/I:C/A:C

CVSS 評分資料來源: CVE-2023-52464

CVSS v3

風險因素: High

基本分數: 7.8

時間分數: 7

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

時間媒介: CVSS:3.0/E:P/RL:O/RC:C

弱點資訊

CPE: cpe:/o:canonical:ubuntu_linux:14.04:-:lts, p-cpe:/a:canonical:ubuntu_linux:linux-image-4.15.0-224-lowlatency, p-cpe:/a:canonical:ubuntu_linux:linux-image-4.15.0-1176-azure, cpe:/o:canonical:ubuntu_linux:16.04:-:lts, cpe:/o:canonical:ubuntu_linux:18.04:-:lts, p-cpe:/a:canonical:ubuntu_linux:linux-image-4.15.0-1151-kvm, p-cpe:/a:canonical:ubuntu_linux:linux-image-4.15.0-1161-gcp, p-cpe:/a:canonical:ubuntu_linux:linux-image-4.15.0-224-generic, p-cpe:/a:canonical:ubuntu_linux:linux-image-4.15.0-1130-oracle, p-cpe:/a:canonical:ubuntu_linux:linux-image-4.15.0-1167-aws

必要的 KB 項目: Host/cpu, Host/Debian/dpkg-l, Host/Ubuntu, Host/Ubuntu/release

可被惡意程式利用: true

可輕鬆利用: Exploits are available

修補程式發佈日期: 2024/4/19

弱點發布日期: 2023/3/17

參考資訊

CVE: CVE-2023-1382, CVE-2023-1838, CVE-2023-1998, CVE-2023-24023, CVE-2023-51043, CVE-2023-51779, CVE-2023-52429, CVE-2023-52445, CVE-2023-52451, CVE-2023-52464, CVE-2023-52600, CVE-2023-52603, CVE-2023-6915, CVE-2024-0639, CVE-2024-23851

USN: 6740-1