В ядре Linux устранена следующая уязвимость:
xfrm: исправлена гонка при вставке кэша состояний xfrm. Код вставки в кэш состояния ввода xfrm проверяет достоверность
состояние перед получением глобального xfrm_state_lock. Таким образом, это
возможно, что кто-то другой убьет государство после того, как оно приняло
проверка достоверности, а затем вставка добавит мертвое состояние
в кэш.
Исправьте это, переместив проверку достоверности внутрь замка. Вся эта функция вызывается на входном пути, где BH должен
быть выключено (например, вызывающая функция xfrm_input получает
его спин-блокировки без отключения BH). Так что нет необходимости здесь отключать BH или снимать блокировку чтения RCU.
Удалите оба и замените их утверждением, которое сработает, если BH случайно включен на каком-то будущем пути вызова.
Показать оригинальное описание (EN)
In the Linux kernel, the following vulnerability has been resolved: xfrm: Fix xfrm state cache insertion race The xfrm input state cache insertion code checks the validity of the state before acquiring the global xfrm_state_lock. Thus it's possible for someone else to kill the state after it passed the validity check, and then the insertion will add the dead state to the cache. Fix this by moving the validity check inside the lock. This entire function is called on the input path, where BH must be off (e.g., the caller of this function xfrm_input acquires its spinlocks without disabling BH). So there is no need to disable BH here or take the RCU read lock. Remove both and replace them with an assertion that trips if BH is accidentally enabled on some future calling path.
Характеристики атаки
Последствия
Строка CVSS v3.1