В ядре Linux устранена следующая уязвимость:
Rapidio/tsi721: предотвратить неправильное разыменование в tsi721_db_dpc()
С помощью цикла list_for_each(), если мы не находим искомый элемент
в списке, то цикл завершается с помощью итератора, который в
этот цикл, указывающий на недействительную память. Этот код использует переменную «found», чтобы определить, нашли ли мы
дверной звонок, который мы ищем или нет. Однако проблема в том, что «найденный»
переменная должна быть установлена в значение false в начале каждой итерации,
иначе после первого правильного звонка в дверь все помечается как
нашел.
Сбросьте значение «найдено» на false в начале итерации и переместите переменная внутри цикла.
Показать оригинальное описание (EN)
In the Linux kernel, the following vulnerability has been resolved: rapidio/tsi721: prevent a bad dereference in tsi721_db_dpc() With a list_for_each() loop, if we don't find the item we are looking for in the list, then the loop exits with the iterator, which is "dbell" in this loop, pointing to invalid memory. This code uses the "found" variable to determine if we have found the doorbell we are looking for or not. However, the problem that the "found" variable needs to be set to false at the start of each iteration, otherwise after the first correct doorbell, then everything is marked as found. Reset the "found" to false at the start of the iteration and move the variable inside the loop.
Характеристики атаки
Последствия
Строка CVSS v3.1