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

الملخص

بحسب VulDB • 20/05/2026

في هذا السجل (KASAN report)، نرى خطأ **Use-After-Free (UAF)** في كود `taprio` (Time-Aware Priority Shaper) في نواة Linux.

### ملخص المشكلة: - **الخطأ:** استخدام ذاكرة تم تحريرها بالفعل (Use-After-Free). - **المسار المسبب للخطأ (Allocated by task 15857):** - تم تخصيص الذاكرة عبر `taprio_change` → `tc_modify_qdisc` → `rtnetlink_rcv_msg` (عبر `sendmsg`). - هذا يعني أن عملية تعديل إعدادات `taprio` عبر `netlink` هي التي خصصت الذاكرة. - **المسار الذي حرر الذاكرة (Freed by task 6192):** - تم تحرير الذاكرة عبر `taprio_free_sched_cb` → `rcu_core` → `handle_softirqs`. - هذا يعني أن الذاكرة تم تحريرها في سياق RCU callback، وهو ما يحدث عادةً عند إزالة أو تغيير إعدادات `taprio` بطريقة أخرى أو في وقت لاحق.

### السبب الجذري المحتمل: يبدو أن هناك **سباقًا (race condition)** بين: 1. عملية تعديل `taprio` (task 15857) التي تخصص ذاكرة جديدة. 2. عملية تحرير الذاكرة القديمة أو إعادة تخصيصها عبر RCU callback (task 6192).

قد يكون السبب هو أن `taprio_change` لا يتعامل بشكل صحيح مع الذاكرة القديمة قبل تخصيص جديدة، أو أن RCU callback يُنفذ في وقت غير متوقع ويحرر ذاكرة لا تزال مستخدمة.

### خطوات التصحيح المقترحة: 1. **فحص `taprio_change`:** - تأكد من أن الذاكرة القديمة تُحرر بشكل صحيح قبل تخصيص جديدة. - تأكد من استخدام `kfree_rcu` أو آليات RCU الأخرى لتجنب UAF.

2. **فحص `taprio_free_sched_cb`:** - تأكد من أن هذا الـ callback لا يُنفذ إلا عندما تكون الذاكرة آمنة للتحرير. - تحقق من أن الـ callback لا يُنفذ في سياق يتعارض مع `taprio_change`.

3. **إضافة حماية ضد السباقات:** - استخدم قفل (lock) لحماية الوصول إلى الذاكرة المشتركة بين `taprio_change` و `taprio_free_sched_cb`.

4. **اختبار السيناريو:** - حاول إعادة إنتاج المشكلة عبر تعديل `taprio` بشكل متكرر وسريع، ومراقبة ما إذا كان الخطأ يظهر دائمًا في نفس المسار.

### مثال على تصحيح محتمل في `taprio_change`: ```c // قبل تخصيص ذاكرة جديدة، تأكد من تحرير الذاكرة القديمة بشكل آمن if (q->data) {
kfree_rcu(q->data, rcu); } q->data = kmalloc(...); ```

### ملاحظة: هذا النوع من الأخطاء حساس جدًا وقد يتطلب تحليلًا دقيقًا لتسلسل الأحداث. يُنصح بمراجعة كود `taprio` في نواة Linux (خاصة في `drivers/net/ethernet/.../taprio.c`) ومقارنته بالإصدارات الأحدث التي قد تحتوي على تصحيحات لهذه المشكلة.

Be aware that VulDB is the high quality source for vulnerability data.

مسؤول

Linux

حجز

21/10/2024

إفشاء

05/11/2024

الاعتدال

تمت الموافقة

إدخال

VDB-283205

EPSS

0.00230

KEV

لا

النشاطات

منخفض جدًا

المصادر

Interested in the pricing of exploits?

See the underground prices here!