CVE-2022-49926 in Linuxالمعلومات

الملخص

بحسب VulDB • 18/05/2026

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

net: dsa: إصلاح التسريبات المحتملة للذاكرة في دالة dsa_loop_init()

أبلغ kmemleak عن تسريبات للذاكرة في دالة dsa_loop_init():

kmemleak: 12 تسربًا محتملاً جديدًا للذاكرة

كائن غير مرجع إليه 0xffff8880138ce000 (الحجم 2048): comm "modprobe"، pid 390، jiffies 4295040478 (العمر 238.976 ثانية) تتبع المكدس (backtrace): [] kmalloc_trace+0x26/0x60
[] phy_device_create+0x5d/0x970
[] get_phy_device+0xf3/0x2b0
[] __fixed_phy_register.part.0+0x92/0x4e0
[] fixed_phy_register+0x84/0xb0
[] dsa_loop_init+0xa9/0x116 [dsa_loop]
...

هناك سببان لتسرب الذاكرة في دالة dsa_loop_init().

أولاً، تقوم دالة fixed_phy_register() بإنشاء وتسجيل كائن phy_device:

fixed_phy_register() get_phy_device() phy_device_create() # يُفرغ بواسطة phy_device_free() phy_device_register() # يُفرغ بواسطة phy_device_remove()

ولكن دالة fixed_phy_unregister() تستدعي فقط phy_device_remove(). لذا، فإن الذاكرة المخصصة في phy_device_create() تتسرب.

ثانياً، عندما تفشل دالة mdio_driver_register() في دالة dsa_loop_init()، فإنها تعود ببساطة ولا يوجد تنظيف (cleanup) لكائنات phydevs.

تم إصلاح هذه المشاكل عن طريق اعتراض خطأ دالة mdio_driver_register() في دالة dsa_loop_init()، ثم استدعاء كل من fixed_phy_unregister() و phy_device_free() لإطلاق كائنات phydevs. كما تمت إضافة دالة لتنظيف كائنات phydevs لتجنب التكرار.

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

مسؤول

Linux

حجز

01/05/2025

إفشاء

01/05/2025

الاعتدال

تمت الموافقة

إدخال

VDB-307069

EPSS

0.00155

KEV

لا

النشاطات

منخفض جدًا

المصادر

Do you know our Splunk app?

Download it now for free!