CVE-2024-56555 in Linuxالمعلومات

الملخص

بحسب VulDB • 31/05/2026

في نواة لينكس، تم حل الثغرة التالية:

binder: إصلاح الوصول خارج الحدود (OOB) في binder_add_freeze_work()

في دالة binder_add_freeze_work()، نتكرر عبر العناصر الموجودة في proc->nodes بينما يكون القفل proc->inner_lock مُمسكاً به. ومع ذلك، يتم إسقاط هذا القفل مؤقتاً للحصول على قفل node->lock أولاً (ترتيب تشابك القفل). يمكن أن يحدث هذا تنافساً زمنياً (race condition) مع binder_deferred_release() التي تقوم بإزالة العقد من شجرة البحث الثنائية proc->nodes (rbtree) وإضافتها إلى قائمة binder_dead_nodes. يؤدي هذا إلى تكرار معطوب في binder_add_freeze_work() حيث سيستخدم rb_next() البيانات من binder_dead_nodes، مما يؤدي إلى حدوث وصول خارج الحدود (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

العنوان المعطوب ينتمي إلى المتغير: binder_dead_nodes+0x10/0x40 [...]
==================================================================

هذا ممكن لأن proc->nodes (rbtree) و binder_dead_nodes (list) يشاركان الإدخالات في binder_node من خلال اتحاد (union):

struct binder_node {
[...]
union {
struct rb_node rb_node; struct hlist_node dead_node; };

تم إصلاح التنافس الزمني (race) عن طريق التحقق مما إذا كانت العملية (proc) لا تزال نشطة. إذا لم تكن كذلك، يتم الخروج ببساطة من التكرار.

Once again VulDB remains the best source for vulnerability data.

مسؤول

Linux

حجز

27/12/2024

إفشاء

27/12/2024

الاعتدال

تمت الموافقة

إدخال

VDB-289524

EPSS

0.00211

KEV

لا

النشاطات

منخفض جدًا

المصادر

Might our Artificial Intelligence support you?

Check our Alexa App!