|
各大廠牌軟硬體高風險弱點摘要
|
| 廠牌 |
軟硬體型號 |
弱點數量 |
說明 |
CVE ID |
| Adobe | Acrobat Reader | 1 | Adobe Acrobat Reader 2020.009.20074、2020.001.30002、2017.011.30171、2015.006.30523 及更早版本存在越界寫入弱點,可能導致目前登入使用者權限下執行任意程式碼。利用此弱點需使用者互動,受害者必須開啟惡意檔案才可能遭受攻擊。 | CVE-2020-9695
|
| Cacti | cacti | 1 | Cacti 1.2.30(含)以前版本存在 SQL Injection 弱點,`rfilter` 參數未經適當過濾即拼接至 SQL `RLIKE` 條件中。若系統啟用訪客瀏覽功能,攻擊者無須登入即可利用此弱點。此問題已於 1.2.31 修正。 | CVE-2026-39893
|
| Cacti | cacti | 1 | Cacti 1.2.30(含)以前版本存在未經驗證的本機檔案包含(LFI)弱點,可透過 `graph_theme` 參數利用。此弱點已於 1.2.31 修正 | CVE-2026-39938
|
| Cacti | cacti | 1 | Cacti 1.2.30(含)以前版本在 `graph_view.php` 中,因 `FILTER_VALIDATE_REGEXP` 驗證機制不足,存在未經驗證的 SQL Injection 弱點。此問題已於 1.2.31 修正。 | CVE-2026-39955
|
| Cacti | cacti | 1 | Cacti 1.2.30(含)以前版本的 Reports 功能中,`graph_name_regexp` 參數存在儲存型 SQL Injection 弱點。此問題已於 1.2.31 修正。 | CVE-2026-39951
|
| Cacti | cacti | 1 | Cacti 1.2.30(含)以前版本在 `managers.php` 中,因 `selected_graphs_array` 經反序列化後未驗證資料內容,即直接組合至 SQL 指令,導致具 SNMP Agent 管理權限的使用者可利用 SQL Injection。此問題已於 1.2.31 修正。 | CVE-2026-40083
|
| Dell | Container Storage Modules | 1 | Dell Container Storage Modules(csi-powerstore、csi-unity、csi-powerflex、csi-powermax v2.16.0)存在作業系統命令注入弱點,具高權限的遠端攻擊者可能利用此弱點執行任意系統命令。 | CVE-2026-40711
|
| Dell | Display and Peripheral Manager | 1 | Dell Display and Peripheral Manager(Windows)2.3 以前版本存在存取控制不當弱點,本機低權限攻擊者可能利用此弱點執行任意程式碼。 | CVE-2026-46733
|
| Dell | Display and Peripheral Manager | 1 | Dell Display and Peripheral Manager(Mac)2.3 以前版本存在憑證驗證不當弱點,本機低權限攻擊者可能利用此弱點繞過安全防護機制。 | CVE-2026-46734
|
| Dell | Display and Peripheral Manager | 1 | Dell Display and Peripheral Manager(Mac)2.3 以前版本存在作業系統命令注入弱點,本機低權限攻擊者可能利用此弱點執行任意系統命令。 | CVE-2026-46735
|
| Dell | Wyse Management Suite | 1 | Dell Wyse Management Suite 5.5 HF1 以前版本存在不受信任資料處理弱點,低權限遠端攻擊者可能利用此弱點執行遠端程式碼。 | CVE-2026-41120
|
| Dell | Wyse Management Suite | 1 | Dell Wyse Management Suite 5.5 HF1 以前版本存在路徑遍歷弱點,高權限遠端攻擊者可能利用此弱點執行遠端程式碼。 | CVE-2026-49506
|
| Dell | Wyse Management Suite (WMS) | 1 | Dell Wyse Management Suite(WMS)2605 以前版本存在 SQL Injection 弱點,低權限遠端攻擊者可能利用此弱點取得未經授權的存取權限。 | CVE-2026-44271
|
| Dell | Wyse Management Suite (WMS) | 1 | Dell Wyse Management Suite(WMS)2605 以前版本存在 SQL Injection 弱點,低權限遠端攻擊者可能利用此弱點取得未經授權的存取權限。 | CVE-2026-44272
|
| Dell | Wyse Management Suite (WMS) | 1 | Dell Wyse Management Suite(WMS)2605 以前版本存在連結解析不當弱點,本機低權限攻擊者可能利用此弱點取得未經授權的存取權限。 | CVE-2026-44274
|
| IBM | i | 1 | IBM WebSphere Application Server 與 Liberty 在搭配 Intelligent Management 及 Web Server Plug-in 使用時,存在遠端程式碼執行及阻斷服務弱點。攻擊者可偽裝成後端伺服器並回傳特製回應進行攻擊。 | CVE-2026-9072
|
| IBM | i | 1 | IBM WebSphere Application Server 與 Liberty 的 Web Server Plug-in 存在遠端程式碼執行及阻斷服務弱點,攻擊者可偽裝應用程式伺服器並傳送特製回應進行攻擊。 | CVE-2026-8858
|
| IBM | Langflow OSS | 1 | IBM Langflow OSS 1.0.0 至 1.9.3 因 Python 執行環境隔離不足,加上身分驗證繞過弱點,未經驗證的攻擊者可於主機執行任意程式碼,造成系統完全遭入侵。 | CVE-2026-10561
|
| IBM | Langflow OSS | 1 | IBM Langflow OSS 1.0.0 至 1.8.4 因 Streamable MCP 傳輸端點授權驗證不足,未經驗證的攻擊者可存取受保護的 MCP 專案資源並執行 MCP 操作。 | CVE-2026-7664
|
| IBM | Storage Protect Client | 1 | IBM Storage Protect Client 8.1.0.0 至 8.2.1.0 與 IBM Storage Protect Snapshot for Windows 因 FlashCopy Manager 使用硬編碼憑證,且未妥善驗證身分驗證回應,攻擊者可能繞過身分驗證,偽裝合法用戶端並存取受保護服務。 | CVE-2026-12628
|
| IBM | WebSphere Application Server | 1 | IBM WebSphere Application Server 及 Liberty 存在 HTTP Request Smuggling(HTTP 請求走私)弱點,攻擊者可透過特製 HTTP 請求繞過安全控制、偽造身分、提升權限或洩露敏感資訊。 | CVE-2026-8646
|
| IBM | WebSphere Application Server | 1 | IBM WebSphere Application Server 9.0 與 8.5 在啟用 Ajax Proxy 時存在伺服器端請求偽造(SSRF)弱點,攻擊者可能利用此弱點發送未經授權的請求,造成安全機制繞過或資訊外洩。 | CVE-2026-9006
|
| IBM | WebSphere Application Server | 1 | IBM WebSphere Application Server 及 Liberty 存在阻斷服務(DoS)弱點,攻擊者可透過特製請求耗盡伺服器記憶體資源,導致服務中斷。 | CVE-2026-9071
|
| Linux | Linux | 1 | Linux Kernel 已修補 batman-adv 在封包片段重組時的長度計算弱點。此前累積長度可能發生截斷,導致異常片段鏈繞過驗證並造成重組錯誤,進而引發本機阻斷服務(DoS)。 | CVE-2026-52914
|
| Linux | Linux | 1 | Linux Kernel 已修補 SCTP 在處理 Stale Cookie 時的 Use-After-Free(使用後釋放)弱點。由於回滾至 `COOKIE_WAIT` 狀態時未完整清除傳輸佇列,可能使排程器持續存取已釋放的記憶體,導致核心當機。修補方式為完整清除 association 的 outqueue,以避免後續存取已失效的資料結構。 | CVE-2026-52924
|
| Linux | Linux | 1 | 在 Linux 核心中,已修正下列漏洞: batman-adv: tp_meter:避免使用未初始化的 sender 變數 batadv_tp_recv_ack() 與 batadv_tp_stop() 僅適用於角色為 BATADV_TP_SENDER 的 tp_vars。若以 BATADV_TP_RECEIVER 角色呼叫,函式仍會讀取僅供 sender 使用、但從未初始化的成員,導致未定義行為(Undefined Behavior)。 當節點目前在進行中的 tp_meter 工作階段中扮演 receiver,並收到惡意構造的 ACK 封包時,即可觸發此問題。 修補方式是在查詢 tp_vars 後立即檢查 tp_vars->role,若不是 BATADV_TP_SENDER,則立即結束處理,避免存取任何 sender 專用成員。 | CVE-2026-52931
|
| Linux | Linux | 1 | 在 Linux 核心中,已修正下列漏洞: libceph:修正 crush_decode() 潛在的越界存取(Out-of-Bounds Access) 若 CEPH_MSG_OSD_MAP 訊息中的 CRUSH Map 至少包含一個 bucket,則其中有兩個欄位皆記錄 bucket 演算法。 若這兩個欄位的值不同,可能導致越界存取。 原因是: 第一個演算法欄位 (alg) 用來配置對應 bucket 所需的記憶體大小。 第二個 bucket 內部欄位 (b->alg) 則於後續解析流程中使用。 若兩者不一致,就可能依據錯誤型別解析資料,造成越界存取。 此修補加入 alg 與 b->alg 的一致性檢查,若不同則中止解析流程。 此外,此情況下會將 b->alg 設為 0,因為 CRUSH Map 銷毀流程同樣依賴此欄位判斷 bucket 類型,否則釋放 bucket 記憶體時仍可能再次發生越界存取。 為了能正確釋放 bucket 記憶體,也將 kfree() 呼叫由演算法專屬的 crush_destroy_bucket() 移至通用版 crush_destroy_bucket()。 | CVE-2026-52955
|
| Linux | Linux | 1 | 在 Linux 核心中,已修正下列漏洞: libceph:修正 osdmap_decode() 潛在的越界存取 在 osdmap_decode() 解碼收到的 OSD Map 時,會針對每個 OSD 解碼 osd_state 與 osd_weight,共執行 map->max_osd 次。 然而 ceph_decode_need() 的容量檢查僅計算了一次 sizeof(*map->osd_weight)。 若收到遭破壞的 OSD Map,刻意將 max_osd 設得大於實際資料長度,便可能導致越界記憶體存取。 修補方式是將檢查改為: map->max_osd * sizeof(*map->osd_weight), 使容量驗證符合實際需求。 | CVE-2026-52958
|
| Linux | Linux | 1 | 在 Linux 核心中,已修正下列漏洞: net: usb: rtl8150:修正 rtl8150_start_xmit() 的 Use-After-Free syzbot 回報,在 usb_submit_urb() 呼叫後,rtl8150_start_xmit() 仍讀取 skb->len 更新 TX 統計資訊,導致 KASAN 偵測到 Use-After-Free。 原因為: URB 完成回呼 write_bulk_callback() 會透過 dev_kfree_skb_irq() 釋放 skb。 URB 可於另一顆 CPU 的 softirq 中完成,因此在 usb_submit_urb() 尚未返回前,skb 即可能已被釋放。 呼叫端之後再讀取 skb->len 即形成 Use-After-Free。 修補方式是在送出 URB 前先快取 skb->len,更新 tx_bytes 時使用快取值。 此修補亦維持原本 tx_bytes 的語意,即統計原始 frame 長度 (skb->len),而非傳送給裝置時因 Ethernet 或 USB 對齊而補齊後的長度 (count)。 | CVE-2026-52982
|
| Linux | Linux | 1 | 在 Linux 核心中,已修正下列漏洞: netfilter: nf_conntrack_sip:不要使用 simple_strtoul() 以新的 sip_parse_port() 函式取代: epaddr_len() ct_sip_parse_header_uri() ct_sip_parse_request() 中的連接埠解析。 新的函式會逐位驗證數字是否超出緩衝區範圍,不再依賴假設字串已 NUL 結尾的 simple_strtoul()。 舊程式存在以下問題: sip_parse_addr() 後直接解參考指標,未做邊界檢查。 對未以 NUL 結尾的 skb 資料使用 simple_strtoul()。 若 port 剛好到達緩衝區尾端且沒有結束字元,也應視為格式錯誤。 其他修改包括: 超過 UINT_MAX 或數字過長即視為失敗。 雖接受 05535(解析為 5535),但拒絕如 sip:10.0.0.1:005060 這類大量前導零的輸入,以避免惡意封包浪費 CPU。 ct_sip_parse_numerical_param() 強制使用十進位解析。 nf_nat_sip.c 僅接受介於 1000?65535 的連接埠。 epaddr_len() 對無效 port 回傳 0。 由於 nf_conntrack_sip 大量依靠推測解析 SIP 訊息,因此修補仍維持盡量不阻擋合法流量。 | CVE-2026-52986
|
| Linux | Linux | 1 | 在 Linux 核心中,已修正下列漏洞: nvmet-tcp:將 nvmet_tcp_build_pdu_iovec() 的錯誤回傳給呼叫端 目前 nvmet_tcp_build_pdu_iovec() 若偵測 PDU 長度或偏移越界,會呼叫 nvmet_tcp_fatal_error() 後直接返回。 然而該函式回傳型別為 void,呼叫端完全不知道已發生致命錯誤,因此 cmd->recv_msg.msg_iter 保持未初始化。 例如 nvmet_tcp_handle_h2c_data_pdu() 仍會將佇列狀態改成 NVMET_TCP_RECV_DATA。 後續 socket 接收流程便可能把網路資料寫入未初始化的 iterator。 修補方式是改由呼叫端負責錯誤處理。 | CVE-2026-52989
|
| Linux | Linux | 1 | 在 Linux 核心中,已修正下列漏洞: tipc:修正 tipc_buf_append() 的 Double-Free tipc_msg_validate() 在驗證 skb 時可能重新配置 skb,並釋放舊的 skb。 tipc_buf_append() 當時傳入的是呼叫者 skb 指標的區域副本。 若重新配置後驗證失敗,錯誤處理仍會釋放原本的 skb,而該 skb 已被釋放,造成 Double-Free。 修補方式是在重新配置後檢查 head 是否指向新的 skb,若是則同步更新 *headbuf,避免之後再次釋放舊記憶體。 | CVE-2026-52993
|
| Linux | Linux | 1 | 在 Linux 核心中,已修正下列漏洞: netfilter: nfnetlink_osf:修正選項比對時的越界讀取 nf_osf_match() 初始化 nf_osf_hdr_ctx 後,會將其傳給每個 fingerprint 的 nf_osf_match_one()。 解析 TCP 選項時,nf_osf_match_one() 會推進共用的 ctx->optp 指標。 若某 fingerprint 完全符合,函式會提前返回,而未恢復 ctx->optp。 若使用者設定 NF_OSF_LOGLEVEL_ALL,接著比對下一個 fingerprint 時,就會從選項尾端開始解析,導致: 讀取垃圾資料。 比對立即失敗。 無法正確記錄多筆 fingerprint。 修補方式是不再共用 ctx->optp,改以唯讀 context 加上區域變數 optp,使每次比對都從正確位置開始。 | CVE-2026-52999
|
| Linux | Linux | 1 | 在 Linux 核心中,已修正下列漏洞: netfilter: conntrack:移除 sprintf() 使用 改用 scnprintf()。 原本緩衝區大小已足夠,因此不需要 snprintf() 加溢位檢查。 同時增加 mangle_content_len() 的緩衝區大小。 此漏洞可能導致 KASAN 偵測到 stack-out-of-bounds。 | CVE-2026-53002
|
| Linux | Linux | 1 | 在 Linux 核心中,已修正下列漏洞: ipv6:修正 icmpv6_rcv() 潛在 Use-After-Free 在 pskb_pull() 前快取來源與目的 IPv6 位址 (saddr、daddr) 並不安全,因為 skb->head 可能改變。 因此移除這些暫存變數: 慢速路徑僅在 net_dbg_ratelimited() 時存取 IPv6 header。 避免未來在 pskb_pull() 後誤用這些指標。 | CVE-2026-53006
|
| Linux | Linux | 1 | 在 Linux 核心中,已修正下列漏洞: ksmbd:修正 durable reconnect 時的 Use-After-Free smb2_open() 在 durable reconnect 過程中過早呼叫 ksmbd_put_durable_fd(fp),導致 durable file descriptor 提前釋放。 若後續發生錯誤(例如 ksmbd_iov_pin_rsp 失敗)或 scavenger 存取該檔案,就可能在讀取 fp->create_time 等欄位時發生 Use-After-Free。 修補方式是將 put 操作移至函式尾端 (err_out2 之後),確保 fp 在 smb2_open() 返回前保持有效。 | CVE-2026-53010
|
| Linux | Linux | 1 | 在 Linux 核心中,已修正下列漏洞: ocfs2/dlm:在 dlm_match_regions() 中驗證 qr_numregions 修補系列:「ocfs2/dlm:修正 dlm_match_regions() 中的兩個錯誤」。 在 dlm_match_regions() 中,來自 DLM_QUERY_REGION 網路訊息的 qr_numregions 欄位會直接作為遍歷 qr_regions 緩衝區的迴圈次數,但缺乏充分的驗證。 此修補系列修正了兩個問題: 修補 1: 新增邊界檢查,當 qr_numregions 超過 O2NM_MAX_REGIONS 時,直接拒絕該訊息。o2net 層僅驗證訊息位元組長度,並不限制欄位值,因此惡意構造的訊息可將 qr_numregions 設為最高 255,導致讀取超過 1024 位元組 qr_regions 緩衝區範圍之外的資料。 修補 2: 修正本機與遠端區域比較迴圈中的 off-by-one 錯誤。原本使用 <= 而非 <,即使 qr_numregions 位於合法範圍內,仍會多讀取一筆超出有效範圍的資料。 本修補(第 2 個修補)主要內容如下: dlm_match_regions() 直接使用 DLM_QUERY_REGION 訊息中的 qr_numregions 作為迴圈上限,但未檢查是否超過 O2NM_MAX_REGIONS。 由於 qr_regions 最多僅可容納 O2NM_MAX_REGIONS(32)筆資料,若惡意訊息將 qr_numregions 設為大於 32,便會導致越界讀取。 因此,在進入迴圈前新增 qr_numregions 的邊界檢查。 | CVE-2026-53043
|
| Linux | Linux | 1 | 在 Linux 核心中,已修正下列漏洞: memory: tegra124-emc:修正 dll_change 判斷 檢查指定記憶體時序是否在 EMRS 暫存器中啟用 DLL(Delay Locked Loop)的程式邏輯方向相反。 實際上,當 A0 位元為 0(Low)時,DLL 才是啟用狀態。 本修補修正了此判斷條件。 | CVE-2026-53045
|
| Linux | Linux | 1 | 在 Linux 核心中,已修正下列漏洞: ksmbd:修正 Qualcomm Crypto Engine 非同步加密造成的 Use-After-Free ksmbd_crypt_message() 對 AEAD 加密請求設定了 NULL 完成回呼(completion callback),且未處理 Qualcomm Crypto Engine(QCE)等非同步硬體加密引擎可能回傳的 -EINPROGRESS。 當 QCE 回傳 -EINPROGRESS 時,ksmbd 誤將其視為錯誤,立即釋放該 request,但此時硬體 DMA 作業仍在執行中。 待 DMA 完成後,完成回呼仍會存取已被釋放的記憶體,造成 NULL 指標當機。 修補方式改採 Linux 標準的 crypto_wait_req() 使用模式,以 crypto_req_done() 作為完成回呼,與 SMB 用戶端 (fs/smb/client/smb2ops.c) 相同。 如此即可同時正確支援: 同步加密引擎(立即返回) 非同步加密引擎(先回傳 -EINPROGRESS,再由 callback 通知完成) | CVE-2026-53046
|
| Linux | Linux | 1 | 在 Linux 核心中,已修正下列漏洞: gfs2:補齊遺漏的 Log Lock gfs2_logd() 在未持有 sdp->sd_log_flush_lock 的情況下,呼叫: gfs2_ail1_start() gfs2_ail1_wait() gfs2_ail1_empty() 然而,這些函式需要避免與其他交易(transaction)同時執行。 修補方式: 新增不自行加鎖的 __gfs2_log_flush()。 gfs2_logd() 在呼叫上述函式與 __gfs2_log_flush() 前,先取得 sd_log_flush_lock。 | CVE-2026-53049
|
| Linux | Linux | 1 | 在 Linux 核心中,已修正下列漏洞: crypto: hisilicon/sec2:避免 request 發生 Use-After-Free 封包傳輸期間,在系統負載過高時,硬體可能在傳送函式尚未結束前便完成封包處理,並提前釋放 request (req) 記憶體。 若軟體之後仍存取該 req,便會發生 Use-After-Free。 由於 qp_ctx 在整個封包傳送期間皆保持有效,因此改以 qp_ctx 取代 req 作為後續存取對象。 | CVE-2026-53055
|
| Linux | Linux | 1 | 在 Linux 核心中,已修正下列漏洞: net: bcmgenet:修正 timeout handler 的競態問題 bcmgenet_timeout() 在單一 TX Queue 發生 timeout 時,會將所有 TX Queue 全部停止。 此作法過於激進,容易與仍正常運作中的 Queue 發生競態條件(Race Condition)。 修補後僅重新啟動發生 timeout 的 Queue,而不影響其他正常運作的 Queue。 | CVE-2026-53086
|
| Linux | Linux | 1 | 在 Linux 核心中,已修正下列漏洞: net: bcmgenet:修正 bcmgenet_put_txcb() 的 Off-by-One write_ptr 指向下一個可用的 tx_cb。 實際需要回收的是即將被回退(rewind)的 tx_cb。 因此應先回退指標,再回傳目前所指向的 tx_cb。 如此才能正確清理該 tx_cb。 | CVE-2026-53088
|
| Linux | Linux | 1 | 在 Linux 核心中,已修正下列漏洞: netfilter:使用 eth_hdr() 前必須確認 Ethernet MAC Header 存在 包括: ip6t_eui64 xt_mac bitmap:ip,mac hash:ip,mac hash:mac nf_log_syslog 等程式碼,在呼叫 eth_hdr(skb) 時: 要嘛直接假設 skb 一定來自 Ethernet 裝置; 要嘛僅確認 skb_mac_header() 至少有 ETH_HLEN 位元組。 修補後,所有相關程式都必須先確認: skb 確實來自 Ethernet 裝置。 MAC Header 已設定。 MAC Header 長度至少完整涵蓋一個 Ethernet Header。 之後才能安全呼叫 eth_hdr(skb)。 | CVE-2026-53131
|
| Linux | Linux | 1 | 在 Linux 核心中,已修正下列漏洞: rxrpc:修正 ACK Parser 擷取 SACK Table 的方式 修正 rxrpc_input_soft_acks(): 修改收到的 skb。 在 UDP 分段封包中可能錯誤存取資料。 AF_RXRPC 原本假設: 呼叫 skb_condense() 後, skb->data 一定是一塊連續記憶體, 可直接解析 SACK Table。 但 skb_condense() 在某些情況下可能悄悄失敗,導致此假設不成立。 修補方式: 先將 SACK Table 複製至暫存緩衝區,再進行解析。 另外: 雖然 rxrpc_input_soft_acks() 已能解析 Extended ACK, AF_RXRPC 其他部分目前仍未支援。 因此 rxrpc_input_ack() 已不再需要呼叫 skb_condense(),故將其移除。 | CVE-2026-53151
|
| Linux | Linux | 1 | 在 Linux 核心中,已修正下列漏洞: inet: frags:修正 fqdir_pre_exit() Flush 所造成的 Use-After-Free 當 Network Namespace 關閉時,fqdir_pre_exit() 會巡覽 Fragment Queue Hash Table,並透過 inet_frag_queue_flush() 清空所有尚未完成的 Fragment Queue。 然而: inet_frag_queue_flush() 雖釋放所有 skb, 卻未設定 INET_FRAG_COMPLETE, 也未清除 fragments_tail 與 last_run_head, 導致仍指向已釋放的 skb。 若其他 Fragment 在 Flush 後恢復執行並取得 Queue Lock,仍可能存取這些失效指標,造成 Slab Use-After-Free。 修補方式: 在 inet_frag_queue_flush() 中重設: rb_fragments fragments_tail last_run_head 使 Flush 後 Queue 成為真正的空佇列。 此外,ip_frag_reinit() 中原本已有相同重設邏輯,因此將重複程式碼移除。 IPv6、nf_conntrack_reasm6 以及 6LoWPAN 重組流程同樣受到影響。 | CVE-2026-53175
|
| Linux | Linux | 1 | 在 Linux 核心中,已修正下列漏洞: IB/isert:拒絕長度小於 ISER_HEADERS_LEN 的 Login PDU isert_login_recv_done() 將登入 Payload 長度計算為: wc->byte_len - ISER_HEADERS_LEN 但未檢查下限,且 login_req_len 為有號整數。 若遠端 iSER Initiator 傳送長度小於 76 Bytes (ISER_HEADERS_LEN) 的 Login PDU,減法便會發生下溢,使 login_req_len 成為負值。 後續: isert_rx_login_req() 保留此負值; min() 仍回傳負值; 負值再轉為 size_t 傳入 memcpy(), 最終變成數 GB 的複製長度。 造成超出 8192-byte login->req_buf 的大量越界寫入,使 Target 節點當機。 由於 Login 發生於 iSCSI 驗證之前,因此無需任何認證即可觸發此漏洞。 修補方式是在減法前先拒絕長度不足 ISER_HEADERS_LEN 的 Login PDU。 | CVE-2026-53176
|
| Linux | Linux | 1 | 在 Linux 核心中,已修正下列漏洞: RDMA/srp:依據實際接收長度限制 SRP_RSP Sense Data 的複製 srp_process_rsp() 從: rsp->data + resp_data_len 複製 Sense Data。 其中 resp_data_len 完全由 SRP Target 提供,卻未確認是否超出實際收到的 wc->byte_len。 雖然最多僅複製 96 Bytes,但來源位址可能已遠超過接收緩衝區。 惡意 SRP Target 可回傳極大的 resp_data_len(例如接近 0xFFFFFFFF),導致來源位址落在數 GB 之外,引發存取錯誤。 修補方式: 只有當: Response Header、 Response Data、 Sense Data 全部位於實際收到資料範圍內時,才複製 Sense Data;否則直接捨棄並記錄日誌。 此修補也使 ib_srp 與 iSER、NVMe-RDMA 的解析方式一致。 | CVE-2026-53186
|
| Linux | Linux | 1 | 在 Linux 核心中,已修正下列漏洞: net: mvpp2:在 XDP 或 skb 使用前先補充 RX Buffer RX 錯誤路徑會將目前 Descriptor Buffer 歸還至硬體 BM(Buffer Manager)Pool。 但這僅適用於 Driver 仍擁有該 Buffer 的情況。 若: Buffer 已交給 XDP; 或已附加至 skb; 之後 mvpp2_rx_refill() 又失敗,Driver 仍可能將 Buffer 歸還 BM Pool。 此時: XDP 可能已重新利用、重新導向或送往 XDP_TX; skb 釋放也可能已回收該 Buffer。 硬體若再次 DMA 至該 Buffer,便可能覆寫不再屬於 RX Ring 的記憶體。 修補方式: 先完成 BM Pool 補充,再將 Buffer 交給 XDP 或 skb。 若補充失敗: 丟棄封包; 將目前仍屬 Driver 的 Buffer 歸還 BM; 維持 Pool 深度。 成功補充後,之後若封包被丟棄,則直接釋放 Buffer,而非歸還 BM。 | CVE-2026-53215
|
| Linux | Linux | 1 | 在 Linux 核心中,已修正下列漏洞: net: mvpp2:將 XDP Frame Size 限制為 RX Buffer 大小 mvpp2 同時具有: Short BM Pool Long BM Pool 其中 Short Pool Buffer 可能小於 PAGE_SIZE。 然而 XDP 初始化 xdp_buff 時,始終將 Frame Size 設為 PAGE_SIZE。 XDP Helper 會利用 frame_sz: 檢查尾端擴充是否合法; 判定資料區域終點。 若實際 Buffer 較小,bpf_xdp_adjust_tail() 可能將封包延伸至 Buffer 外,造成記憶體破壞,或後續觸發 skb Tailroom 檢查失敗。 修補方式改為以: bm_pool->frag_size 初始化 xdp_buff,使 XDP 可使用的 Tailroom 與實際 RX Buffer 完全一致。 | CVE-2026-53216
|
| Linux | Linux | 1 | 在 Linux 核心中,已修正下列漏洞: ip6_vti:修正 vti6_tnl_lookup() Tunnel 比對錯誤 在 vti6_tnl_lookup() 中,若找不到完全符合的 Tunnel,會退而搜尋萬用字元(Wildcard)Tunnel,包括: Local Address 相同、Remote Address 為萬用字元的 Tunnel(Wildcard Remote)。 Remote Address 相同、Local Address 為萬用字元的 Tunnel(Wildcard Local)。 然而,vti6 將上述各種 Tunnel 全部存放於同一個雜湊表(ip6n->tnls_r_l)中,因此容易發生 Hash Collision。 漏洞在於: Fallback 搜尋迴圈未檢查候選 Tunnel 是否實際具有萬用字元位址。 因此,在雜湊碰撞情況下,可能錯誤比對到並非 Wildcard 的 Tunnel。 修補方式是在 Fallback 搜尋時,新增檢查以確認候選 Tunnel 確實使用了對應的 Wildcard 位址。 | CVE-2026-53221
|
| Linux | Linux | 1 | Linux 核心已修補下列漏洞:sctp:驗證 Cookie 中嵌入的 INIT Chunk 與位址清單長度 sctp_unpack_cookie() 過去僅檢查嵌入的 INIT Chunk 長度是否未超過 Cookie 剩餘的 Payload,但未確認 INIT Chunk 是否足夠大以包含完整的 INIT Header。 因此,惡意構造的 COOKIE_ECHO 封包可攜帶遭截斷的 INIT Chunk,其長度欄位小於 sizeof(struct sctp_init_chunk)。後續 sctp_process_init() 仍會直接存取 INIT 參數,可能導致越界讀取(Out-of-Bounds Read)。 此外,raw_addr_list_len 也未完整驗證是否超出 Cookie 剩餘 Payload。當 Cookie 驗證功能停用時,攻擊者可提供過大的 raw_addr_list_len,使 sctp_raw_to_bind_addrs() 讀取超出 Cookie 範圍的資料。 位址解析器亦缺乏足夠的參數標頭與長度檢查,可能讓惡意位址參數造成越界讀取。 本次修正包括: 要求嵌入的 INIT Chunk 長度至少為 sizeof(struct sctp_init_chunk)。 驗證 INIT Chunk 與原始位址清單總長度均位於 Cookie Payload 範圍內。 在解析每個位址參數前,確認其標頭與內容皆有足夠資料。 另外,當 Cookie 驗證功能停用時,必須在 sctp_unpack_cookie() 之後、sctp_process_init() 之前呼叫 sctp_verify_init(),此部分將於後續修補中完成。 | CVE-2026-53224
|
| Linux | Linux | 1 | Linux 核心已修補下列漏洞:sctp:修正 __sctp_rcv_asconf_lookup() 未初始化值使用問題 net/sctp/input.c 中的 __sctp_rcv_asconf_lookup() 僅確認 ASCONF Chunk 足以容納 ADDIP Header 與一個參數 Header,便呼叫 af->from_addr_param()。 然而,from_addr_param() 會依照參數宣告的長度讀取完整位址(例如 IPv6 為 16 Bytes)。 未經驗證的 SCTP 對端可傳送遭截斷的 ASCONF Chunk,宣稱包含 IPv6 位址參數,但實際僅包含 4 Bytes 的參數 Header。 於無 Association 的查詢流程中,from_addr_param() 將讀取超出實際資料範圍的未初始化記憶體。 影響: 未經驗證的 SCTP 對端可使接收流程讀取最多 16 Bytes 的未初始化記憶體。 相較之下,__sctp_rcv_init_lookup() 使用 sctp_walk_params() 執行邊界檢查,而此路徑自行解析資料卻未進行相同驗證。 此次修正於呼叫 from_addr_param() 前,先確認完整位址參數皆位於 Chunk 範圍內,修補方式與 Commit 51e5ad549c43("net: sctp: fix KMSAN uninit-value in sctp_inq_pop")相同。 | CVE-2026-53225
|
| Linux | Linux | 1 | Linux 核心已修補下列漏洞:ipv6:sit:於 GSO Offload 後重新載入內層 IPv6 Header ipip6_tunnel_xmit() 在函式開始時快取內層 IPv6 Header 指標,並於 iptunnel_handle_offloads() 執行後仍持續使用。 對於 GSO 封包,iptunnel_handle_offloads() 會呼叫 skb_header_unclone()。 若封包 Header 為 Clone 狀態,skb_header_unclone() 可能透過 pskb_expand_head() 重新配置 skb Head,導致 Header 位址改變。 依據 pskb_expand_head() 的規範,任何指向 skb Header 的指標都必須重新取得。 若後續未進入 skb_realloc_headroom() 分支,SIT 仍使用舊的 iph6 指標讀取 Hop Limit 與 DS 欄位,可能讀取到已釋放的記憶體。 本次修正於 Offload 成功後立即重新取得 iph6 指標,並保留原本於 skb_realloc_headroom() 後的重新載入流程。 | CVE-2026-53228
|
| Linux | Linux | 1 | Linux 核心已修補下列漏洞:sctp:驗證 COOKIE_ECHO 中快取 Peer INIT Chunk 的長度 當 SCTP Server 處理 COOKIE_ECHO Chunk 時,Cookie 後方所嵌入的 Peer INIT Chunk 會由 sctp_unpack_cookie() 解析,後續再由 sctp_process_init() 使用 sctp_walk_params() 解析其中參數。 然而,快取 INIT Chunk 的 Header Length 未驗證是否超過 COOKIE_ECHO Payload 剩餘資料。 若攻擊者偽造過大的長度欄位,後續解析參數時可能超出實際接收資料範圍,造成越界讀取甚至後續參數處理(例如 STATE_COOKIE 與 kmemdup())期間發生記憶體損毀。 本次修正於 sctp_unpack_cookie() 中新增長度檢查,確認快取 INIT Chunk 長度未超過 COOKIE_ECHO Buffer 可用資料。 | CVE-2026-53246
|
| Linux | Linux | 1 | Linux 核心已修補下列漏洞:net:ethernet:mtk_eth_soc:修正 Metadata Destination 釋放流程中的 Use-After-Free 漏洞 mtk_free_dev() 直接呼叫 metadata_dst_free(),立即以 kfree() 釋放 metadata_dst,未等待 RCU Grace Period。 在接收(RX)流程中,skb_dst_set_noref() 會於 skb 中儲存未增加 Reference Count 的 metadata_dst 指標。 此機制要求資料必須在所有 RCU Reader 完成前保持有效。 然而,由於 metadata_dst_free() 直接呼叫 kfree(),若仍有 skb 持有該指標,即可能發生 Use-After-Free。 本次修正改以 dst_release() 取代 metadata_dst_free()。 當 Reference Count 歸零時,將透過 call_rcu_hurry() 延後真正釋放記憶體,確保所有 RCU Reader 均已完成後才回收資源。 | CVE-2026-53247
|
| Linux | Linux | 1 | Linux 核心已修補下列漏洞:tcp:於 reqsk_queue_hash_req() 新增 preempt_disable_nested() / preempt_enable_nested() 保護機制 syzbot 回報在 __inet_csk_reqsk_queue_drop() 中發現 reqsk->rsk_refcnt 發生異常遞減(Underflow)。 __inet_csk_reqsk_queue_drop() 僅在成功將 reqsk 自 ehash 移除後才會呼叫 reqsk_put(),而 reqsk_timer_handler() 之後也會再次呼叫 reqsk_put()。 這表示 reqsk 同時遺失了 ehash 與 Timer 所持有的兩個 Reference Count。 由於所有 syzbot 回報皆發生於啟用 PREEMPT_RT 的環境,因此唯一可能情況為: reqsk_queue_hash_req() 在 mod_timer() 與 refcount_set() 之間遭到搶占(Preempt)。 一秒後 Timer 先觸發,因 Listener 關閉而提前釋放 reqsk。 本次修正於 mod_timer() 與 refcount_set() 之間加入: preempt_disable_nested() preempt_enable_nested() 避免兩者之間遭到搶占。 另外,由於 inet_ehash_insert() 使用一般 spin_lock()(於 PREEMPT_RT 中為 Mutex),因此仍須放在上述保護區塊之外,此設計不影響正常運作。 | CVE-2026-53260
|
| Linux | Linux | 1 | Linux 核心已修補下列漏洞:ocfs2/dlm:修正 dlm_match_regions() 的 Off-by-One 錯誤 dlm_match_regions() 在比較本地與遠端 Region 時,迴圈條件誤用了 <= 而非 <。 因此會多讀取 qr_regions 陣列的一筆資料,造成 Off-by-One 錯誤。 同一函式中的其他迴圈皆正確使用 <。 本次修正將比較條件改為 <,以避免越界存取並保持一致性。 | CVE-2026-53309
|
| Linux | Linux | 1 | Linux 核心已修補下列漏洞:Bluetooth:序列化 accept_q 存取 bt_sock_poll() 在未同步保護的情況下遍歷 accept_q 佇列。 然而,子 Socket 關閉時可能同時將自身自佇列移除並釋放最後一個 Reference,造成競爭條件(Race Condition)。 此未同步的 accept_q 存取問題自 Bluetooth 子系統導入以來即已存在。 本次修正內容包括: 新增專用鎖(Lock)保護 accept_q 更新與輪詢。 調整 bt_accept_dequeue() 流程,在 Queue Lock 保護下先取得子 Socket 的暫時性 Reference,再釋放 Queue Lock 並鎖定子 Socket。 藉此避免競爭條件導致記憶體錯誤。 | CVE-2026-52918
|
| Linux | Linux | 1 | Linux 核心已修補下列漏洞:netfilter:xt_policy:修正嚴格模式(Strict Mode)Inbound Policy 比對錯誤 match_policy_in() 由最後一個 IPsec Transform 開始反向遍歷 sec_path。 然而,在 Strict Policy Matching 模式下,應依照規則 (info->pol[]) 的順序由前往後進行比對。 錯誤的比對方式會造成包含多個 Policy 的 Inbound 規則比對結果不一致。 本次修正依據已處理的 Transform 數量重新計算 Strict Match 的 Policy 位置,使多層 Inbound Policy 能正確比對。 | CVE-2026-52920
|
| Linux | Linux | 1 | Linux 核心已修補下列漏洞:batman-adv:tvlv:拒絕過大的 TVLV 封包 batadv_tvlv_container_ogm_append() 會根據 tvlv.container_list 建立 TVLV 封包區段。 其大小由 batadv_tvlv_container_list_size() 計算。 然而,該函式的回傳型別與累加器皆使用 u16。 若所有 TVLV Container 總大小超過 U16_MAX,數值將發生溢位(Wrap Around)。 後續 batadv_tvlv_container_ogm_append() 將依錯誤大小配置過小的記憶體,而後續 memcpy() 則可能寫入超出配置空間,造成 Kernel 記憶體損毀。 本次修正包括: 將 batadv_tvlv_container_list_size() 的回傳型別由 u16 改為 size_t。 在 batadv_tvlv_container_ogm_append() 中檢查計算後的長度是否超過 U16_MAX。 若超出限制,則視同配置失敗並停止處理,以避免緩衝區溢位。 | CVE-2026-52934
|
| Linux | Linux | 1 | Linux 核心已修補下列漏洞:iommu:修正重置(Reset)期間 __iommu_group_set_domain_nofail() 觸發 WARN_ON 的問題 在 __iommu_group_set_domain_internal() 中,若 IOMMU Group 中任一裝置正處於 Recovery 狀態,系統會拒絕新的 Domain Attach 操作。 此機制可避免多個裝置(例如因 PCI DMA Alias 共用相同 RID)同時進行 Domain Attach 而發生競爭條件。 然而,此限制會導致 __iommu_group_set_domain_nofail() 觸發 WARN_ON。 此外,在解除綁定(Detach)或資源釋放(Teardown)流程中的呼叫者,例如: __iommu_group_set_core_domain() __iommu_release_dma_ownership() 屬於 IOMMU_SET_DOMAIN_MUST_SUCCEED 類型,不應受到 Recovery 機制阻擋,否則 Domain 即將被釋放時,group->domain 仍可能指向已失效的物件,導致 Use-After-Free (UAF)。 本次修正內容包括: 尊重 IOMMU_SET_DOMAIN_MUST_SUCCEED 旗標,使其可略過 group->recovery_cnt 的限制並更新 group->domain。 另外新增 gdev->blocked 檢查,以避免裝置層級的並行解除綁定操作。 | CVE-2026-52952
|
| Linux | Linux | 1 | Linux 核心已修補下列漏洞:smb/client:修正 symlink_data() 可能發生無限迴圈與越界讀取問題 在 32 位元架構下,symlink_data() 可能因異常的 ErrorDataLength 發生問題。 情況一:無限迴圈 若: ErrorDataLength = 0xfffffff8 則: next = p->ErrorContextData + len 最終 next 又會回到 p,導致函式陷入無限迴圈。 情況二:越界讀取(Out-of-Bounds Read) 若: ErrorDataLength = 0xfffffff0 則: next = (u8 *)p - 8 將導致函式讀取結構外部的記憶體,造成越界讀取。 本次修正避免異常的 ErrorDataLength 導致上述兩種情況發生。 | CVE-2026-52967
|
| Linux | Linux | 1 | Linux 核心已修補下列漏洞:iommu/amd:修正 clone_alias() 使用錯誤裝置 Device ID 的問題 clone_alias() 原本假設第一個參數 (pdev) 一定是原始裝置。 然而,pci_for_each_dma_alias() 會依 PCI 拓樸決定傳入的是原始裝置或 Alias 裝置。 因此,clone_alias() 可能使用錯誤的 Device ID(devid)查詢並複製 DTE(Device Table Entry)。 此問題可能導致: 錯誤的 DTE 被複製至 Alias 裝置。 使用過期(Stale)的 DTE 資訊。 本次修正方式: 將原始 pdev 作為 opaque data 傳入 clone_alias()。 無論直接呼叫或經由 pci_for_each_dma_alias(),皆能取得真正的原始裝置。 clone_alias() 改由該原始裝置計算 devid,以確保 DTE 複製正確。 | CVE-2026-53053
|
| Linux | Linux | 1 | Linux 核心已修補下列漏洞:iommu/riscv:更新 DDT/PDT 後新增 IOTINVAL 失效處理 依據 RISC-V IOMMU 規範(第 6.3.1 與 6.3.2 節),當更新: DDT(Device Directory Table) PDT(Process Directory Table) 後,必須同步清除相關 TLB 與 Context Cache。 原本驅動未執行此必要程序。 本次修正新增 riscv_iommu_iodir_iotinval(),於更新 DDT 或 PDT 後執行必要的 TLB 與 Context Cache Invalidation,確保 IOMMU 使用最新的表格內容。 | CVE-2026-53057
|
| Linux | Linux | 1 | Linux 核心已修補下列漏洞:Bluetooth:l2cap:於 l2cap_ecred_reconf_rsp() 補上遺漏的 Channel Lock l2cap_ecred_reconf_rsp() 在未取得 l2cap_chan_lock() 的情況下直接呼叫 l2cap_chan_del()。 然而,同一檔案中所有其他 l2cap_chan_del() 呼叫皆會先取得該鎖。 惡意的 BLE 裝置可傳送特製的 L2CAP ECRED Reconfiguration Response,於另一執行緒遍歷 Channel List 時同時刪除 Channel,造成資料結構損毀。 本次修正內容包括: 呼叫 l2cap_chan_hold()。 取得 l2cap_chan_lock()。 執行 l2cap_chan_del()。 完成後呼叫 l2cap_chan_unlock()。 最後執行 l2cap_chan_put()。 整體流程與 l2cap_ecred_conn_rsp() 及 l2cap_conn_del() 的實作方式保持一致,以避免競爭條件造成記憶體錯誤。 | CVE-2026-53071
|
| Linux | Linux | 1 | Linux 核心已修補下列漏洞:Bluetooth:修正 HCI_PROTO_DEFER 模式下 hci_conn_request_evt() 的鎖定問題 當 Bluetooth 協定啟用 HCI_PROTO_DEFER 時,hci_conn_request_evt() 會在未持有 hdev->lock 的情況下呼叫 hci_connect_cfm(conn)。 然而,hci_connect_cfm() 一般皆假設呼叫時已持有 hdev->lock。 若連線(conn)於此期間遭其他執行緒刪除,可能導致 Use-After-Free (UAF)。 目前僅有: SCO ISO 協定會設定 HCI_PROTO_DEFER,且 HCI_EV_CONN_REQUEST 不會針對 ISO 產生,因此此問題主要影響 SCO 延遲建立(Deferred Setup)的監聽流程。 在未延遲(Non-Deferred)的監聽路徑中,hci_connect_cfm(conn) 均會在持有 hdev->lock 的情況下執行。 本次修正於呼叫 hci_connect_cfm() 前先取得 hdev->lock,避免因競爭條件造成記憶體錯誤。 | CVE-2026-53072
|
| Linux | Linux | 1 | Linux 核心已修補下列漏洞:ppp:未附加(Unattached)IOCTL 操作需於目標 Network Namespace 具備 CAP_NET_ADMIN 權限 目前 /dev/ppp 開啟權限是依據: file->f_cred->user_ns 進行驗證。 然而,未附加(Unattached)的管理型 IOCTL 實際操作的是: current->nsproxy->net_ns 因此,本地端未授權使用者可: 建立新的 User Namespace(CLONE_NEWUSER)。 在新 User Namespace 中取得 CAP_NET_ADMIN。 對繼承而來的 Network Namespace 執行: PPPIOCNEWUNIT PPPIOCATTACH PPPIOCATTCHAN 即使其實際上並未擁有該 Network Namespace 的管理權限。 本次修正要求: 在處理未附加 PPP 管理 IOCTL 前,必須確認使用者於目標 Network Namespace 所屬的 User Namespace中具備 CAP_NET_ADMIN。 此修正可: 保持 pppd 在合法 Network Namespace 中正常運作。 阻止僅於新建 User Namespace 取得權限、卻操作其他 Network Namespace 的情況。 | CVE-2026-53075
|
| Linux | Linux | 1 | Linux 核心已修補下列漏洞:net:於 qdisc_pkt_len_segs_init() 中預先拉取(Pull)封包標頭 大多數 ndo_start_xmit() 驅動函式皆假設 GSO(Generic Segmentation Offload) 封包的 Header 已位於 skb->head 中。 尤其 net/core/tso.c 的相關流程風險較高,因 tso_build_hdr() 會直接執行: memcpy(hdr, skb->data, hdr_len); 若 Header 尚未存在於 skb->head,可能導致存取異常。 由於 qdisc_pkt_len_segs_init() 本身已會解析 GSO 封包,因此本次修正: 將 skb_header_pointer() 改為 pskb_may_pull()。 確保 Header 已被拉入(Pull)至 skb->head。 此外,若收到惡意或格式異常的 GSO 封包,可提早偵測並直接丟棄,新增丟棄原因: SKB_DROP_REASON_SKB_BAD_GSO 避免驅動程式需自行重複實作 Header 驗證。 | CVE-2026-53091
|
| Linux | Linux | 1 | Linux 核心已修補下列漏洞:thunderbolt:於型別轉換前驗證 XDomain Request 封包大小 tb_xdp_handle_request() 會直接將接收到的封包 Buffer 強制轉型(Cast)為不同的協定結構。 然而,原本僅驗證一般 Header 長度,並未確認整個 Buffer 是否足以容納目標結構。 因此,惡意對端可傳送尺寸極小的 XDomain Request: 通過一般 Header 驗證。 但小於後續欲轉型的結構大小。 造成程式於存取結構時發生越界讀取(Out-of-Bounds Read)。 本次修正: 將封包長度一路傳遞至 xdomain_request_work。 每次轉型前皆確認 Buffer 長度是否符合對應結構大小。 僅於長度足夠時才進行型別轉換。 | CVE-2026-53147
|
| Linux | Linux | 1 | Linux 核心已修補下列漏洞:accel/ethosu:拒絕使用未初始化長度的 DMA 指令 cmd_state_init() 會使用 memset(0xff) 初始化 Command State,因此: dma->len = U64_MAX 被作為「尚未設定 DMA 長度」的標記值。 唯一能設定該欄位的是: NPU_SET_DMA0_LEN 若使用者未設定 DMA 長度便直接送出: NPU_OP_DMA_START 則 dma->len 仍保持 U64_MAX。 在 dma_length() 中,當正值 Stride 加到 U64_MAX 時會產生整數溢位(Wrap Around)。 例如: size0 == 1 check_mul_overflow() 不會偵測到異常。 dma_length() 最終回傳 0 而非 U64_MAX。 因此: 呼叫端原本檢查 U64_MAX 的機制失效。 region_size[] 保持為 0。 ethosu_job.c 的邊界檢查遭到繞過。 最終可能導致硬體使用過期的實體位址(Physical Address)執行 DMA 操作。 本次修正於 dma_length() 一開始即檢查: dma->len == U64_MAX 若成立立即回報錯誤,不再進行任何運算,與驅動程式中其他使用 Sentinel Value 的設計保持一致。 | CVE-2026-53170
|
| Linux | Linux | 1 | Linux 核心已修補下列漏洞:accel/ethosu:修正 dma_length() 算術運算問題 dma_length() 會依據 Command Stream 計算 DMA 所使用的記憶體範圍,並更新 region_size[]: len = ((len + stride[0]) * size0 + stride[1]) * size1 region_size[region] = max(..., len + dma->offset) 然而,此流程存在多項算術運算問題,可能導致計算出的 Region Size 錯誤,包括: 有號(Signed)Stride 與 len 相加時可能發生下溢(Underflow)。 中間乘法運算可能發生整數溢位(Overflow)。 len + dma->offset 更新 region_size[] 時可能再次溢位。 dma_length() 回傳錯誤時,呼叫端未進行檢查。 由於 region_size[] 後續會由 ethosu_job.c 用於驗證 Command Stream 是否超出 GEM Buffer 範圍,因此算術溢位可能導致 Region Size 被低估,進而繞過邊界檢查。 本次修正包括: 驗證所有 Signed Addition 是否發生下溢。 使用 Overflow Helper 檢查所有乘法運算。 檢查 Offset 相加是否溢位。 將 dma_length() 的錯誤回傳傳遞給呼叫端,由呼叫端正確處理。 | CVE-2026-53171
|
| Linux | Linux | 1 | Linux 核心已修補下列漏洞:staging:rtl8723bs:於 rtw_mlme 增加 IE 長度邊界檢查 rtw_mlme 在計算 Information Element(IE)長度時,會先扣除固定大小的 IE Offset。 然而,原本未確認 ie_length 是否足夠大便直接進行減法。 若 ie_length 小於固定 Offset,將造成無號整數下溢(Unsigned Integer Underflow),進而導致錯誤的長度計算。 本次修正於執行減法前新增邊界檢查,確認 ie_length 足以扣除固定 Offset,以避免無號整數下溢及後續記憶體存取錯誤。 | CVE-2026-53178
|
| Linux | Linux | 1 | Linux 核心已修補下列漏洞:RDMA/core:驗證 ib_get_ucaps() 傳入的 File Operations 開發者指出,僅依據 dev_t 判斷裝置並不安全。 原因在於 Character Device 與 Block Device 可能共用相同的 dev_t。 若使用者取得具有相同 dev_t 的 Block Device File Descriptor,即可能偽裝成 ucap Character Device,導致錯誤識別。 本次修正於 ib_get_ucaps() 中新增 f_ops(File Operations)驗證,僅接受真正屬於對應 Character Device 的 File Descriptor,以防止裝置偽裝。 | CVE-2026-53188
|
| Linux | Linux | 1 | Linux 核心已修補下列漏洞:ksmbd:修正重複 SMB2_CANCEL 導致 Deferred file_lock 發生 Use-After-Free 當延遲(Deferred)的 Byte-Range Lock(阻塞中的 SMB2_LOCK)建立時,會透過 setup_async_work() 將非同步工作加入: conn->async_requests 其中: cancel_fn = smb2_remove_blocked_lock cancel_argv[0] 指向 struct file_lock 當收到第一次 SMB2_CANCEL 時: Worker 會呼叫 locks_free_lock() 釋放 file_lock。 隨後提前離開流程(goto out),未執行 release_async_work()。 因此: 該 Async Work 仍留在 conn->async_requests。 cancel_fn 與 cancel_argv 仍保留原值。 但 file_lock 已被釋放。 若此時再次收到相同 AsyncId 的 第二次 SMB2_CANCEL: cancel_fn 將再次被呼叫,對已釋放的 file_lock 執行操作,造成 Slab Use-After-Free。 此問題已透過 KASAN 在 Mainline Kernel 上由已驗證身分的 SMB Client 成功重現。 本次修正於 smb2_cancel() 中新增狀態判斷: 若 Async Work 已處於 KSMBD_WORK_CANCELLED 狀態,則不再執行 Cancel Callback。 避免相同 Async Work 被取消兩次。 | CVE-2026-53198
|
| Linux | Linux | 1 | Linux 核心已修補下列漏洞:KVM:arm64:巢狀虛擬化(Nested Virtualization)修正 !FEAT_XNX 時 XN[0] 權限處理錯誤 在 !FEAT_XNX 情況下,XN(Execute Never)位元已先自 Bit Field 中取出。 然而,原本程式仍使用 FIELD_PREP() 操作清除 XN[0] 的 Mask。 此做法完全錯誤,導致程式實際上無條件授與執行(Execute)權限。 本次修正改為直接操作正確的 Bit,而非再次使用 FIELD_PREP(),以確保 Execute 權限判斷符合預期。 | CVE-2026-53200
|
| Linux | Linux | 1 | Linux 核心已修補下列漏洞:net:mvpp2:依硬體封包偏移同步 RX 資料 mvpp2 會設定 RX Queue 的 Packet Offset,因此硬體會將接收到的資料寫入: dma_addr + MVPP2_SKB_HEADROOM 然而,原本 CPU 同步(DMA Sync)是從: dma_addr 開始,只同步: rx_bytes + MVPP2_MH_SIZE 的範圍。 如此會導致: 同步了未使用的 Headroom。 卻遺漏了封包尾端相同大小的資料。 在 Non-Coherent DMA 系統上,CPU 因此可能讀取到封包尾端尚未更新的快取資料(Stale Cache)。 本次修正改用: dma_sync_single_range_for_cpu() 並以: MVPP2_SKB_HEADROOM 作為同步偏移量,使同步範圍正確涵蓋: Marvell Header 實際由硬體寫入的封包資料 避免 CPU 讀取過期快取內容。 | CVE-2026-53217
|
| Linux | Linux | 1 | 在 Linux 核心中已修復一項漏洞:藉由改用 vport 自身的 HCA 容量來配置緩衝區大小並重構函式,解決了因韌體回應溢位而導致的 mlx5_query_nic_vport_mac_list 記憶體越界存取問題。 | CVE-2026-53230
|
| Linux | Linux | 1 | 在 Linux 核心中已修復一項漏洞:在 PHY 探測(probing)失敗的程式碼路徑中加入 `sfp_bus_del_upstream()` 呼叫,以防止 SFP 總線殘留懸空(dangling)的 upstream 欄位而在後續 SFP 事件中引發異常。 | CVE-2026-53232
|
| Linux | Linux | 1 | 在 Linux 核心中已修復一項漏洞:在 `__input_process_payload()` 中,將原本未受鎖保護的 `xtfs->ra_newskb` 讀取操作替換為本機布林變數,以防與同時執行的重組程序或定時器產生競態條件(Race Condition),從而解決了 `first_skb` 的釋放後釋放(Use-After-Free)弱點。 | CVE-2026-53240
|
| Linux | Linux | 1 | 在 Linux 核心中已修復一項漏洞:在 `airoha_metadata_dst_free()` 中改用 `dst_release()` 替代直接釋放函式,使記憶體釋放程序能正確經由 RCU 寬限期(Grace Period)處理,從而解決了接收(RX)路徑中 `skb` 仍持有未計數指標時所引發的釋放後釋放(Use-After-Free)弱點。 | CVE-2026-53248
|
| Linux | Linux | 1 | 在 Linux 核心中已修復一項漏洞:藉由引入 `skb_pull_data()` 來驗證並存取所需資料,以及對 1 位元組的 RPN 請求進行特殊長度檢查,解決了藍牙 RFCOMM 模組中因 MCC 處理程序未驗證 `skb->len` 即進行結構體轉型,進而導致惡意遠端裝置可觸發記憶體越界讀取(Out-of-bounds read)的問題。 | CVE-2026-53254
|
| Linux | Linux | 1 | 在 Linux 核心中已修復一項漏洞:藉由在釋放 `rfcomm_sk_list.lock` 前先對監聽通訊端(Listener Socket)取得引用計數(Reference),並於鎖定後重新檢查其狀態,解決了 `rfcomm_connect_ind()` 與通訊端關閉(Close)程序之間的競態條件,進而修復了 KASAN 所回報的 `lock_sock_nested()` 釋放後釋放(Slab Use-After-Free)弱點。 | CVE-2026-53256
|
| Linux | Linux | 1 | 在 Linux 核心中已修復一項漏洞:藉由在讀取 ARP 標頭與呼叫 `skb_store_bits()` 之前,先確保 ARP 來源硬體位址(SHA)範圍具備可寫入性,解決了 ebtables SNAT 標記在進行 ARP 重寫時,因直接修改可能由 splice 導入之非線性碎片的唯讀頁面,進而引發記憶體損壞的弱點。 | CVE-2026-53266
|
| Linux | Linux | 1 | 在 Linux 核心中已修復一項漏洞:在解析失敗後直接中斷處理,解決了 `conntrack_irc` 模組在指令字串匹配失敗後仍嘗試比對其他指令,進而引發記憶體越界讀取(Out-of-bounds read)的弱點。 | CVE-2026-53268
|
| Linux | Linux | 1 | 在 Linux 核心中已修復一項漏洞:藉由在初步解析封包時先複製一份多播群組位址(Multicast group address),解決了因呼叫 `pskb_may_pull()` 導致 `skb` 標頭重新配置記憶體後,原先暫存的指標未被重新載入而引發的釋放後釋放(Use-After-Free)弱點。 | CVE-2026-53275
|
| Linux | Linux | 1 | 在 Linux 核心中已修復一項漏洞:藉由在 `__kvm_at_s12()` 與 `__kvm_find_s1_desc_level()` 執行分頁表走訪(Page table walks)前先取得 `kvm->srcu` 鎖,解決了因未持有 SRCU 鎖保護而可能受到記憶體插槽(Memslot)變更影響,進而引發同步錯誤或記憶體損壞的弱點。 | CVE-2026-53277
|
| Linux | Linux | 1 | 在 Linux 核心中已修復一項漏洞:藉由在 `dev_pasid` 為 NULL 時提前返回(Return early),解決了當裝置未曾附加到該 IOMMU 時,因無條件執行卸載(Teardown)操作而導致的虛擬指標解參照(NULL pointer dereference)或引用計數損壞(Refcount corruption)弱點。 | CVE-2026-53281
|
| Linux | Linux | 1 | 在 Linux 核心中已修復一項漏洞:藉由在裝置關閉時,調整 `vfio_pci_core_close_device()` 優先在停用功能(Disable function)前呼叫 `vfio_pci_dma_buf_cleanup()`,確保了所有透過 DMABUFs 的存取權限在功能基底位址暫存器(BARs)變得無法存取前已被撤銷,從而解決了因時序競爭導致的記憶體非預期存取與資源釋放衝突弱點。 | CVE-2026-53322
|
| Linux | Linux | 1 | 在 Linux 核心中已修復一項漏洞:藉由在佇列條目中儲存 `skb->dev` 並在其生命週期內持有其引用計數,解決了 `br_pass_frame_up()` 改寫裝置後,排隊的橋接封包在重新注入(Reinjection)前因原橋接主控介面(Bridge master)已被釋放,進而引發的釋放後釋放(Use-After-Free)弱點。 | CVE-2026-52912
|
| Linux | Linux | 1 | 在 Linux 核心中已修復一項漏洞:藉由在 `hbh_mt6_check()` 規則設定路徑中加入對 `optsnr` 的數值驗證,解決了當使用者空間傳入大於固定大小(`IP6T_OPTS_OPTSNR` = 16)的選項數量時,因未經拒絕而引發 `struct ip6t_opts` 陣列索引越界(Array-index-out-of-bounds)或差一錯誤(Off-by-one)的弱點。 | CVE-2026-52915
|
| Linux | Linux | 1 | 在 Linux 核心中已修復一項漏洞:藉由在取得通訊端鎖(Socket lock)後檢查並拒絕已被回收或分離的關聯,解決了 SCTP 診斷模組(`sock_diag`)在精確查詢路徑中,因排程阻塞導致醒來時關聯已被釋放(Stale),進而引發記憶體越界讀取(Out-of-bounds read)的弱點。 | CVE-2026-52917
|
| Linux | Linux | 1 | 在 Linux 核心中已修復一項漏洞:藉由在 `batadv_tp_sender_shutdown()` 中改用 `atomic_xchg()`,確保「正在發送」的原子計數器僅能發生一次從 1 到 0 的狀態轉換,解決了因多條清理路徑同時呼叫導致計數器下限溢位(Underflow)為負值,進而引發核心執行緒無限循環與隨後的釋放後釋放(Use-After-Free)弱點。 | CVE-2026-52919
|
| Linux | Linux | 1 | 在 Linux 核心中已修復一項漏洞:藉由在 `pskb_copy_for_clone()` 分配失敗時跳過轉發至當前 DHT 候選節點的步驟,解決了 `batadv_dat_forward_data()` 未檢查核心緩衝區(`skb`)複製結果便直接傳遞,進而引發虛擬指標解參照(NULL pointer dereference)的弱點。 | CVE-2026-52922
|
| Linux | Linux | 1 | 在 Linux 核心中已修復一項漏洞:藉由將請求的配置範圍限制在 ipc_mni 以內,解決了在檢查點/恢復(Checkpoint/Restore)機制中,SysV IPC 的 next_id 配置因上限未受限制(Open-ended)而越界溢位,進而引發釋放後釋放(Use-After-Free)與核心損壞的弱點。 | CVE-2026-52923
|
| Linux | Linux | 1 | 在 Linux 核心中已修復一項漏洞:藉由在 compat_mtw_from_user() 轉換路徑中加入對 compatsize 的大小驗證,解決了 32 位元使用者空間架構(Compat 模式)向核心原生結構轉換 ebtables 擴充功能(Extensions)時,因未防範異常小的長度欄位而引發的記憶體越界讀取(Out-of-bounds read)弱點。 | CVE-2026-52927
|
| Linux | Linux | 1 | 在 Linux 核心中已修復一項漏洞:藉由在 ADD_OUT_STREAMS 請求被拒絕時完整清除已被移除的資料流中介資料(Stream metadata),解決了因殘留過期擴充狀態(Stale ext)而引發的虛擬指標解參照(NULL pointer dereference)弱點。 | CVE-2026-52929
|
| Linux | Linux | 1 | 在 Linux 核心中已修復一項漏洞:藉由將 `out_free_req` 錯誤處理標籤往上移動數行,確保在非同步壓縮(acomp)發生錯誤與成功時,皆能正確釋放已配置的目標散射/聚集串列(dst SG list)分頁,解決了核心中的記憶體洩漏(Memory Leak)弱點。 | CVE-2026-52932
|
| Linux | Linux | 1 | 在 Linux 核心中已修復一項漏洞:藉由將 atomic_read() 的讀取結果強制轉型為無號整數(unsigned int),解決了因有號數比較(Signed comparison)導致取消標記(BIT(31))被視為負數,進而無法正確觸發慢速路徑(Slowpath)的弱點。 | CVE-2026-52933
|
| Linux | Linux | 1 | 在 Linux 核心中已修復一項漏洞:藉由在 espintcp_push_msgs() 返回後,若 emsg->len 仍有殘留數值則拒絕建立新訊息,解決了因重用正在進行中的部分發送狀態(In-progress partial send)而引發的記憶體越界讀取(Out-of-bounds read)弱點。 | CVE-2026-52935
|
| Linux | Linux | 1 | 在 Linux 核心中已修復一項漏洞:藉由在 dump_mac_header() 的備用路徑中加入 skb_mac_header_was_set() 驗證,解決了當 MAC 標頭未被設定時,因錯誤的邊界判斷導致核心讀取超出緩衝區約 64 KiB 的記憶體,進而引發智慧型平板/插槽外緩衝區越界讀取(Slab-out-of-bounds read)的弱點。 | CVE-2026-52942
|
| Linux | Linux | 1 | 在 Linux 核心中已修復一項漏洞:藉由在 pskb_carve_inside_header() 與 pskb_carve_inside_nonlinear() 複製資料後補上 net_zcopy_get() 呼叫,解決了因零複製(Zerocopy)引用計數未同步遞增,導致 ubuf_info_msgzc 結構被提前釋放,進而引發本地權限提升(Local Privilege Escalation)的嚴重釋放後釋放(Use-After-Free)弱點。 | CVE-2026-52943
|
| Linux | Linux | 1 | 在 Linux 核心中,這項修復透過還原(Revert)先前的提交,預設停用了 WireGuard 的執行緒化 NAPI(Threaded NAPI)機制。這解決了在結合 Cilium 容器網路與高負載網路環境下,WireGuard 點對點(Peer)連線會隨機且永久「卡死(Stall)」、導致接收端(Decryption side)完全停止運作的嚴重可用性漏洞。 | CVE-2026-52945
|
| Linux | Linux | 1 | 在 Linux 核心中已修復一項漏洞,fs/fcntl:FASYNC 訊號傳送使用不安全鎖定順序,可能導致核心死結並造成遠端 DoS。 | CVE-2026-52946
|
| Linux | Linux | 1 | 在 Linux 核心中已修復一項漏洞,net/qrtr:RCU 保護失效導致 socket 參考計數競態,可能造成 Use-After-Free(UAF)。 | CVE-2026-52947
|
| Linux | Linux | 1 | 在 Linux 核心中已修復一項漏洞,drm/xe/dma-buf(retry loop):錯誤重試流程可能使用已釋放的 BO 物件,造成 UAF。 | CVE-2026-52950
|
| Linux | Linux | 1 | 在 Linux 核心中已修復一項漏洞,drm/xe/dma-buf(attach race):DMA-BUF 附加時機錯誤可能造成空物件存取或 UAF。 | CVE-2026-52951
|
| Linux | Linux | 1 | 在 Linux 核心中已修復一項漏洞,iommu/vt-d:存取超出 dummy domain 範圍的結構導致核心 Oops。 | CVE-2026-52953
|
| Linux | Linux | 1 | 在 Linux 核心中已修復一項漏洞,libceph(rbtree insertion):重複的 choose_args 索引可觸發核心 BUG。 | CVE-2026-52954
|
| Linux | Linux | 1 | 在 Linux 核心中已修復一項漏洞,libceph(decrypt):解密時未驗證長度可能造成越界讀取。 | CVE-2026-52956
|
| Linux | Linux | 1 | 在 Linux 核心中已修復一項漏洞,libceph(NULL bucket):CRUSH bucket 為 NULL 時仍被存取,可能造成空指標解參考。 | CVE-2026-52957
|
| Linux | Linux | 1 | 在 Linux 核心中已修復一項漏洞,virt/sev-guest:使用主機控制的記憶體大小釋放頁面可能破壞頁面配置器。 | CVE-2026-52959
|
| Linux | Linux | 1 | 在 Linux 核心中已修復一項漏洞,ceph:未適合 writeback 的 folio 被移除時未正確釋放參考造成資源洩漏。 | CVE-2026-52960
|
| Linux | Linux | 1 | 在 Linux 核心中已修復一項漏洞,ENA PHC:時間戳記查詢與銷毀流程競態可能導致 UAF。 | CVE-2026-52971
|
| Linux | Linux | 1 | 在 Linux 核心中已修復一項漏洞,futex:共享 MM 的 futex 雜湊配置競態可能導致 UAF。 | CVE-2026-52973
|
| Linux | Linux | 1 | 在 Linux 核心中已修復一項漏洞,net/tls:TLS RX Offload 初始化失敗時會遺漏釋放 strparser 的 skb。 | CVE-2026-52974
|
| Linux | Linux | 1 | 在 Linux 核心中已修復一項漏洞,bonding 3ad:aggregator 指標缺乏正確 RCU 保護造成資料競態。 | CVE-2026-52975
|
| Linux | Linux | 1 | 在 Linux 核心中已修復一項漏洞,drm/xe exec queue:錯誤路徑未正確清理佇列導致懸掛指標與 UAF。 | CVE-2026-52976
|
| Linux | Linux | 1 | 在 Linux 核心中已修復一項漏洞,neigh_xmit:部分錯誤路徑未接管 skb 所有權導致封包記憶體洩漏。 | CVE-2026-52981
|
| Linux | Linux | 1 | 在 Linux 核心中已修復一項漏洞,net/airoha:TX 佇列 BQL 統計不一致可能造成網路佇列異常。 | CVE-2026-52983
|
| Linux | Linux | 1 | 在 Linux 核心中已修復一項漏洞,amdgpu userq:錯誤路徑重複執行 drm_exec_fini() 導致雙重釋放風險。 | CVE-2026-52987
|
| Linux | Linux | 1 | 在 Linux 核心中已修復一項漏洞,nf_tables:Hook 清單更新與 RCU 遍歷競態可能導致不安全存取。 | CVE-2026-52988
|
| Linux | Linux | 1 | 在 Linux 核心中已修復一項漏洞,sched/psi:壓力事件寫入與檔案釋放競態導致 UAF 或 NULL 解參考。 | CVE-2026-52991
|
| Linux | Linux | 1 | 在 Linux 核心中已修復一項漏洞,nfnetlink_osf:TTL 驗證過程可能存取 NULL 的網路裝置指標。 | CVE-2026-52998
|
| Linux | Linux | 1 | 在 Linux 核心中已修復一項漏洞,netfilter NAT:Hook 物件釋放未延遲至 RCU 安全期可能導致 UAF。 | CVE-2026-53000
|
| Linux | Linux | 1 | 在 Linux 核心中已修復一項漏洞,PPPoE:接受壓縮協定欄位封包可能造成封包資料錯位與未對齊存取。 | CVE-2026-53003
|
| Linux | Linux | 1 | 在 Linux 核心中已修復一項漏洞,AF_UNIX + SOCKMAP:SCM 附件可被 SOCKMAP 隱藏導致 FD 洩漏及 UAF。 | CVE-2026-53005
|
| Linux | Linux | 1 | 在 Linux 核心中已修復一項漏洞,ice driver:TX 錯誤路徑未清除 skb 指標導致雙重釋放(Double Free)。 | CVE-2026-53009
|
| Linux | Linux | 1 | 在 Linux 核心中已修復一項漏洞,taprio:排程切換後仍使用舊排程物件造成 UAF。 | CVE-2026-53011
|
| Linux | Linux | 1 | Linux 核心已修補以下漏洞:crypto: ccp 模組於 AF_ALG RFC3686 CTR-AES-CCP 要求中,驅動程式會將完整 AES 區塊大小的初始化向量(IV)寫回呼叫端緩衝區,但 RFC3686 僅提供 8 位元組 IV,造成緩衝區溢位。修補方式為改用 crypto_skcipher_ivsize(),依演算法實際 IV 長度進行複製。 | CVE-2026-53016
|
| Linux | Linux | 1 | Linux 核心已修補 UML(User Mode Linux)TLB 同步程序中的潛在競爭條件。TLB 同步期間需修改頁表,但原本未持有頁表鎖定,可能造成競爭情形。修補方式為停用 Split Page Table Lock,以確保同步安全。 | CVE-2026-53020
|
| Linux | Linux | 1 | Linux 核心 Greybus Raw 模組已修補 disconnect 後仍可寫入字元裝置所造成的已釋放後使用(Use-After-Free)漏洞。若應用程式於連線解除後仍執行寫入,可能導致核心當機。修補方式為加入讀寫鎖,同步寫入與 disconnect 作業。 | CVE-2026-53024
|
| Linux | Linux | 1 | Linux 核心 Greybus Raw 模組已修補關閉字元裝置時的已釋放後使用漏洞。disconnect 後若應用程式仍關閉已開啟的字元裝置,可能導致核心存取已釋放的記憶體。修補方式為調整裝置生命週期管理,延後釋放資源。 | CVE-2026-53025
|
| Linux | Linux | 1 | Linux 核心 NFS Server 已修補 nfsd4_add_rdaccess_to_wrdeleg() 中多餘的檔案存取計數問題。錯誤增加存取計數可能導致 nfsd_file 無法釋放,進而造成停止 NFS 服務時核心錯誤。 | CVE-2026-53026
|
| Linux | Linux | 1 | Linux 核心已修補 BPF arena_alloc_pages() 未驗證 node_id 的問題。原本未檢查 node_id 是否超出合法範圍,即傳遞至後續配置流程。修補後加入邊界驗證。 | CVE-2026-53031
|
| Linux | Linux | 1 | Linux 核心已修補 BPF Sockmap 與 AF_UNIX Iterator 間的競爭條件。Socket 狀態變更期間可能導致已釋放後使用(Use-After-Free)。修補方式為加入狀態鎖定,確保迭代期間 Socket 狀態一致。 | CVE-2026-53033
|
| Linux | Linux | 1 | Linux 核心 ARM64 BPF JIT 已修補立即數(Immediate)範圍檢查的 Off-by-One 錯誤。錯誤的範圍驗證可能導致分支位移編碼錯誤,甚至將向前跳躍誤編碼為向後跳躍。 | CVE-2026-53036
|
| Linux | Linux | 1 | Linux 核心 OCFS2 已修補 bg_bits 驗證不足問題。特製檔案系統映像可能造成位元圖掃描超出範圍,導致越界讀取。修補方式為限制 bg_bits 最大值並限制掃描範圍。 | CVE-2026-53040
|
| Linux | Linux | 1 | Linux 核心 OCFS2 已修補 listxattr() 緩衝區已滿時的處理錯誤。當 Inline 與 Block 型擴充屬性同時存在時,可能回傳超過呼叫端配置大小的資料,導致錯誤。修補後改以目標緩衝區指標是否為 NULL 判斷探測模式。 | CVE-2026-53041
|
| Linux | Linux | 1 | Linux 核心 Tegra CBB 已修補 Fabric 查詢表中 ARRAY_SIZE 使用錯誤,避免查詢 Target Timeout 時發生陣列越界存取。 | CVE-2026-53044
|
| Linux | Linux | 1 | Linux 核心 Quota 子系統已修補 dquot_scan_active() 與 Quota 停用程序間的競爭條件。該問題可能導致存取已釋放的 dquot 結構。修補方式為於取得參考時同步移除釋放佇列項目。 | CVE-2026-53050
|
| Linux | Linux | 1 | Linux 核心 DRM MSM 驅動已修補 VM_BIND UNMAP 作業鎖定錯誤。部分 Buffer Object 未正確鎖定,可能導致同步問題。 | CVE-2026-53054
|
| Linux | Linux | 1 | Linux 核心 Device Mapper Cache(SMQ)已修補快取失效程序缺少鎖定的問題。多個工作執行緒同時執行 invalidate 操作時,可能造成資料競爭或已釋放後使用漏洞。 | CVE-2026-53062
|
| Linux | Linux | 1 | Linux 核心 DRM Komeda 驅動已修補 AFBC Framebuffer 大小驗證中的整數溢位漏洞。整數溢位可能導致錯誤通過檢查,造成越界記憶體存取。修補方式為使用 check_add_overflow()。 | CVE-2026-53068
|
| Linux | Linux | 1 | Linux 核心已修補 XDP Master Redirect 在 Master 網路介面未啟用時的空指標解參考漏洞。若 Bond 裝置尚未啟動即進行 XDP Redirect,可能導致核心當機。修補後僅允許已啟用的 Master 裝置執行 Redirect。 | CVE-2026-53069
|
| Linux | Linux | 1 | Linux 核心 SCTP 已修補 UDP Tunnel 傳送程序未停用 Bottom Half(BH)所造成的問題。CPU 切換可能破壞遞迴計數平衡,導致封包遭丟棄。修補方式為於 IPv4/IPv6 傳送路徑停用 BH。 | CVE-2026-53070
|
| Linux | Linux | 1 | Linux 核心已修補 BPF pcpu_init_value() 越界讀取漏洞。當 BPF Map 值大小未對齊至 8 位元組時,資料複製可能超出來源緩衝區範圍。 | CVE-2026-53076
|
| Linux | Linux | 1 | Linux 核心已修補 RDS/IB 可於非初始 Network Namespace 使用的問題。由於 RDS/IB 不支援非初始命名空間,因此限制僅能於初始 Network Namespace 使用。 | CVE-2026-53077
|
| Linux | Linux | 1 | Linux 核心已修補 BPF sock_ops 在來源與目的暫存器相同時的越界讀取及核心指標洩漏漏洞。修補方式為修正相關巨集,確保目的暫存器於失敗路徑正確歸零。 | CVE-2026-53078
|
| Linux | Linux | 1 | Linux 核心已修補 BPF 驗證器 regsafe() 對 BPF_ADD_CONST 基底 ID 一致性驗證不足的問題。錯誤可能導致驗證器誤判狀態,造成錯誤的狀態剪枝(State Pruning)。 | CVE-2026-53081
|
| Linux | Linux | 1 | Linux 核心已修補 BPF task_vma Iterator 的 mm 結構生命週期管理問題。若工作程序同時結束,可能造成已釋放後使用。修補方式為取得 mm 參考計數並於適當時機釋放。 | CVE-2026-53085
|
| Linux | Linux | 1 | Linux 核心 BCMGENET 網路驅動已修補 TX Queue 回收程序未正確回收 Free Buffer Descriptor 的問題,避免資源洩漏及網路狀態異常。 | CVE-2026-53087
|
| Linux | Linux | 1 | Linux 核心已修補 BPF ld_abs/ld_ind 指令於子程式中的異常返回路徑分析缺失。修補後驗證器會同時分析成功與失敗路徑,避免錯誤驗證結果。 | CVE-2026-53090
|
| Linux | Linux | 1 | Linux 核心已修補 BPF 在來源與目的暫存器相同時的 Linked Register Delta Tracking 錯誤。該問題可能導致驗證器與實際執行結果不一致。 | CVE-2026-53092
|
| Linux | Linux | 1 | Linux 核心已修補 BPF Constant Blinding 後 offload->prog 指標未同步更新的問題。舊程式已釋放後仍被引用,可能導致已釋放後使用及核心頁面錯誤。修補後同步更新相關指標。 | CVE-2026-53094
|
| Linux | Linux | 1 | 在 Linux 核心中,已修正以下漏洞:bpf:在 dev_map_redirect_multi() SKB 路徑中使用 RCU 安全的迭代 dev_map_redirect_multi() 中的 DEVMAP_HASH 分支使用 hlist_for_each_entry_safe() 來迭代雜湊桶(hash buckets),但此函式是在 RCU 保護下執行(自軟體中斷(softirq)環境中的 xdp_do_generic_redirect_map() 呼叫)。同時執行的寫入者(__dev_map_hash_update_elem, dev_map_hash_delete_elem)使用 RCU 原語(hlist_add_head_rcu, hlist_del_rcu)修改該列表。hlist_for_each_entry_safe() 執行的是一般指標解除參照,而沒有使用 rcu_dereference(),因此遺漏了與寫入者的 rcu_assign_pointer() 配對所需的取得屏障(acquire barrier)。 在弱記憶體排序架構(ARM64, POWER)上,讀取者可能會觀察到部分建構的節點。這也使 CONFIG_PROVE_RCU 的 lockdep 驗證與 KCSAN 資料競爭(data-race)偵測失效。 將其替換為 hlist_for_each_entry_rcu(),並使用 rcu_read_lock_bh_held() 作為 lockdep 條件,這與同一個函式中 DEVMAP(非雜湊)分支所使用的 rcu_dereference_check() 一致。同時也修正了 dev_map_enqueue_multi() 中相同的錯誤 lockdep_is_held(&dtab->index_lock) 條件,該處同樣未持有該鎖定。 | CVE-2026-53096
|
| Linux | Linux | 1 | 在 Linux 核心中,已修正以下漏洞:s390/bpf:零擴展(Zero-extend)bpf 程式傳回值與 kfunc 引數 s390x ABI 要求呼叫者(callers)必須對無號引數(unsigned arguments)進行零擴展,並對有號引數(signed arguments)進行號誌擴展(sign-extend);同時要求被呼叫者(callees)對無號傳回值進行零擴展,並對有號傳回值進行號誌擴展。 目前 s390 BPF JIT 僅實作了號誌擴展。本修正解決了此遺漏,並補上了零擴展的實作。 | CVE-2026-53110
|
| Linux | Linux | 1 | 在 Linux 核心中,已修正以下漏洞:fs/omfs:拒絕小於 OMFS_DIR_START 的 s_sys_blocksizeomfs_fill_super() 會拒絕過大的 s_sys_blocksize 值(> PAGE_SIZE),但並未拒絕小於 OMFS_DIR_START(0x1b8 = 440)的值。隨後,omfs_make_empty() 會將 sbi->s_sys_blocksize - OMFS_DIR_START 作為長度引數傳遞給 memset()。由於 s_sys_blocksize 為 u32(無號 32 位元整數),當惡意建構的檔案系統映像檔中 s_sys_blocksize < OMFS_DIR_START 時,該處會發生無號整數下溢(unsigned underflow),使其值迴繞(wrapping)至接近 $2^{32}$ 的極大值。這會導致從 bh->b_data + OMFS_DIR_START 開始執行約 4 GiB 的 memset(),進而覆寫遠超出後端區塊緩衝區(backing block buffer)的核心記憶體。本修正於 omfs_fill_super() 的現有上限檢查旁,加入了對應的下限檢查,以便在處理任何檔案系統資料之前,就能在超級區塊(superblock)驗證期間拒絕異常的映像檔。 | CVE-2026-53130
|
| Linux | Linux | 1 | 在 Linux 核心中,已修正以下漏洞:vsock/virtio:修正潛在的無限制 skb 佇列virtio_transport_inc_rx_pkt() 會檢查 vvs->rx_bytes + len > vvs->buf_alloc。而 virtio_transport_recv_enqueue() 會針對帶有 VIRTIO_VSOCK_SEQ_EOM 標記的封包跳過合併(coalescing)處理。如果持續傳入 len == 0 且帶有 VIRTIO_VSOCK_SEQ_EOM 的封包,由於 vvs->rx_bytes 會一直保持在 0,導致大量的封包被塞入佇列(queue)中而不會觸發上述的上限檢查。本修正透過估算 skb 的元資料(metadata)大小來解決此問題:將限制條件加上(佇列中的 skb 數量)$\times$ SKB_TRUESIZE(0)。 | CVE-2026-53132
|
| Linux | Linux | 1 | 在 Linux 核心中,已修正以下漏洞:RDMA/umem:修正區塊大小 >= 4G 時的截斷問題 當使用 IOMMU 時,映射的線性化(linearization)可能會產生單一且非常巨大的區塊,該區塊會跨多個 SG(Scatter-Gather)條目(entries)分佈。 當 __rdma_block_iter_next() 重新組裝這些分開的 SG 條目時,會造成 32 位元堆疊值的溢位(overflow),進而導致在截斷(truncation)之後的區塊計算出錯誤的 DMA 位址。 本修正透過使用正確的資料型態(types)來保存 DMA 位址,從而解決此問題。 | CVE-2026-53133
|
| Linux | Linux | 1 | 在 Linux 核心中,已修正以下漏洞:drm/gem:嘗試修正 change_handle ioctl,第 4 次嘗試$$airlied:僅增加了一些關於如何重新啟用的註解$$此修正直接公開在郵件清單上,因為秘密已經洩漏,且我們顯然無法私下搞懂這個問題。故事至此:5e28b7b94408 ("drm: Set old handle to NULL before prime swap in change_handle") 試圖修正 gem_close 與 gem_change_handle ioctl 之間的競爭條件(race condition),但弄錯了幾件事:當中混淆了區域變數 handle,它實際上是新的 handle,因此這份兩階段技巧實際上被套用到了錯誤的 idr 插槽(slot)。7164d78559b0 ("drm/gem: fix race between change_handle and handle_delete") 試圖透過加入另一個程式碼區塊來修正此問題,卻忘記加入錯誤處理。這意味著我們現在有兩條路徑,且兩者都有點錯。dc366607c41c ("drm: Replace old pointer to new idr") 試圖套用另一個修正,但不一致,同樣是因為 handle 的混淆——如果我們對新的 handle 採用兩階段方法,這將會是正確的修正(算是一半正確,總之是一團亂)。除非這並不是原始修正的意圖。我們也沒有為原始的 ioctl 合併 igt(Intel GPU Tools 測試),這是一個大忌。這在原始的錯誤修正中曾試圖於私下解決,且 amd QA 人員聲稱該錯誤現已修正。非常明顯,事實並非如此。以下是我梳理此問題的嘗試:將區域變數重新命名為 new_handle,原本與 args->handle 的名稱重疊實在太危險且令人混淆。將 gem 物件查找(lookup)與兩階段的 idr_replace 合併,以避免我們在該處產生混淆。這意味著我們不再有額外的暫存引用(temporary reference),只有一個從 idr 繼承而來的引用。在 new_handle 上同時執行的 gem_close 可能會竊取該引用。使用與 create_tail 相同的兩階段方法來修正此問題。如註解中所述,這有點過度修正(overkill),但我也不信任自己能正確理解這一切的能力,因此改用我們從其他 ioctl 中建立的既定模式,以達到最大程度的偏執。調整錯誤路徑。我曾試圖讓錯誤與成功路徑共用,因為除了移除哪個 handle 以及在何處呼叫 idr_replace 以重新安裝物件之外,它們是完全相同的。但那樣做會讓程式碼更難閱讀,所以我留下了較冗長的版本,不幸的是,這稍微掩蓋了整個程式碼流程中的對稱性。順便將 7 個空格的縮排替換為 1 個 tab。最後,因為我完全不再信任自己在這裡的能力:停用此 ioctl,直到我們在郵件清單上以完全的共識解決 igt 情況及其他所有問題。v2:Sashiko 注意到我沒有正確處理 idr_replace 的錯誤路徑,它必須像在 gem_handle_delete 中一樣使用 IS_ERR_OR_NULL 進行檢查。所以沒錯,絕對應該直接 1:1 延用現有的路徑,因為這有著無窮無盡的棘手細節。同時也補上了原始 ioctl 的 Fixes: 行,這點我也忘記了。 | CVE-2026-53145
|
| Linux | Linux | 1 | 在 Linux 核心中,已修正以下漏洞:thunderbolt:限制 XDomain 回應複製長度至實際框架大小 tb_xdomain_copy() 會從接收到的封包緩衝區中複製 req->response_size 位元組,而忽略了實際的框架大小(frame size)。 當收到較短的回應時,這會導致讀取超出 DMA 記憶體池緩衝區(DMA pool buffer)中的有效框架資料,進而讀取到先前傳輸留下的舊資料(stale contents)。 本修正改為使用「實際框架大小」與「預期回應大小」兩者中的最小值,作為複製長度。 | CVE-2026-53146
|
| Linux | Linux | 1 | 在 Linux 核心中,已修正以下漏洞:mm/list_lru:在重新歸親(reparent)時,先排空(drain)再清除 xarray 條目memcg_reparent_list_lrus() 在將即將銷毀的 memcg 的每節點列表(per-node lists)重新歸親至父節點之前,會先以 xas_store(&xas, NULL) 清除該 memcg 的 xarray 條目。 這開啟了一個時間窗(window),此時若有同時執行的 list_lru_del() 傳入該銷毀中的 memcg,將會觀察到 xa_load() == NULL,進而在 lock_list_lru_of_memcg() 中走向父節點、取得父節點的每節點鎖定(per-node lock),並對一個實際仍連結在該銷毀中 memcg 列表上的項目呼叫 list_del_init()。如果此時另一個執行中的執行緒正持有該銷毀中 memcg 的每節點鎖定(例如另一個 list_lru_del,或是正在執行隔離回呼函式(isolate callback)的 list_lru_walk_one),這兩個執行緒將會在不同的鎖定下,修改同一個實體列表上的 ->next/->prev 指標,導致相鄰項目的連結互相毀損(corrupt)。 本修正透過顛倒執行順序來解決此問題:先將每個每節點列表重新歸親,並將子節點的 list_lru 標記為死亡(dead),最後才清除 xarray 條目。如此一來,任何同時執行且發現 xarray 條目仍存在的 list_lru 操作,可取得該銷毀中 memcg 的每節點鎖定(與排空操作同步),或是觀察到 LONG_MIN 並走向項目目前所在的父節點。 | CVE-2026-53153
|
| Linux | Linux | 1 | 在 Linux 核心中,已修正以下漏洞:misc: fastrpc:修正 fastrpc_map_create 中的釋放後釋放(use-after-free)競爭條件 fastrpc_map_lookup 在釋放 fl->lock 鎖定之後會傳回一個原始指標(raw pointer)。呼叫者 fastrpc_map_create 隨後對這個未受保護的指標呼叫 fastrpc_map_get(即 kref_get_unless_zero)。 此時,若有另一個同時執行的 MEM_UNMAP 操作,可能會在「鎖定釋放」與「kref 操作」之間的時間窗內將該對映(map)釋放,進而導致對已釋放的 slab 物件執行釋放後使用(use-after-free)。 本修正恢復了 fastrpc_map_lookup 的 take_ref 參數,以便在指標暴露給呼叫者之前,在 fl->lock 的保護下原子性地(atomically)取得引用計數。 | CVE-2026-53160
|
| Linux | Linux | 1 | 在 Linux 核心中,已修正以下漏洞:misc: fastrpc:修正工作佇列(workqueue)環境中 fastrpc_user 的釋放後使用(use-after-free) 在 fastrpc_device_release() 與處理 DSP 回應的工作佇列之間存在競爭條件。當使用者關閉檔案描述符(file descriptor)時,fastrpc_device_release() 會釋放 fastrpc_user 結構。與此同時,一個執行中的 DSP 呼叫可能剛好完成,且 fastrpc_rpmsg_callback() 會透過 schedule_work(&ctx->put_work) 排程進行環境清理。如果工作佇列在 fastrpc_device_release() 釋放 user 結構的同時或之後執行 fastrpc_context_free(),它將會解除參照(dereference)該已釋放的 fastrpc_user。根據競爭發生時環境的狀態,可能會觸發以下任一存取錯誤: fastrpc_buf_free() 呼叫 fastrpc_ipa_to_dma_addr(buf->fl->cctx, ...),以便在將實體位址傳遞給 dma_free_coherent() 之前,從儲存的 IOVA 中移除 SID 位元。fastrpc_free_map() 讀取 map->fl->cctx->vmperms[0].vmid,以重建將記憶體從 DSP 虛擬機器(VM)交還給高階作業系統(HLOS)時,qcom_scm_assign_mem() 呼叫所需的來源權限位元遮罩(bitmask)。fastrpc_free_map() 取得 map->fl->lock,以安全地將 map 節點從 fl->maps 列表中移除。 此釋放後使用(use-after-free)所導致的崩潰呼叫棧(call stack)表現如下: Plaintext pc : fastrpc_buf_free+0x38/0x80 [fastrpc] lr : fastrpc_context_free+0xa8/0x1b0 [fastrpc] fastrpc_context_free+0xa8/0x1b0 [fastrpc] fastrpc_context_put_wq+0x78/0xa0 [fastrpc] process_one_work+0x180/0x450 worker_thread+0x26c/0x388 本修正為 fastrpc_user 引入了基於 kref 的引用計數機制。讓每個呼叫環境(invoke context)在配置時取得一個 user 的引用,並在環境被釋放時將其釋放。原本在檔案關閉時的 fastrpc_device_release() 則改為釋放初始引用。 本修正將 user 結構的終止處理——包含釋放擱置的環境、maps、mmaps 以及通道環境引用——移入 kref 的釋放回呼函式 fastrpc_user_free() 中。如此一來,只有當最後一個引用被丟棄時才會執行清除,無論該清除是發生在裝置關閉時,還是在最後一個執行中的環境完成之後。 | CVE-2026-53161
|
| Linux | Linux | 1 | 在 Linux 核心中,已修正以下漏洞:memcg:在 refill_stock 中使用輪詢(round-robin)方式選擇受害者(victim) Harry Yoo 回報指出,在 NMI(非遮罩式中斷)環境中呼叫 get_random_u32_below() 是不安全的,而 memcg 額度排空(charge draining)確實可能發生在 NMI 環境中。 更具體地說,get_random_u32_below() 既不支援重入(reentrant),也不具備 NMI 安全性:它會透過對 batched_entropy_u32 狀態呼叫 local_lock_irqsave() 來取得每 CPU(per-cpu)的 local_lock。如果 NMI 剛好在某個 CPU 正在更新 ChaCha 批次狀態的中途觸發,並遞迴進入亂數子系統,將會導致該狀態遭到毀損。 雖然 memcg_stock 的 local_trylock 可以防止每 CPU stock 本身被重入,但它無法保護不相關子系統的每 CPU 鎖定。 本修正將亂數挑選機制替換為儲存在 memcg_stock_pcp 中的每 CPU 輪詢計數器,並由原本就用來保護 cached[] 和 nr_pages[] 的同一個 local_trylock 進行序列化。這項改動不需要原子操作(atomics)、不需要呼叫亂數函式,也不需要額外的鎖定。 | CVE-2026-53162
|
| Linux | Linux | 1 | 在 Linux 核心中,已修正以下漏洞:iomap:避免在錯誤回報期間潛在的 NULL folio->mapping 解除參照 當緩衝讀取(buffered read)失敗時,iomap_finish_folio_read() 會透過 fserror_report_io(folio->mapping->host, ...) 來回報錯誤。此呼叫是在 ifs->read_bytes_pending 扣除嘗試讀取的位元組數之後才進行的。 對於一個跨多個讀取完成(read completions)分開處理的 folio,只有在 read_bytes_pending > 0 的情況下,才能保證該 folio 保持鎖定狀態。一旦 iomap_finish_folio_read() 扣減了 read_bytes_pending,另一個執行中的讀取就可能完成並結束該 folio 的讀取,從而將其解鎖。 這會允許截斷(truncate)邏輯執行並分離(detach)該 folio(將 folio->mapping 設定為 NULL)。隨後的錯誤回報路徑就可能會解除參照一個轉為 NULL 的 folio->mapping。 根據 Sam Sun 的回報,以下是可能發生的競爭條件(Race Condition): Plaintext CPU0: 失敗的讀取完成 CPU1: 最後一個讀取完成 CPU2: 截斷 (Truncate) ----------------------- ---------------------- -------------- read_bytes_pending -= len finished = false /* 在呼叫 fserror_report_io() 之前被搶佔 (preempted) */ read_bytes_pending -= len finished = true folio_end_read() truncate 清除 folio->mapping fserror_report_io( folio->mapping->host, ...) ^ NULL 解除參照 本修正透過先進行錯誤回報,隨後才扣減 ifs->read_bytes_pending 的順序調整,解決了此問題。 | CVE-2026-53165
|
| Linux | Linux | 1 | 在 Linux 核心中,已修正以下漏洞:accel/ethosu:修正命令串流解析器中 IFM 區域索引越界問題NPU_SET_SET_IFM_REGION 透過 param & 0x7f 提取區域索引(region index),這會產生最大達 127 的數值。然而,在 struct ethosu_validated_cmdstream_info 結構體中,region_size[] 與 output_region[] 的陣列大小皆被限制為 NPU_BASEP_REGION_MAX(即 8),意即有效的索引範圍僅為 [0..7]。在同一個 switch 判斷式中,所有其他的區域指派都是使用 param & 0x7:NPU_SET_OFM_REGION: st.ofm.region = param & 0x7;NPU_SET_IFM2_REGION: st.ifm2.region = param & 0x7;NPU_SET_WEIGHT_REGION: st.weight[0].region = param & 0x7;NPU_SET_SCALE_REGION: st.scale[0].region = param & 0x7;對 IFM 使用 0x7f 的遮罩顯然不一致,應為打字錯誤(typo)。feat_matrix_length() 與 calc_sizes() 會直接將該區域索引作為陣列下標,存取經由 kzalloc 配置的 info 結構體:info->region_size[fm->region] = max(...);如果使用者空間(userspace)的呼叫者在提供 NPU_SET_IFM_REGION 時傳入大於 7 的 param,將會導致寫入超出 region_size[] 起始位址高達 $127 \times 8 = 1016$ 位元組的空間,進而毀損相鄰的核心堆疊(kernel heap)資料。本修正透過套用與所有其他區域指派相同的 & 0x7 遮罩,解決了此問題。 | CVE-2026-53172
|
| Linux | Linux | 1 | 在 Linux 核心中,已修正以下漏洞:accel/ethosu:修正 ethosu_gem_cmdstream_copy_and_validate() 中的越界(OOB)寫入 命令串流(command stream)解析迴圈在遇到 64 位元命令字組(即第 14 位元被設定)時,會將索引變數 i 增加第二次,但在寫入第二個字組之前,並未重新檢查迴圈的邊界條件: C for (i = 0; i < size / 4; i++) { bocmds[i] = cmds[0]; if (cmd & 0x4000) { i++; bocmds[i] = cmds[1]; /* 未經檢查的寫入 */ } } 緩衝區 bocmds 是由 drm_gem_dma_create(ddev, size) 配置、大小正好為 size 位元組的 DMA 空間所支援,因此有效的索引範圍為 [0, size/4 - 1]。當進入某次迴圈迭代且 i == size/4 - 1 時,如果 cmds[0] 的第 14 位元被設定,bocmds[size/4 - 1] 的寫入仍在合法邊界內;隨後 i 被遞增為 size/4,導致 bocmds[size/4] 將 4 個位元組的資料寫入到超出該配置範圍的後方空間 由於使用者空間(userspace)可以透過 ioctl 同時控制緩衝區內容與 size 引數,這使得該漏洞成為一個可由使用者空間觸發的堆疊越界寫入(heap out-of-bounds write)。 本修正透過在執行第二次寫入前,檢查遞增後的索引是否超出緩衝區邊界來解決此問題。若緩衝區過小而無法容納該擴充命令,則傳回 -EINVAL。 | CVE-2026-53173
|
| Linux | Linux | 1 | 在 Linux 核心中,已修正以下漏洞:ovl:在成功呼叫 ovl_cache_get() 後將 err 保持為零 ovl_iterate_merged() 在檢查 IS_ERR(cache) 之前,會先將 PTR_ERR(cache) 儲存至變數 err 中。 當呼叫成功時,err 會保留被截斷的快取指標(truncated cache pointer),並可能在後續被作為錯誤碼傳回,進而導致系統回傳一個錯誤的非零(bogus non-zero)錯誤碼。 syzbot 重現程式(reproducer)是透過重疊檔案系統上再疊一層重疊檔案系統(overlay-on-overlay)的 readdir 操作來觸發此路徑: Plaintext getdents64 iterate_dir(外層 overlay 檔案) ovl_iterate_merged() ovl_cache_get() ovl_dir_read_merged() ovl_dir_read() iterate_dir(內層 overlay 檔案) ovl_iterate_merged() 本修正透過僅在錯誤處理路徑(error path)上才計算 PTR_ERR(cache),解決了此問題。 | CVE-2026-53174
|
| Linux | Linux | 1 | 在 Linux 核心中,已修正以下漏洞:timers/migration:修正 tmigr_handle_remote_up() 中的活鎖(livelock)問題tmigr_handle_remote_cpu() 在 cpu == smp_processor_id() 時會跳過 timer_expire_remote(),這是基於「本地軟體中斷(softirq)路徑已經處理了該 CPU 的計時器」的假設。然而,這個假設是錯誤的。因為在 run_timer_base(BASE_GLOBAL) 處理完該 CPU 的全域計時器之後,到 tmigr_handle_remote() 評估逾時時間之前,jiffies(系統節拍數)仍有可能繼續增加。這會導致一個後果:某個計時器在 CPU 本地計時器輪(timer wheel)推進之後才逾時,並在遠端處理(remote handling)期間變成已逾時狀態,該計時器將會被忽略,其回呼函式(callback)永遠不會被呼叫,且無法從計時器輪中移除。更糟糕的是,fetch_next_timer_interrupt_remote() 會持續將該計時器回報為已逾時,導致在每次迭代中,該事件都會以 expires == now(逾時時間等於當前時間)的形式被重新排入佇列(re-queued)。這使得 goto-again 迴圈會無限中斷並瘋狂空轉(spins indefinitely),造成系統活鎖。本修正透過無條件呼叫 timer_expire_remote() 來解決此問題。對於一般常見情況而言,這只會增加極小的額外負擔(overhead),因為如果本地計時器輪中沒有任何需要逾時處理的項目,__run_timer_base() 就會立即傳回。 tglx:修正變更紀錄(change log)並加入註解 | CVE-2026-53180
|
| Linux | Linux | 1 | 在 Linux 核心中,已修正以下漏洞:wifi: nl80211:拒絕過大的 EMA RNR 列表 nl80211_parse_rnr_elems() 將解析出的元件數量儲存在以 u8 為資料型態的 cfg80211_rnr_elems::cnt 欄位中,並使用該計數來決定可變長度陣列(flexible array)的配置大小。 當計數達到 255 時,本修正會在該計數再次遞增之前,直接拒絕巢狀的 NL80211_ATTR_EMA_RNR_ELEMS 輸入。 這樣可以讓解析器與其填入的資料結構保持一致,並與 nl80211_parse_mbssid_elems() 目前所使用的邊界檢查相匹配。 | CVE-2026-53182
|
| Linux | Linux | 1 | 在 Linux 核心中,已修正以下漏洞:mptcp:允許子流(subflow)接收視窗縮減 在 MPTCP(多路徑 TCP)連線中,TCP 標頭(header)中的 window 欄位指的是 MPTCP 層級的 rcv_nxt,且其右邊界(right edge)不應該向後移動。這項限制是在產生 DSS(Data Sequence Signal)選項時強制執行的。 與此同時,TCP 協定疊(TCP stack)也會獨立確保 TCP 層級的接收視窗(rcv wnd)右邊界不會向後移動。然而,當傳入的資料在 TCP 層級已被確認(acked),但在 MPTCP 序號空間中屬於失序資料(Out-of-Order, OoO),或者進入了待處理處理佇列(backlog)時,這種機制反而會導致 MPTCP 接收視窗被人為放大(artificial inflating)。其後果是,即使傳送端沒有惡意行為,傳入的流量仍可能會超過接收端的接收緩衝區(rcvbuf)大小。 本修正透過強制允許 TCP 子流縮減 TCP 層級的接收視窗來阻止這種情況發生,不論目前的網路命名空間(netns)設定為何。 | CVE-2026-53183
|
| Linux | Linux | 1 | 在 Linux 核心中,已修正以下漏洞:udp:在執行 sockmap verdict 之前清除 skb->dev在 UDP 的接收路徑(receive path)上,skb->dev 會被重新定義為 dev_scratch(由 udp_set_dev_scratch() 設定的實體大小與狀態快取),這是透過 sk_buff 結構體中的 union { struct net_device *dev; unsigned long dev_scratch; } 來實現的。當一個 UDP 通訊端(socket)位於 sockmap 中時,其 sk_data_ready 會是 sk_psock_verdict_data_ready(),該函式會呼叫 udp_read_skb() $\rightarrow$ recv_actor() (sk_psock_verdict_recv),以便在軟體中斷(softirq)環境中執行附加的 SK_SKB verdict 程式。如果該 BPF 程式呼叫了通訊端查閱協助工具(socket-lookup helper,如 bpf_sk_lookup_tcp/udp、bpf_skc_lookup_tcp),bpf_skc_lookup() 會執行以下判斷:Cif (skb->dev) caller_net = dev_net(skb->dev); 此時 skb->dev 仍然保存著 dev_scratch 的值(一個非 NULL 的整數),因此 dev_net() 會將其誤解並解引用(dereference)為一個 struct net_device * 指標。這會導致核心在軟體中斷期間,因存取非規範位址(non-canonical address)而觸發一般保護錯誤(general protection fault, GPF)崩潰:PlaintextOops: general protection fault, probably for non-canonical address 0x1010000800004a0 CPU: 1 UID: 0 PID: 1406 Comm: syz.2.19 Not tainted 7.1.0-rc6 #1 PREEMPT(full) RIP: 0010:bpf_skc_lookup net/core/filter.c:7033 [inline] RIP: 0010:bpf_sk_lookup+0x45/0x160 net/core/filter.c:7047 Call Trace: bpf_prog_4675cb904b7071f8+0x12e/0x14e bpf_prog_run_pin_on_cpu+0xc6/0x1f0 sk_psock_verdict_recv+0x1ba/0x350 udp_read_skb+0x31a/0x370 sk_psock_verdict_data_ready+0x2e3/0x600 __udp_enqueue_schedule_skb+0x4c8/0x650 udpv6_queue_rcv_one_skb+0x3ec/0x740 udp6_unicast_rcv_skb+0x11d/0x140 ip6_protocol_deliver_rcu+0x61e/0x950 ip6_input_finish+0xa9/0x150 NF_HOOK+0x286/0x2f0 ip6_input+0x117/0x220 NF_HOOK+0x286/0x2f0 __netif_receive_skb+0x85/0x200 process_backlog+0x374/0x9a0 __napi_poll+0x4f/0x1c0 net_rx_action+0x3b0/0x770 handle_softirqs+0x15a/0x460 do_softirq+0x57/0x80 由於 dev_scratch 所紀錄的接收記憶體(rmem)記帳額度,在稍早移出佇列(dequeue)時就已經被 skb_recv_udp() 釋放,因此在 recv_actor() 執行時,該暫存資料(scratch)已經判定為失效(dead)。本修正透過明確清除 skb->dev(設為 NULL)來解決此問題。如此一來,bpf_skc_lookup() 就會正確退回(fall back)使用 sock_net(skb->sk),而該通訊端擁有者資訊已在稍早由 skb_set_owner_sk_safe() 正確設定。 | CVE-2026-53184
|
| Linux | Linux | 1 | 在 Linux 核心中,已修正以下漏洞:zram:修正 zram_bvec_write_partial() 中的釋放後使用(use-after-free) zram_read_page() 會根據父節點 bio 是否為 NULL,來決定選擇同步(sync)或非同步(async)的後端裝置讀取路徑。由於 zram_bvec_write_partial() 會將其父節點 bio 向下傳遞,因此對於 ZRAM_WB(寫入快取/後端儲存)插槽而言,該讀取會以非同步方式分派。這導致 zram_read_page() 在 bio 仍在執行(in flight)時就直接傳回 0。 隨後,呼叫者會立即對該緩衝區執行 memcpy_from_bvec()、zram_write_page() 以及 __free_page()。這使得該非同步讀取操作最終將資料寫入到一個已被釋放的記憶體頁(freed page)中。在 commit 4e3c87b9421d ("zram: fix synchronous reads") 中,基於完全相同的原因,zram_bvec_read_partial() 內傳遞的 bio 已經被改為 NULL;然而當時遺漏了負責寫入的對應函式 zram_bvec_write_partial()。 本修正透過在 zram_bvec_write_partial() 的對應路徑中同樣將傳遞的 bio 改為 NULL,強制其走同步讀取路徑,從而解決了此釋放後使用(UAF)的競爭問題。 | CVE-2026-53185
|
| Linux | Linux | 1 | 在 Linux 核心中,已修正以下漏洞:RDMA/core:在 DMAH 配置中針對 nr_cpu_ids 驗證 cpu_id 使用者空間(userspace)透過 UVERBS_ATTR_ALLOC_DMAH_CPU_ID 提供的 cpu_id 屬性,在未事先驗證該值是否處於有效 CPU 範圍內的情況下,就被直接傳遞給了 cpumask_test_cpu()。將此類未受信任的資料傳遞給 cpumask_test_cpu() 可能會導致對底層 cpumask 位元圖(bitmap)的越界讀取(out-of-bounds read):該協助工具會展開為 test_bit(),並以 cpu_id / BITS_PER_LONG 作為索引來存取位元圖,當中完全沒有邊界檢查。此外,在啟用 CONFIG_DEBUG_PER_CPU_MAPS 編譯的核心上,這會觸發 cpumask_check() 中的 WARN_ON_ONCE();若再結合 panic_on_warn 設定,這會將一個惡意的使用者輸入直接變成機器重啟(machine reboot)。 本修正透過在 cpu_id 被使用之前,直接拒絕任何不小於 nr_cpu_ids 的 cpu_id 並傳回 -EINVAL,解決了此問題。 | CVE-2026-53187
|
| Linux | Linux | 1 | 在 Linux 核心中,已修正以下漏洞:mm/huge_memory:在 folio_put() 之前更新檔案 PMD 計數器 __split_huge_pmd_locked() 在釋放(dropping)PMD 映射的 folio 引用之後,才去更新檔案/共享記憶體(file/shmem)的 RSS 計數器。如果 folio_put() 剛好釋放了最後一個引用,隨後執行的 mm_counter_file() 可能會透過 folio_test_swapbacked() 讀取到已被釋放的 folio 狀態(freed folio state)。 本修正透過將計數器更新的操作移至 folio_put() 之前,解決了此釋放後使用(UAF)的隱患。 | CVE-2026-53189
|
| Linux | Linux | 1 | 在 Linux 核心中,已修正以下漏洞:io_uring/net:在重試組合接收(bundle recv)時跨迭代繼承 IORING_CQE_F_BUF_MORE 當組合接收在 io_recv_finish() 內部進行重試時,其合併邏輯會將前一次迭代儲存的 cflags 與新迭代傳回的 cflags 進行「或(OR)」運算: cflags = req->cqe.flags | (cflags & CQE_F_MASK); 列在 CQE_F_MASK 中的位元會自新迭代中繼承,而所有其他位元(特別是 IORING_CQE_F_BUFFER 以及緩衝區 ID)則來自先前儲存的 cflags。 在此修正之前,CQE_F_MASK 僅涵蓋了 IORING_CQE_F_SOCK_NONEMPTY 與 IORING_CQE_F_MORE。當在增量模式(incremental mode)下搭配組合接收使用提供的緩衝區環(provided buffer rings, IOU_PBUF_RING_INC)時,io_kbuf_inc_commit() 可能會讓前端環條目(head ring entry)處於部分消耗(partially consumed)的狀態。隨後,__io_put_kbufs() 會在傳回的 cflags 上設定 IORING_CQE_F_BUF_MORE,以便讓使用者空間(userspace)知道該緩衝區 ID 將會被後續的完成事件(completions)重複使用。由於 IORING_CQE_F_BUF_MORE 原先不在 CQE_F_MASK 當中,每當最後一次重試迭代部分消耗了該緩衝區時,上述的合併邏輯就會悄悄丟棄該標記;此外,隨後的 req->cqe.flags = cflags & ~CQE_F_MASK 儲存操作,若先前存在該標記,也會將一個失效的 IORING_CQE_F_BUF_MORE 留在遞延的 cflags 中。這會導致使用者空間錯誤地將其環前端(ring head)推進,進而超越了核心仍在使用的條目。 本修正透過將 IORING_CQE_F_BUF_MORE 加入至 CQE_F_MASK 中來解決此問題,使其既能從新迭代中繼承至使用者可見的 CQE(Completion Queue Event)中,也能在兩次迭代之間從儲存的 cflags 中被正確清除。 | CVE-2026-53191
|
| Linux | Linux | 1 | 在 Linux 核心中,已修正以下漏洞:ALSA:timer:修正 snd_timer_user_params() 中的釋放後使用(UAF) 在釋放計時器物件時(例如:當使用者空間計時器 CONFIG_SND_UTIMER 被關閉且 snd_timer_free() 被呼叫時),核心會嘗試卸載該計時器實例(timer instances)並釋放相關資源。然而,此時其他執行中的任務(in-flight tasks)仍有可能持有與該「即將被刪除的計時器物件」相關聯的計時器實例,進而導致競爭存取(racy accesses)。幸運的是,大多數處理計時器實例列表的 ioctl 都已經受到 register_mutex 互斥鎖的保護,這也避免了此類競爭。但是,SNDRV_TIMER_IOCTL_PARAMS 先前並未受到保護,因此同時執行的 ioctl 可能會導致釋放後使用(use-after-free)。 本修正作為一個快速客製化解決方案(workaround),直接在 snd_timer_user_params() 中加入了 register_mutex 鎖定保護,以涵蓋此程式碼路徑。由於該處並非效能關鍵路徑(hot-path),而是極少被發出的 ioctl,因此其效能損耗(performance penalty)無足輕重。 | CVE-2026-53192
|
| Linux | Linux | 1 | 在 Linux 核心中,已修正以下漏洞:ALSA:timer:在關閉時強制關閉計時器實例(timer instances) 當一個 snd_timer 物件透過 snd_timer_free() 被釋放時,若仍有擱置的 snd_timer_instance 物件指派給該計時器物件,核心會嘗試斷開(unlink)所有實例,並直接將每個 ti->timer 設定為 NULL,隨後立即釋放資源。然而,問題在於當存在隸屬於某個主實例(master instance)的從屬計時器實例(slave timer instances),且該主實例連結到此計時器時:即使主實例已被斷開,這些從屬實例仍然指向已被釋放的計時器物件,進而可能導致釋放後使用(use-after-free)。特別是在引入由使用者空間驅動的新計時器(CONFIG_SND_UTIMER)時,此錯誤非常容易被觸發。因為它可以透過簡單的檔案開啟/關閉來建立和刪除計時器物件,而其他應用程式此時可能仍持續在存取該計時器。 本修正旨在解決上述問題:現在不再只是單純斷開連結,而是對每個擱置的計時器實例強制呼叫 snd_timer_close[_locked](),藉此讓所有指派的從屬計時器實例也能被正確卸載(detached)。此外,由於建立該實例的驅動程式後續可能還會呼叫 snd_timer_close(),因此在該函式開頭也同步加入了 SNDRV_TIMER_IFLG_DEAD 的狀態檢查以避免重複釋放。 | CVE-2026-53193
|
| Linux | Linux | 1 | 在 Linux 核心中,已修正以下漏洞:USB:serial:kl5kusb105:修正 bulk-out 緩衝區溢位 通用寫入路徑(generic write path)會呼叫 klsi_105_prepare_write_buffer(),並傳入 bulk-out 緩衝區及其大小(bulk_out_size,共 64 位元組)。 該函式會在緩衝區的開頭儲存一個 2 位元組的長度標頭(header),並從寫入 FIFO(write_fifo)中將負載(payload)複製到自 buf + KLSI_HDR_LEN 開始的空間。然而,它在複製時,卻將整個緩衝區的大小(size)作為欲複製的位元組數量傳遞進去: count = kfifo_out_locked(&port->write_fifo, buf + KLSI_HDR_LEN, size, &port->lock); 當 FIFO 中保留的資料大於或等於 size 位元組時,這會導致 size 位元組的資料被複製到「已向後偏移 2 位元組」的緩衝區中,進而將 KLSI_HDR_LEN(2 位元組)大小的資料寫入到超出該緩衝區末端的空間。 本修正改為最多僅複製 size - KLSI_HDR_LEN 位元組,為標頭預留空間(這與 safe_serial 驅動程式的做法一致)。 先前若對 tty 寫入等於或大於 bulk_out_size 的位元組時,會觸發 slab 越界寫入(slab out-of-bounds write)。此現象已透過 dummy_hcd 與 raw-gadget 模擬該裝置,並經由 KASAN 偵測觀察到: Plaintext BUG: KASAN: slab-out-of-bounds in kfifo_copy_out+0x83/0xc0 Write of size 64 at addr ffff888112c62202 by task python3 kfifo_copy_out klsi_105_prepare_write_buffer [kl5kusb105] usb_serial_generic_write_start [usbserial] Allocated by task 139: usb_serial_probe [usbserial] The buggy address is located 2 bytes inside of allocated 64-byte region 套用此變更後,該越界寫入問題已不再發生。 | CVE-2026-53194
|
| Linux | Linux | 1 | 在 Linux 核心中,已修正以下漏洞:hv_netvsc:在 netvsc_copy_to_send_buf 中使用 kmap_local_page netvsc_copy_to_send_buf() 過去在對核心分頁框架號(PFN)項目使用 phys_to_virt() 後,將分頁緩衝區(page buffer)項目複製到 VMBus 傳送緩衝區。RNDIS 標頭(header)與 skb 線性資料的項目來自 kmalloc 配置的記憶體,且總是位於核心直接映射(kernel direct map)中;但 skb 片段(fragments)的項目則會引用分頁快取(page cache)或使用者分頁。在啟用 CONFIG_HIGHMEM=y 的 32 位元 x86 系統上,這些分頁可能位於 LOWMEM 邊界之上。對於這類高階記憶體分頁,phys_to_virt() 會傳回一個超出直接映射範圍的無效位址,導致隨後在傳送軟體中斷(transmit softirq)路徑上的 memcpy() 觸發嚴重崩潰(fault)。 本修正改為使用 kmap_local_page() 來映射這些分頁,並妥善處理了分頁緩衝區項目的兩個特性: Hyper-V PFN 粒度問題:pb[i].pfn 是以 HV_HYP_PAGE_SIZE(4K)為粒度的 Hyper-V PFN,而非原生(native)的 PFN。本修正先重建其實體位址,再從中推導出原生分頁,如此一來在 PAGE_SIZE > HV_HYP_PAGE_SIZE 的系統(例如使用 64K 分頁的 arm64)上,映射依然能保持正確。分頁跨界與大小問題:自 commit 41a6328b2c55 開始,一個項目會描述一個完整實體連續的片段,使得 pb[i].len 可能會超過 PAGE_SIZE,然而 kmap_local_page() 一次只能映射單一分頁。因此,本修正改為逐頁(page by page)複製,並在原生分頁邊界處進行切分。由於該複製路徑僅處理小於傳送區段大小(預設為 6144 位元組)的封包;更大的封包會走 cp_partial 路徑(該路徑僅複製 RNDIS 標頭)。因此,此處的項目大小受到區段大小的限制,在 4K 分頁的系統上,複製最多只會被切分一次。在未啟用 CONFIG_HIGHMEM 的組態中,kmap_local_page() 會直接摺疊(folds)為 page_address(),不會增加任何額外的映射開銷。 | CVE-2026-53199
|
| Linux | Linux | 1 | 在 Linux 核心中,已解決以下漏洞:還原「drm/xe:若佇列在休眠期間閒置,則跳過執行佇列排程切換」。這還原了 commit 8533051ce92015e9cc6f75e0d52119b9d91610b6。 該「閒置跳過 (idle-skip)」最佳化機制會繞過 GuC 休眠,導致 GPU 可能不會執行用來清除已失效 userptr VMA 之 TLB 項目的內文切換 (Context Switch)。在 LR/preempt-fence VM 模式下,這會導致在 userptr 失效測試期間,遺漏 TLB 失效並引發分頁錯誤 (Page Faults)。 目前已恢復在休眠時無條件進行排程切換,以確保必定會執行內文切換的 TLB 清除作業。此最佳化機制將在未來的修補程式中重新引入,且屆時在 LR/preempt-fence VM 模式下將不會再跳過休眠。(此處由 commit 6a1e7934d9a6cf46aecae00a99c2603d1295e170 擇優挑選/cherry-picked) | CVE-2026-53201
|
| Linux | Linux | 1 | 在 Linux 核心中,已解決以下漏洞:accel/ivpu:修復 IPC 接收程序中的帶號整數截斷問題。 修復了潛在的緩衝區溢位 (Buffer Overflow) 問題。該問題發生在韌體提供的 data_size 在 min_t() 中使用前,被強制轉型為有號整數 (signed int)。過大的無號數值(大於或等於 0x80000000)會被轉換為負數,進而造成無號數迴繞 (Unsigned Wraparound) 以及過大的 memcpy 操作,這可能會導致堆疊緩衝區溢位 (Stack Buffer Overflow)。 解決方案是將 min_t(int, ...) 變更為 min(),因為這兩個數值皆為無號數,可直接由 min() 處理而無需明確轉型。 | CVE-2026-53202
|
| Linux | Linux | 1 | 在 Linux 核心中,已解決以下漏洞:accel/ivpu:在 MS get_info_ioctl 中新增緩衝區溢位檢查。 新增驗證機制,確保從指標串流資訊查詢 (metric stream info query) 返回的資訊大小,與分配的緩衝區大小比對時不會超出限制。如果韌體返回的大小大於緩衝區,則拒絕該操作並返回 -EOVERFLOW,而不是繼續進行不正確的緩衝區複製。 | CVE-2026-53203
|
| Linux | Linux | 1 | 在 Linux 核心中,已解決以下漏洞:accel/ivpu:為韌體日誌索引新增邊界檢查。 新增驗證機制,在使用韌體日誌緩衝區中的讀取與寫入索引之前,確保它們位於有效範圍內(< data_size)。如果遇到來自韌體的越界 (out-of-bounds) 索引,會將其限制在安全值內,而不是繼續使用無效的偏移量 (offsets)。這可防止韌體提供無效的日誌索引時,發生潛在的越界緩衝區存取。 | CVE-2026-53205
|
| Linux | Linux | 1 | 在 Linux 核心中,已解決以下漏洞:Bluetooth:hci_sync:拒絕過大的 Broadcast Announcement (廣播公告) 前置追加。 現有的廣播實例可能已經裝載了最大擴展廣播有效載荷 (Payload)。當 hci_adv_bcast_annoucement() 將 Broadcast Announcement 服務資料前置追加到該有效載荷時,合併後的資料可能已無法放入用於重建廣播資料的暫存緩衝區中。 現在會在複製現有有效載荷之前拒絕這種情況,並透過裝置日誌回報失敗。這可保持現有廣播資料的完整性,並避免暫存緩衝區發生溢位 (Overrun)。 | CVE-2026-53209
|
| Linux | Linux | 1 | 在 Linux 核心中,已解決以下漏洞:netfilter:nft_tunnel:修復物件銷毀時的釋放後使用 (Use-After-Free) 問題。 nft_tunnel_obj_destroy() 會呼叫 metadata_dst_free(),它直接對 metadata_dst 執行 kfree(),而忽略了 dst_entry 的參考計數。那些在 nft_tunnel_obj_eval() 中透過 dst_hold() 取得參考且仍在佇列中(例如在 netem qdisc 中)的封包,會留下一個懸空指標 (Dangling Pointer)。當這些封包最終離開佇列時,dst_release() 就會對已釋放的記憶體進行操作。 修復方式是將 metadata_dst_free() 替換為 dst_release(),這樣 metadata_dst 就只會在所有參考都被丟棄後才會被釋放。當設置了 DST_METADATA 時,dst 子系統已經會在 dst_destroy() 中處理 metadata_dst 的清理工作。 | CVE-2026-53212
|
| Linux | Linux | 1 | 在 Linux 核心中,已解決以下漏洞:net:保護時間戳記 cmsgs 僅限於真實的錯誤佇列 (error queue) skbs。 skb_is_err_queue() 將 PACKET_OUTGOING 視為來自 sk_error_queue 的 skb 的唯一標記。這個假設對於 AF_PACKET sockets 來說並不成立:外送封包的 taps 也會傳送到 skb->pkt_type == PACKET_OUTGOING 的 packet sockets,但是它們的 skb->cb 是由 AF_PACKET 擁有的,而不是 struct sock_exterr_skb。 如果收到啟用了時間戳記的這類 skb,通用的時間戳記 cmsg 路徑可能會將 AF_PACKET 的控制緩衝區狀態讀取為 sock_exterr_skb::opt_stats。如果啟用了 SO_RXQ_OVFL,封包遺失計數器會覆寫 opt_stats。異常的遺失計數會讓該路徑發出帶有 skb->len 和 skb->data 的 SCM_TIMESTAMPING_OPT_STATS。對於非線性的 skbs,這會複製超出線性頭部 (linear head) 的範圍,並可能觸發強化的 usercopy 或洩露相鄰的堆積 (Heap) 內容。 修復方式是將 skb_is_err_queue() 保留在 net/socket.c 內,但讓它驗證 PACKET_OUTGOING 標記是否與 sock_queue_err_skb() 安裝的 sock_rmem_free 解構函式配對。AF_PACKET 接收到的 skbs 使用一般的接收所有權,不再被當作 error-queue skbs 傳遞,而合法的 sk_error_queue 項目則保留 PACKET_OUTGOING 標記和 sock_rmem_free 所有權。 | CVE-2026-53223
|
| Linux | Linux | 1 | 在 Linux 核心中,已解決以下漏洞:net/mlx5e:xsk:修復 XDP_TX 傳輸失敗時的 DMA 與 xdp_frame 洩漏問題。 在 mlx5e_xmit_xdp_buff() 的 XSK 分支中,當 sq->xmit_xdp_frame() 返回 false(例如 XDPSQ 已滿)時,函式會直接返回,而沒有解除映射 DMA 位址或釋放由 xdp_convert_zc_to_xdp_frame() 分配的 xdp_frame。 xdpi_fifo 的推送只會在成功時發生,因此完成路徑 (Completion Path) 無法恢復這些項目。在開啟 CONFIG_DMA_API_DEBUG=y 的情況下,該洩漏會在驅動程式解除綁定 (unbind) 時浮現(錯誤日誌顯示有未處理的 DMA 分配)。 修復方式是加入缺失的 unmap 與 xdp_return_frame,這與 mlx5e_xdp_xmit() 中已經完成的清理工作一致。因為在此分支的較早階段已經拒絕了 has_frags,所以不需要針對每個 fragment 進行解除映射 (per-frag unmap)。 | CVE-2026-53229
|
| Linux | Linux | 1 | 在 Linux 核心中,已解決以下漏洞:net:在 skb_gro_receive_list() 中新增 pskb_may_pull()。 skb_gro_receive_list() 呼叫了 skb_pull(skb, skb_gro_offset(skb)),但沒有先透過 pskb_may_pull() 確保資料位於線性區域 (Linear Area)。 當 skb 經由 napi_gro_frags() 到達時,skb_headlen 可能為 0(所有資料都在 page fragments 中),而 skb_gro_offset 卻非 0(在解析 IP+TCP 標頭之後)。接著 skb_pull() 依據 skb_gro_offset 遞減了 skb->len,但 skb->data_len 卻保持不變,這會觸發 __skb_pull() 中的 BUG_ON(skb->len < skb->data_len)。 UDP fraglist GRO 路徑已經在 udp_offload.c:749 包含了這個保護。將其直接加入到 skb_gro_receive_list() 之中,可為所有呼叫者(TCP、UDP 以及未來任何通訊協定)提供集中式的保護,並確保在呼叫 skb_pull() 之前滿足其先決條件。如果 pskb_may_pull() 失敗,則設定 NAPI_GRO_CB(skb)->flush = 1,這樣 skb 就不會被保留為新的 GRO head,而是透過正常的接收路徑傳遞,這與 UDP 的處理方式一致。 | CVE-2026-53235
|
| Linux | Linux | 1 | 在 Linux 核心中,已解決以下漏洞:xfrm:policy:修復 xfrm_policy_bysel_ctx() 中 inexact bin 的釋放後使用 (Use-After-Free) 問題。 透過在仍持有 xfrm_policy_lock 鎖的期間,於丟棄 bin 之前先將其修剪 (prune),來修復競爭條件 (Race Condition)。因為已經持有鎖,所以直接使用 __xfrm_policy_inexact_prune_bin()。而原本的包裝函數 xfrm_policy_inexact_prune_bin() 變得不再被使用,因此將其移除。 | CVE-2026-53239
|
| Linux | Linux | 1 | 在 Linux 核心中,已解決以下漏洞:ALSA:PCM:修復連結串流 (linked streams) 上 snd_pcm_drain() 中的等待佇列清單損壞問題。 snd_pcm_drain() 使用 init_waitqueue_entry(不會清除 entry.prev/next)以及 add_wait_queue 加上有條件的 remove_wait_queue,如果 to_check 在併發的 UNLINK 操作後不再屬於該群組,就會跳過 remove_wait_queue。 這會導致孤立的等待項目仍留在被解除連結 (unlinked) 的 substream 睡眠佇列上。在下一次 drain 迭代時,add_wait_queue 會將該項目加入到新的佇列,但它同時還連接在舊的佇列上,這會破壞兩個佇列清單。隨後的 wake_up 會在 func 指標(被錯誤解讀為 wait_queue_head_t 偏移 0 的 spinlock)處解參考 NULL,導致 Kernel Panic。 修復方式是將 init_waitqueue_entry / add_wait_queue / 條件式 remove_wait_queue 替換為 init_wait_entry / prepare_to_wait / finish_wait。init_wait_entry 在每次迭代時透過 INIT_LIST_HEAD 清除 prev/next,並設定 autoremove_wake_function 在喚醒時自動移除該項目。finish_wait 則能安全地處理「已移除」和「仍在佇列中」的兩種情況。 | CVE-2026-53242
|
| Linux | Linux | 1 | 在 Linux 核心中,已解決以下漏洞:VFS:修復 nfsd4_create_file() 中可能的解鎖失敗問題。 在 fs/namei.c 中的 atomic_create() 如果返回錯誤,它會丟棄對 dentry 的參考。這個行為被引入到了 dentry_create() 中,因此如果 atomic_create() 返回錯誤,它也會丟棄參考(但如果是 vfs_create() 返回錯誤則不會,因為不支援 ->atomic_create)。 呼叫者 nfsd4_create_file() 透過檢查 path->dentry 來得知此情況,它要不是對 dentry 的計數參考,就是一個錯誤指標。然而,改用 start_creating() / end_creating() 後,意味著 nfsd4_create_file() *必須*要有一個有效的 dentry 才能解鎖父節點。 最終結果是,如果 NFSD 匯出了一個使用 ->atomic_create 的檔案系統,且 ->atomic_create 的呼叫返回了錯誤,那麼 nfsd4_create_file() 就會傳遞一個錯誤指標給 end_creating(),導致父節點不會被解鎖。 修復方式是更改 dentry_create(),以確保 path->dentry 始終是一個有效的 dentry,而永遠不會是錯誤指標。實際的錯誤已經透過另一種方式回傳了。 | CVE-2026-53244
|
| Linux | Linux | 1 | 在 Linux 核心中,已解決以下漏洞:xsk:快取 csum_start / csum_offset 以修復 xsk_skb_metadata() 中的 TOCTOU (Time-Of-Check to Time-Of-Use) 問題。 TX metadata 區域位於 UMEM 緩衝區中,該緩衝區是記憶體對映的,並且可供使用者空間並發寫入。在 xsk_skb_metadata() 中,csum_start 和 csum_offset 會從共享記憶體中讀取以進行邊界驗證,然後再次讀取以進行 skb 分配。 惡意的使用者空間應用程式可以在這兩次讀取之間進行競爭並覆寫這些值,藉此繞過邊界檢查,並在傳輸路徑中計算校驗和 (Checksum) 時導致越界記憶體存取。 修復方式是將 csum_start 和 csum_offset 讀入區域變數一次,然後將這些區域變數副本用於驗證和分配。請注意,由於使用者空間的並發寫入,其他 metadata 欄位(flags, launch_time)和快取的 csum 欄位可能互相不一致,但這是無害的:唯一關乎安全性的不變式 (Invariant) 是,每個欄位被驗證的值與被使用的值必須是同一個,而區域快取保證了這一點。 | CVE-2026-53250
|
| Linux | Linux | 1 | 在 Linux 核心中,已解決以下漏洞:Bluetooth:bnep:在解析前拒絕過短的影格。 一個 BNEP peer 可以傳送一個較短的 BNEP SDU。bnep_rx_frame() 會立即讀取封包類型位元組,並且對於控制封包,會在證明這些位元組存在之前,讀取控制操作碼 (opcode) 和設定 UUID-size 位元組。bnep_rx_control() 也會在不拒絕空的控制有效載荷的情況下,解參考控制操作碼。 修復方式是在 bnep_rx_frame() 中對固定欄位使用 skb_pull_data(),這樣當回傳 NULL 時就能擋下每個解參考操作。分割控制處理常式,讓影格路徑可以傳遞一個已經被 pull 的 opcode,並為擴展控制有效載荷保留 byte-buffer 包裝器。 對於 BNEP_SETUP_CONN_REQ,在 pull setup 有效載荷之前為 UUID-size 位元組命名。struct bnep_setup_conn_req 在該位元組之後攜帶了目標和來源服務 UUID(每個佔 uuid_size 個位元組),因此解析器現在明確記錄了該組態,而不是將 pull 長度留作不透明的乘法運算。 | CVE-2026-53253
|
| Linux | Linux | 1 | 在 Linux 核心中,已解決以下漏洞:ipv6:anycast:在 idev->lock 鎖下將 aca 插入全域雜湊表。 syzbot 回報了一個問題:在 ipv6_chk_acast_addr() 中發生了 slab 釋放後使用 (Use-After-Free) 的情況。該函式在 RCU 下走訪全域 inet6_acaddr_lst[] 雜湊表,並解參考了一個已被釋放但仍連接在雜湊表中的 struct ifacaddr6,導致後續的讀取者走訪到懸空的節點。 此問題發生在一個時間差:在 __ipv6_dev_ac_inc() 插入到 ac_list 與插入到雜湊表 ipv6_add_acaddr_hash() 之間,若同時發生拆除操作 (teardown),並執行了 ipv6_del_acaddr_hash(aca)(此時因為尚未插入雜湊表,所以變成無效操作),接著降低參考計數並釋放 aca。最後 ipv6_add_acaddr_hash(aca) 才把已經被釋放的 aca 插入到雜湊表中。 修復方式是將 ipv6_add_acaddr_hash() 移到 idev->lock 區段內,使 ac_list 和雜湊表的插入相對於拆除操作具備原子性 (Atomic)。 | CVE-2026-53259
|
| Linux | Linux | 1 | 在 Linux 核心中,已解決以下漏洞:l2tp:pppol2tp:在 pppol2tp_ioctl() 中保持對 session 的參考。 pppol2tp_ioctl() 在沒有任何鎖或參考計數的情況下直接讀取 sock->sk->sk_user_data。如果在 copy_from_user() 期間引發了可控的休眠,並發的 socket 關閉可能會非同步觸發 pppol2tp_session_close(),進而釋放了 l2tp_session 結構。恢復後,ioctl 執行緒會解參考過期的 session 指標,導致釋放後使用 (UAF)。 修復方式是在進入時,使用支援 RCU 且具有參考計數的安全輔助函式 pppol2tp_sock_to_session(sk) 來安全取得 session 參考。這在整個休眠期間鎖定了 session 的參考計數,並確保在所有返回路徑上都會呼叫 l2tp_session_put() 來丟棄參考。 | CVE-2026-53262
|
| Linux | Linux | 1 | 在 Linux 核心中,已解決以下漏洞:net/sched:act_api:對動作 (action) 生命週期使用帶有延遲釋放的 RCU。 當 NEWTFILTER 和 DELFILTER 並發執行時,可能會與關聯的動作產生競爭條件。如果 CPU1 在 DELFILTER 中將 action 從 IDR 中移除並立刻進行 kfree(),而此時 CPU0 在 NEWTFILTER 中已經用 idr_find() 找到了這個 action 準備增加參考計數,就會導致釋放後使用 (UAF)。 修復方式是透過將 struct rcu_head 加入 tc_action 以用於延遲,並在刪除路徑中引入 call_rcu(),將最終的 kfree() 延遲到 RCU 寬限期 (Grace Period) 之後才執行,藉此解決此競爭條件。 | CVE-2026-53264
|
| Linux | Linux | 1 | 在 Linux 核心中,已解決以下漏洞:dm cache policy smq:在 invalidate 鎖定範圍內檢查分配 (allocation)。 之前的 commit 在 smq_invalidate_mapping() 的破壞性部分周圍加上了 mq->lock,但將 e->allocated 檢查留在了臨界區段 (Critical Section) 之外。這留下了一個 check-then-act 的競爭條件。 兩個並發的無效化執行緒 (Invalidators) 都可能在取得鎖之前觀察到 e->allocated 為 true。第一個取得鎖的執行緒會將項目從佇列和雜湊表中移除並呼叫 free_entry()。第二個執行緒接著取得鎖,卻繼續使用解鎖時檢查到的過時結果。 這可能會因為刪除一個已不在這些結構上的項目而損壞 SMQ 佇列或雜湊表,也可能在同一個項目被再次釋放時觸發 free_entry() 中的分配檢查。修復方式是將分配檢查移到 mq->lock 之下,讓判斷與破壞性操作由同一個鎖來序列化。 | CVE-2026-53265
|
| Linux | Linux | 1 | 在 Linux 核心中,已解決以下漏洞:netfilter:nft_ct:在 get eval 中遇到 template ct (範本 conntrack) 時退出。 如果一個規則透過 nft_ct_set_zone_eval() 附加了一個 per-cpu template ct(tuple 全為零),而下一個運算式對同一個 skb 呼叫 nft_ct_get_eval(),並將這個 template 視為真實的 ct,就會觸發 16-byte memcpy 路徑。這會導致暫存器溢位超出核心堆疊上的 struct nft_regs,或覆寫相鄰的暫存器。 修復方式是在 eval 進入點和 nft_ct_get_fast_eval() 中拒絕 template ct。此外,將 NFT_CT_SRC / NFT_CT_DST 中的位址複製範圍限制在 priv->len,而不是受限於不受信任的 conntrack 欄位。 | CVE-2026-53267
|
| Linux | Linux | 1 | 在 Linux 核心中,已解決以下漏洞:ipvs:在編輯時及早清除 svc 排程器指標。 ip_vs_edit_service() 在解除綁定舊的排程器時,會在排程器模組啟動 RCU callbacks *之後*才清除 svc->scheduler 指標。這會導致封包在 svc->sched_data 已經過 RCU 寬限期被釋放後,仍然使用舊的排程器。 修復方式是在 ip_vs_unbind_scheduler() 中及早清除指標,必須在 done_service 方法排程任何 RCU callbacks 之前進行。 | CVE-2026-53270
|
| Linux | Linux | 1 | 在 Linux 核心中,已解決以下漏洞:tee:optee:防止當用戶端 (client) 在 supplicant 之前退出時發生釋放後使用 (Use-After-Free) 問題。 先前的 commit 讓 client 的等待變為 killable,改變了生命週期的預期:client 任務現在可以在 supplicant 仍在處理其請求時終止。如果 client 先退出,它會從佇列中移除請求並 kfree() 它,而請求 ID 仍保留在 supp->idr 中。這會導致 supplicant 在後續查找時解參考已釋放的記憶體。 修復方式是透過 supp->mutex 來序列化請求存取,並讓執行緒注意到 client 已終止,藉此確保請求不會在 supplicant 仍有參考時被釋放。 | CVE-2026-53273
|
| Linux | Linux | 1 | 在 Linux 核心中,已解決以下漏洞:Bluetooth:ISO:修復 hci_conn 指標的釋放後使用 (Use-After-Free) 問題。 在 iso_sock_rebind_bc() 中,bis 指標被快取後,socket 鎖就被釋放了。在解鎖的期間,一個並發的 close() 可能會破壞連線並釋放 bis 結構,導致稍後呼叫 hci_dev_lock(bis->hdev) 時存取到已釋放的記憶體。 修復方式是使用透過 iso_conn_get_hdev() 安全取得的 hdev 參考。 | CVE-2026-53276
|
| Linux | Linux | 1 | 在 Linux 核心中,已解決以下漏洞:btrfs:僅在寫入成功後才釋放 dirty pages io 樹。 在 btrfs_write_and_wait_transaction() 裡面,如果從 btrfs_write_marked_extent() 發生錯誤,系統仍然會呼叫 btrfs_extent_io_tree_release() 來清除 dirty_pages io 樹,但其中可能包含了尚未提交的髒紀錄 (dirty records)。因為樹被清空了,後續的 transaction 清理路徑就無法正確清理這些髒 ebs (extent buffers),從而在 unmount 時觸發警告。 | CVE-2026-53284
|
| Linux | Linux | 1 | 在 Linux 核心中,已解決以下漏洞:drm/xe/eustall:修復在 close 中 stream 停用前呼叫 drm_dev_put 的問題。 在 xe_eu_stall_stream_close() 中,drm_dev_put() 在 stream 停用且資源釋放之前就被呼叫。如果這丟棄了最後一個參考,裝置結構可能會被釋放,而後續的清理程式碼仍在存取它們,導致釋放後使用 (UAF)。修復方式是將 drm_dev_put() 移到所有裝置存取完成之後。 | CVE-2026-53290
|
| Linux | Linux | 1 | 在 Linux 核心中,已解決以下漏洞:net:enetc:修復 NTMP DMA 釋放後使用 (UAF) 問題。 如果 netc_xmit_ntmp_cmd() 逾時並返回錯誤,未決的指令並未被明確中止,而 DMA 緩衝區卻被無條件釋放。硬體最終會處理該指令,並將回應寫入已釋放緩衝區的實體位址,導致記憶體損壞。 修復方式為: 1. 將 ring_lock 從 spinlock 改為 mutex。 2. 引入軟體命令 BD (struct netc_swcbd),由軟體層級來儲存與管理 DMA 緩衝區的指標與生命週期。 3. 要求呼叫者在整個 netc_xmit_ntmp_cmd() 執行期間持有 ring_lock。 | CVE-2026-53300
|