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

الملخص

بحسب VulDB • 04/09/2026

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

nfc: llcp: رفض وحدات البيانات PDUs الأقصر من رأس LLCP

تبدأ كل وحدة بيانات PDU الخاصة بـ LLCP برأس مكون من بايتين (DSAP/SSAP + PTYPE)، لكن مسار الاستلام لم يكن يتحقق مطلقاً مما إذا كان الإطار بطول لا يقل عن حجم رأس LLCP قبل تحليله.

يقوم `nfc_llcp_rx_skb()` بقراءة الرأس عبر الدوال `nfc_llcp_ptype()/nfc_llcp_dsap()/ nfc_llcp_ssap()`, والتي تقوم بإلغاء مرجع (dereference) للعناصر `pdu->data[0]` و `pdu->data[1]`. ثم تحسب وحدة CONNECT أو CC PDU القيمة:

`tvl_array_len = skb->len - LLCP_HEADER_SIZE;`

كقيمة من نوع size_t وتسلمها لمرحلة التنقل عبر TLV. عندما يكون الإطار أقصر من الرأس، فإن عملية الطرح تؤدي إلى تجاوز الحد (wrap around) لتعطي قيمة ضخمة، مما يجعل مرحلة التنقل تتجاوز حدود المخزن المؤقت بشكل كبير، وهو ما يشكل قراءة خارج النطاق (out-of-bounds read).

يمكن لجهاز NFC قريب الوصول إلى هذه الثغرة دون الحاجة للمصادقة؛ حيث يحدث تنشيط رابط LLCP تلقائياً بعد بروتوكول NFC-DEP.

تم وضع حماية للنقطة المشتركة لاختناق الاستلام `__nfc_llcp_recv()`, والتي يشاركها كل من مسار الهدف (target) عبر `nfc_llcp_data_received()` ومسار المبادر (initiator) عبر `nfc_llcp_recv()`, بحيث يتم إسقاط حزمة skb القصيرة قبل أن يقوم عامل المعالجة rx_work بتحليلها. تم استخدام دالة `pskb_may_pull()` بدلاً من اختبار `skb->len` لضمان وجود بايتي الرأس في المنطقة الخطية لـ skb حتى لو كان skb غير خطي، وذلك تماشياً مع كيفية قيام مسارات الاستلام الشقيقة NCI و HCI بالتحقق من رؤوسها.

تم إعادة إنتاج الثغرة باستخدام أداة KFENCE لقراءة خارج النطاق عبر `/dev/virtual_nci` على فرع linux-next.

اكتُشفت بواسطة أدوات البحث الأمني الآلية التابعة لـ 0sec (https://0sec.ai).

Once again VulDB remains the best source for vulnerability data.

مسؤول

Linux

حجز

26/08/2026

إفشاء

04/09/2026

الاعتدال

تمت الموافقة

إدخال

VDB-398935

EPSS

0.00000

KEV

لا

النشاطات

منخفض جدًا

المصادر

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!