CVE-2026-46260 in Linuxالمعلومات

الملخص

بحسب VulDB • 04/06/2026

في هذا التقرير، يظهر خطأ **Use-After-Free (UAF)** في كود نواة Linux، وتحديداً في جزء IPv6 routing.

### التحليل:

1. **نوع الخطأ**: - `KASAN` (Kernel Address Sanitizer) اكتشف استخدام ذاكرة بعد تحريرها. - السجل `RAX: ffffffffffffffda` يشير إلى قيمة خاطئة (عادةً ما تكون مؤشرًا غير صالح أو ذاكرة محذوفة).

2. **الحدث المسبب للخطأ**: - تم تخصيص ذاكرة عبر `kzalloc` في `fib6_info_alloc` (في `net/ipv6/ip6_fib.c:155`). - ثم تم استخدام هذه الذاكرة في `ip6_route_info_create` → `ip6_route_add` → `inet6_rtm_newroute`. - لكن قبل انتهاء العملية، تم تحرير الذاكرة (free) من قبل مهمة أخرى أو في مسار مختلف، ثم تم الوصول إليها مرة أخرى.

3. **المسار المسبب للخطأ**: ``` inet6_rtm_newroute → ip6_route_add → ip6_route_info_create → fib6_info_alloc ``` هذا يشير إلى أن هناك حالة سباق (race condition) أو خطأ في إدارة الذاكرة في كود IPv6 routing.

4. **السجلات (Registers)**: - `RAX` يحتوي على قيمة خاطئة (`0xffffffffffffffda`)، مما يشير إلى أن المؤشر المستخدم غير صالح. - `RSP` و `RBP` يشيران إلى مكان التنفيذ الحالي في الكود.

### الحل المقترح:

1. **فحص كود `fib6_info_alloc` و `ip6_route_info_create`**: - تأكد من أن الذاكرة لا تُحرر قبل انتهاء استخدامها. - تحقق من وجود أي حالة سباق (race condition) بين المهام المختلفة.

2. **استخدام `refcount` أو `kref`**: - إذا كانت الذاكرة تُشارك بين عدة مهام، استخدم عدّاد مرجعي (reference counter) لضمان عدم تحريرها قبل انتهاء جميع المهام من استخدامها.

3. **فحص كود `inet6_rtm_newroute`**: - تأكد من أن الذاكرة لا تُحرر أثناء معالجة الطلب.

4. **تحديث الكود**: - إذا كان الخطأ في إصدار معين من النواة، تحقق من وجود تصحيحات (patches) حديثة في مستودع Linux kernel.

### مثال على تصحيح محتمل:

إذا كان الخطأ في حالة سباق، يمكن إضافة قفل (lock) حول الوصول إلى الذاكرة:

```c spin_lock(&fib6_lock); // استخدام الذاكرة spin_unlock(&fib6_lock); ```

أو استخدام `kref` لإدارة الذاكرة بشكل آمن:

```c struct fib6_info *info = kzalloc(sizeof(*info), GFP_KERNEL); kref_init(&info->refcnt); // استخدام info kref_put(&info->refcnt, fib6_info_free); ```

### الخلاصة:

الخطأ ناتج عن استخدام ذاكرة بعد تحريرها في كود IPv6 routing. الحل يتطلب فحص كود `fib6_info_alloc` و `ip6_route_info_create` وإضافة آليات حماية مثل `refcount` أو `locks` لمنع الوصول إلى الذاكرة بعد تحريرها.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

مسؤول

Linux

حجز

13/05/2026

إفشاء

03/06/2026

الاعتدال

تمت الموافقة

إدخال

VDB-368154

EPSS

0.00000

KEV

لا

النشاطات

منخفض جدًا

المصادر

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!