В ядре Linux устранена следующая уязвимость:
net: openvswitch: отклонять слишком большие вложенные атрибуты действий
Open vSwitch сохраняет сгенерированные действия потока как nlattrs, чьи nla_len
поле — u16. Зафиксируйте a1e64addf3ff ("net: openvswitch: удалить
проверка длины неправильных действий") разрешено общее количество sw_flow_actions
поток превысит 64 КиБ, что допустимо, но также удален последний
охранник, предотвращающий превышение сгенерированного атрибута вложенного действия
U16_МАКС. Таким образом, сгенерированный контейнер слишком большого размера можно закрыть с помощью усеченного
нла_лен.
Более поздний сброс или демонтаж происходит по структурно иному принципу.
поток, чем тот, который был проверен. В частности, негабаритный
вложенное действие CLONE/CT может привести к тому, что последующие байты в сгенерированном
поток интерпретировать как независимые действия. Сохраните более широкое поведение общего потока действий, но сделайте вложенные действия.
закройте отклонить сгенерированные контейнеры, которые не помещаются в nla_len, и верните
ошибка через все звонилки.
Для рекурсивных SAMPLE, CLONE, DEC_TTL и
Строители CHECK_PKT_LEN, обрезают хвосты списка действий, владеющих ресурсами, в обратном порядке
порядок построения перед отбрасыванием неудавшихся оболочек, чтобы ресурсы копировались
в отбракованные хвосты выпускаются до снятия оберток. Большинство неудачных внешних оберток отбрасываются путем усечения action_len после
дочерние ресурсы были освобождены. CHECK_PKT_LEN также обрезает своего родителя.
после того, как ресурсы ветки исчерпаны. SET/TUNNEL закрыть неудачи
известное право собственности на tun_dst напрямую, а SET_TO_MASKED не имеет внешних
права собственности и усекается при закрытии неудачи.
Показать оригинальное описание (EN)
In the Linux kernel, the following vulnerability has been resolved: net: openvswitch: reject oversized nested action attrs Open vSwitch stores generated flow actions as nlattrs, whose nla_len field is u16. Commit a1e64addf3ff ("net: openvswitch: remove misbehaving actions length check") allowed the total sw_flow_actions stream to grow beyond 64 KiB, which is valid, but also removed the last guard preventing a generated nested action attribute from exceeding U16_MAX. An oversized generated container can thus be closed with a truncated nla_len. A later dump or teardown then walks a structurally different stream than the one that was validated. In particular, an oversized nested CLONE/CT action may cause subsequent bytes in the generated stream to be interpreted as independent actions. Keep the larger total-action-stream behavior, but make nested action close reject generated containers that do not fit in nla_len, and return the error through all callers. For recursive SAMPLE, CLONE, DEC_TTL, and CHECK_PKT_LEN builders, trim resource-owning action-list tails in reverse construction order before discarding failed wrappers, so resources copied into the rejected tails are released before the wrappers are removed. Most failed outer wrappers are discarded by truncating actions_len after child resources have been released. CHECK_PKT_LEN also trims its parent after branch resources are gone. SET/TUNNEL close failures unwind their known tun_dst ownership directly, and SET_TO_MASKED has no external ownership and truncates on close failure.
Характеристики атаки
Последствия
Строка CVSS v3.1
Уязвимые продукты 8
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
|
5.15.180
|
5.15.212
|
|
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
|
6.1.132
|
6.1.178
|
|
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
|
6.6.84
|
6.6.145
|
|
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
|
6.12.20
|
6.12.97
|
|
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
|
6.14
|
6.18.40
|
|
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
|
6.14
|
7.1.5
|
|
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
|
6.14
|
7.2-rc4
|
|
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
|
6.13.8
|
— |