В ядре Linux устранена следующая уязвимость: dmaengine: nbpfaxi: Исправить повреждение памяти в probe() Массив nbpf->chan[] выделен ранее в…
В ядре Linux устранена следующая уязвимость: dmaengine: nbpfaxi: Исправить повреждение памяти в probe() Массив nbpf->chan[] выделен ранее в функции nbpf_probe() и имеет элементы "num_channels". Эти три петли итерируют один элементы дальше, чем должны, и развращают память. Изменения во втором цикле более замешаны. В данном случае мы копирование данных из массива irqbuf[] в массив nbpf->chan[]. Если данные в irqbb[i] - это ошибка IRQ, затем мы пропускаем ее, поэтому итераторы Они не синхронизированы. Я добавил чек, чтобы убедиться, что мы не выйдем за пределы конец массива irqbif[]. Я почти уверен, что этого не может быть, но это Казалось безвредным, чтобы добавить чек. С другой стороны, после того, как цикл закончился, есть проверка, чтобы убедиться что итератор «chan» там, где мы ожидаем. В оригинале код мы пошли один элемент за пределы конца массива, поэтому итератор Не был в правильном месте, и он всегда возвращался - EINVAL. Тем не менее, Теперь он всегда будет в правильном месте. Я удалил чек, так как Мы знаем результат.
Продукт записывает данные за пределами конца или до начала предназначенного буфера.
https://cwe.mitre.org/data/definitions/787.html →Открыть в коллекции CWE →| Продукт | Вендор | Статус |
|---|---|---|
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux-5.10 | Отслеживается | |
| linux-5.10 | Отслеживается | |
| linux-5.15 | Отслеживается | |
| linux-6.1 | Отслеживается | |
| linux-6.1 | Отслеживается | |
| linux-6.1 | Отслеживается | |
| linux-allwinner-5.19 | Отслеживается | |
| linux-aws | Отслеживается | |
| linux-aws | Отслеживается |