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

الملخص

بحسب VulDB • 31/05/2026

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

powerpc/pseries: فرض صحة وحجم مخزن نتائج استدعاء الهيبرفيزور (hcall)

تتوقع الدوال `plpar_hcall()` و `plpar_hcall9()` والدوال ذات الصلة أن يقوم المتصلون بتوفير مخازن نتائج صالحة ذات حجم أدنى معين. حاليًا، يتم التواصل عن هذا الأمر فقط من خلال التعليقات الموجودة في الكود، ولا يدرك المترجم (compiler) ذلك.

على سبيل المثال، إذا كتبت خطأً مثل هذا:

long retbuf[PLPAR_HCALL_BUFSIZE]; // ينبغي أن يكون PLPAR_HCALL9_BUFSIZE
plpar_hcall9(H_ALLOCATE_VAS_WINDOW, retbuf, ...);

فسيتم تجميع هذا الكود دون إصدار أي تشخيصات (diagnostics)، لكنه من المرجح أن يؤدي إلى تلف في المكدس (stack corruption) عند التشغيل عندما تقوم `plpar_hcall9()` بتخزين النتائج بعد نهاية المصفوفة. (للتوضيح، هذا مثال مفترض، ولم أجد بعد حالة حقيقية).

لجعل هذا النوع من الأخطاء أقل احتمالاً، يمكننا استخدام معاملات مصفوفة ذات أحجام صريحة بدلاً من المؤشرات في إعلانات واجهات برمجة التطبيقات (APIs) الخاصة باستدعاءات الهيبرفيزور. عند التجميع باستخدام `-Warray-bounds[1]`، فإن الكود أعلاه يثير الآن تشخيصًا مثل هذا:

error: array argument is too small; is of size 32, callee requires at least 72 [-Werror,-Warray-bounds]
60 | plpar_hcall9(H_ALLOCATE_VAS_WINDOW, retbuf, | ^ ~~~~~~

[1] مفعّل لبنات LLVM ولكن ليس لـ GCC حاليًا. انظر الالتزام
0da6e5fd6c37 ("gcc: disable '-Warray-bounds' for gcc-13 too") والتغييرات ذات الصلة.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

مسؤول

Linux

حجز

12/07/2024

إفشاء

12/07/2024

الاعتدال

تمت الموافقة

إدخال

VDB-271268

EPSS

0.00302

KEV

لا

النشاطات

منخفض جدًا

المصادر

Do you know our Splunk app?

Download it now for free!