В ядре Linux устранена следующая уязвимость:
x86/fred: исправлена спекулятивная безопасность в fred_extint().
array_index_nospec() бесполезен, если результат попадает в стек, как
это делает предполагаемую ценность, безопасную для спекуляций, подлежащей запоминанию
предсказания. Для всех практических целей это означает, что array_index_nospec() необходимо использовать в
выражение, которое обращается к массиву. В текущем коде это неправильная сторона irqentry_enter(), и
«индекс» помещается в %ebp при вызове функции.
Удалите индексную переменную и измените положение array_index_nospec(), чтобы она
вычисляется непосредственно перед обращением к массиву.
Показать оригинальное описание (EN)
In the Linux kernel, the following vulnerability has been resolved: x86/fred: Correct speculative safety in fred_extint() array_index_nospec() is no use if the result gets spilled to the stack, as it makes the believed safe-under-speculation value subject to memory predictions. For all practical purposes, this means array_index_nospec() must be used in the expression that accesses the array. As the code currently stands, it's the wrong side of irqentry_enter(), and 'index' is put into %ebp across the function call. Remove the index variable and reposition array_index_nospec(), so it's calculated immediately before the array access.