In the Linux kernel, the following vulnerability has been resolved:
accel/qaic: Handle DBC deactivation if the owner went away
When a DBC is released, the device sends a QAIC_TRANS_DEACTIVATE_FROM_DEV
transaction to the host over the QAIC_CONTROL MHI channel. QAIC handles
this by calling decode_deactivate() to release the resources allocated for
that DBC. Since that handling is done in the qaic_manage_ioctl() context,
if the user goes away before receiving and handling the deactivation, the
host will be out-of-sync with the DBCs available for use, and the DBC
resources will not be freed unless the device is removed. If another user
loads and requests to activate a network, then the device assigns the same
DBC to that network, QAIC will "indefinitely" wait for dbc->in_use = false,
leading the user process to hang.
As a solution to this, handle QAIC_TRANS_DEACTIVATE_FROM_DEV transactions
that are received after the user has gone away.
A vulnerability in the Linux kernel's QAIC driver allows a denial of service when a user process terminates without properly handling DBC deactivation messages from the device. This causes resource leaks and can indefinitely hang subsequent user processes attempting to activate networks.
ثغرة في برنامج تشغيل QAIC بنظام Linux تحدث عندما ينهي مستخدم عملية دون معالجة رسائل إلغاء تفعيل DBC من الجهاز. يؤدي هذا إلى عدم تحرير موارد DBC وتعطل العمليات اللاحقة التي تحاول تفعيل الشبكات.
A vulnerability in the Linux kernel's QAIC driver allows a denial of service when a user process terminates without properly handling DBC deactivation messages from the device. This causes resource leaks and can indefinitely hang subsequent user processes attempting to activate networks.
Update the Linux kernel to the patched version that implements proper handling of QAIC_TRANS_DEACTIVATE_FROM_DEV transactions independent of user process context. Ensure the QAIC driver properly releases DBC resources even when the owning user process terminates unexpectedly.
قم بتحديث نواة Linux إلى الإصدار المصحح الذي ينفذ معالجة صحيحة لمعاملات QAIC_TRANS_DEACTIVATE_FROM_DEV بشكل مستقل عن سياق عملية المستخدم. تأكد من أن برنامج تشغيل QAIC يحرر موارد DBC بشكل صحيح حتى عند إنهاء عملية المستخدم المالكة بشكل غير متوقع.