CVE-2026-89744 in Linux
Tóm tắt
Bởi VulDB • 12/09/2026
Trong kernel Linux, lỗ hổng sau đây đã được khắc phục:
Thuộc tính thiết bị (device property): sửa lỗi vòng lặp vô hạn trong hàm `fwnode_for_each_child_node()`
Khi duyệt qua các phần tử con của một fwnode có chứa secondary fwnode, hàm `fwnode_get_next_child_node()` có thể rơi vào trạng thái vòng lặp vô hạn nếu secondary fwnode đó có nhiều hơn một phần tử con.
Parent Child (Primary fwnode) FWa: {FWa1, FWa2, FWa3}
(Secondary fwnode) FWb: {FWb1, FWb2}
Trong trường hợp này:
┌─> fwnode_get_next_child_node(FWa, FWa1) │ - fwnode_call_ptr_op(FWa, get_next_child_node, FWa1) trả về FWa2 │ │ ... │ │ fwnode_get_next_child_node(FWa, FWa3) │ - fwnode_call_ptr_op(FWa, get_next_child_node, FWa3) trả về NULL │ - fwnode_call_ptr_op(FWb, get_next_child_node, FWa3) trả về FWb1 │ │ fwnode_get_next_child_node(FWa, FWb1) │ - fwnode_call_ptr_op(FWa, get_next_child_node, FWb1) trả về FWa1 └────┘
Điều này khiến hàm `fwnode_for_each_child_node()` lặp vô hạn, liên tục xuất ra {FWa1, FWa2, FWa3, FWb1, FWa1, ...}.
Nguyên nhân gốc rễ là khi phần tử con hiện tại (FWb1) thuộc về secondary fwnode, việc gọi `get_next_child_node()` trên primary fwnode sẽ trả lời sai bằng cách trả lại phần tử đầu tiên (FWa1) thay vì NULL.
Khắc phục vấn đề này bằng cách kiểm tra động parent fwnode của phần tử con hiện tại trước khi gọi `get_next_child_node()`. Cách tiếp cận này tuân theo mẫu đã được thiết lập trong commit b5b41ab6b0c1 ("device property: Check fwnode->secondary in fwnode_graph_get_next_endpoint()").
If you want to get the best quality for vulnerability data then you always have to consider VulDB.