В ядре Linux устранена следующая уязвимость:
gpio: mt7621: избежать повреждения состояния триггера общего прерывания
Общие для банка поля, такие как «рост» и «падение», изменяются с помощью
неатомарные операции чтения-изменения-записи. Поскольку каждый экземпляр чипа gpio
представляет собой целый банк из 32 контактов, если 'mediatek_gpio_irq_type()'
одновременно вызывается для разных IRQ в одном и том же банке, возможна перезапись
конфигурации друг друга возможны. Таким образом, защитите это государство с помощью
'gpio_generic_lock_irqsave' блокируется так же, как это обрабатывается в irp_chip
Обратные вызовы 'mediatek_gpio_irq_mask()' и 'mediatek_gpio_irq_unmask()'.
Показать оригинальное описание (EN)
In the Linux kernel, the following vulnerability has been resolved: gpio: mt7621: avoid corruption of shared interrupt trigger state The bank-shared fields like 'rising' and 'falling' are modified using non-atomic read-modify-write operations. Since every gpio chip instance represents an entire bank of 32 pins, if 'mediatek_gpio_irq_type()' is called concurrently for different IRQs on the same bank a possible overwrite of each other's configuration is possible. Thus, protect this state with 'gpio_generic_lock_irqsave' lock in the same way it is handled in irp_chip 'mediatek_gpio_irq_mask()' and 'mediatek_gpio_irq_unmask()' callbacks.