Skip to main content

CVE-2024-56555: Vulnerability in Linux Linux

High
VulnerabilityCVE-2024-56555cvecve-2024-56555
Published: Fri Dec 27 2024 (12/27/2024, 14:23:01 UTC)
Source: CVE
Vendor/Project: Linux
Product: Linux

Description

In the Linux kernel, the following vulnerability has been resolved: binder: fix OOB in binder_add_freeze_work() In binder_add_freeze_work() we iterate over the proc->nodes with the proc->inner_lock held. However, this lock is temporarily dropped to acquire the node->lock first (lock nesting order). This can race with binder_deferred_release() which removes the nodes from the proc->nodes rbtree and adds them into binder_dead_nodes list. This leads to a broken iteration in binder_add_freeze_work() as rb_next() will use data from binder_dead_nodes, triggering an out-of-bounds access: ================================================================== BUG: KASAN: global-out-of-bounds in rb_next+0xfc/0x124 Read of size 8 at addr ffffcb84285f7170 by task freeze/660 CPU: 8 UID: 0 PID: 660 Comm: freeze Not tainted 6.11.0-07343-ga727812a8d45 #18 Hardware name: linux,dummy-virt (DT) Call trace: rb_next+0xfc/0x124 binder_add_freeze_work+0x344/0x534 binder_ioctl+0x1e70/0x25ac __arm64_sys_ioctl+0x124/0x190 The buggy address belongs to the variable: binder_dead_nodes+0x10/0x40 [...] ================================================================== This is possible because proc->nodes (rbtree) and binder_dead_nodes (list) share entries in binder_node through a union: struct binder_node { [...] union { struct rb_node rb_node; struct hlist_node dead_node; }; Fix the race by checking that the proc is still alive. If not, simply break out of the iteration.

AI-Powered Analysis

AILast updated: 06/28/2025, 11:41:39 UTC

Technical Analysis

CVE-2024-56555 is a vulnerability identified in the Linux kernel's binder driver, specifically within the binder_add_freeze_work() function. The binder driver facilitates inter-process communication (IPC) in Android and other Linux-based systems. The vulnerability arises due to a race condition during iteration over a red-black tree (proc->nodes) protected by proc->inner_lock. The function binder_add_freeze_work() iterates over proc->nodes while holding proc->inner_lock but temporarily releases this lock to acquire node->lock, following lock nesting order. This temporary release allows a concurrent binder_deferred_release() function to modify the proc->nodes tree by removing nodes and adding them to the binder_dead_nodes list. Since proc->nodes and binder_dead_nodes share entries in the binder_node structure through a union, this concurrent modification leads to a broken iteration in binder_add_freeze_work(). The iteration uses rb_next() to traverse the tree, but due to the race, rb_next() accesses memory from binder_dead_nodes, causing an out-of-bounds read. This is detected by Kernel Address Sanitizer (KASAN) as a global out-of-bounds read, which can lead to kernel crashes or undefined behavior. The root cause is the unsafe lock handling and concurrent modification of shared data structures without proper synchronization. The fix involves checking if the proc structure is still alive during iteration and breaking out if it is not, preventing the invalid memory access. This vulnerability affects Linux kernel versions including the commit d579b04a52a183db47dfcb7a44304d7747d551e1 and likely subsequent versions until patched. No known exploits are reported in the wild as of the publication date (December 27, 2024). No CVSS score has been assigned yet.

Potential Impact

For European organizations, the impact of CVE-2024-56555 depends on their use of Linux systems with the affected kernel versions, particularly those running Android devices, embedded systems, or servers utilizing the binder driver. Exploitation of this vulnerability could lead to kernel crashes (denial of service) or potentially enable privilege escalation or arbitrary code execution if combined with other vulnerabilities, given the out-of-bounds memory access in kernel space. This could disrupt critical services, especially in sectors relying on Linux-based infrastructure such as telecommunications, automotive, industrial control systems, and cloud providers. The binder driver is heavily used in Android, so organizations managing fleets of Android devices (e.g., mobile operators, enterprises with BYOD policies) could face increased risk. Additionally, embedded Linux devices used in IoT, manufacturing, or healthcare in Europe might be vulnerable. The vulnerability's exploitation does not require user interaction but does require kernel-level access or triggering ioctl calls, which may limit remote exploitation but does not eliminate risk from local attackers or malicious applications. Given Europe's strong regulatory environment around data protection (GDPR) and critical infrastructure resilience, any kernel-level compromise could have significant compliance and operational consequences.

Mitigation Recommendations

European organizations should prioritize updating their Linux kernels to versions that include the patch for CVE-2024-56555. Since the vulnerability is in the binder driver, organizations should: 1) Identify all systems running affected Linux kernel versions, including embedded and Android devices. 2) Apply vendor-supplied kernel patches or upgrade to the latest stable kernel releases that address this issue. 3) For Android devices, ensure OEMs provide timely security updates and deploy them promptly. 4) Restrict access to ioctl interfaces related to the binder driver using mandatory access controls (e.g., SELinux, AppArmor) to limit untrusted applications from triggering the vulnerability. 5) Monitor kernel logs and system behavior for signs of crashes or suspicious activity related to binder operations. 6) Employ runtime security tools capable of detecting kernel memory corruption or out-of-bounds accesses. 7) For critical infrastructure, consider network segmentation and strict device management policies to reduce exposure. 8) Engage with hardware and software vendors to confirm patch availability and deployment timelines. These steps go beyond generic advice by focusing on the specific binder driver interface and the unique concurrency issue in the kernel.

Need more detailed analysis?Get Pro

Technical Details

Data Version
5.1
Assigner Short Name
Linux
Date Reserved
2024-12-27T14:03:05.990Z
Cisa Enriched
false
Cvss Version
null
State
PUBLISHED

Threat ID: 682d9823c4522896dcbdf200

Added to database: 5/21/2025, 9:08:51 AM

Last enriched: 6/28/2025, 11:41:39 AM

Last updated: 8/18/2025, 11:30:57 PM

Views: 14

Actions

PRO

Updates to AI analysis are available only with a Pro account. Contact root@offseq.com for access.

Please log in to the Console to use AI analysis features.

Need enhanced features?

Contact root@offseq.com for Pro access with improved analysis and higher rate limits.

Latest Threats