Executive Summary

Informations
Name CVE-2024-56555 First vendor Publication 2024-12-27
Vendor Cve Last vendor Modification 2025-03-06

Security-Database Scoring CVSS v3

Cvss vector : CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H
Overall CVSS Score 7.1
Base Score 7.1 Environmental Score 7.1
impact SubScore 5.2 Temporal Score 7.1
Exploitabality Sub Score 1.8
 
Attack Vector Local Attack Complexity Low
Privileges Required Low User Interaction None
Scope Unchanged Confidentiality Impact High
Integrity Impact None Availability Impact High
Calculate full CVSS 3.0 Vectors scores

Security-Database Scoring CVSS v2

Cvss vector :
Cvss Base Score N/A Attack Range N/A
Cvss Impact Score N/A Attack Complexity N/A
Cvss Expoit Score N/A Authentication N/A
Calculate full CVSS 2.0 Vectors scores

Detail

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.

Original Source

Url : http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-56555

CPE : Common Platform Enumeration

TypeDescriptionCount
Application 8
Os 3690

Sources (Detail)

https://git.kernel.org/stable/c/011e69a1b23011c0db3af4b8293fdd4522cc97b0
https://git.kernel.org/stable/c/6b1be1da1f8279cf091266e71b5153c5b02aaff6
Source Url

Alert History

If you want to see full details history, please login or register.
0
1
2
3
4
5
6
7
8
Date Informations
2025-03-29 03:44:13
  • Multiple Updates
2025-03-28 13:47:30
  • Multiple Updates
2025-03-28 03:22:02
  • Multiple Updates
2025-03-19 03:16:53
  • Multiple Updates
2025-03-18 03:29:53
  • Multiple Updates
2025-03-14 00:22:18
  • Multiple Updates
2025-03-13 21:21:26
  • Multiple Updates
2025-03-06 17:20:32
  • Multiple Updates
2024-12-27 21:20:29
  • First insertion