В ядре Linux устранена следующая уязвимость:
netfilter: nf_tables: безоговорочно поднять set->nelems перед вставкой
Если набор полон, новый элемент публикуется, а затем удаляется.
не дожидаясь льготного периода RCU, в то время как считыватель RCU может быть
уже гуляю по нему. Чтобы решить эту проблему, добавьте транзакцию элемента, даже если набор заполнен.
но переключите флаг set_full, чтобы сообщить -ENFILE, чтобы путь прерывания был безопасным
раскручивает набор в предыдущее состояние. Что касается обновлений элементов, уменьшите set->nelems, чтобы восстановить их.
Более простое решение — вызвать синхронизацию_rcu() в пути к ошибке. Однако при большом пакетном добавлении элементов к уже исчерпанному набору
это может привести к заметному замедлению таких пакетов.
Показать оригинальное описание (EN)
In the Linux kernel, the following vulnerability has been resolved: netfilter: nf_tables: unconditionally bump set->nelems before insertion In case that the set is full, a new element gets published then removed without waiting for the RCU grace period, while RCU reader can be walking over it already. To address this issue, add the element transaction even if set is full, but toggle the set_full flag to report -ENFILE so the abort path safely unwinds the set to its previous state. As for element updates, decrement set->nelems to restore it. A simpler fix is to call synchronize_rcu() in the error path. However, with a large batch adding elements to already maxed-out set, this could cause noticeable slowdown of such batches.
Характеристики атаки
Последствия
Строка CVSS v3.1
Уязвимые продукты 4
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
|
4.10
|
6.18.17
|
|
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
|
4.10
|
6.19.7
|
|
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
|
4.10
|
7.0-rc3
|
|
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
|
4.9.33
|
— |