В ядре Linux устранена следующая уязвимость:
net: Bridge: остановить быстрый выход после удаления группы портов
br_multicast_leave_group() перебирает mp->порты с pp = &p->следующий в
его путь быстрого ухода. После того, как br_multicast_del_pg() удалит p,
продолжение цикла продвигает pp через удаленную запись. Если включена многоадресная рассылка, мост может поддерживать несколько портов.
группы для одного и того же порта и группы с разными исходными MAC-адресами
адреса.
Как только многоадресная рассылка отключена,
br_port_group_equal() сопоставляет эти записи только по порту. Быстрый отпуск
затем можно удалить одну запись и продолжить с устаревшего указателя next,
оставив mp->ports указывающим на удаленную группу портов. Для быстрого выхода необходимо удалить только одну подходящую группу портов.
Перерыв после
br_multicast_del_pg(), чтобы цикл останавливался перед разыменованием
удалена запись.
Показать оригинальное описание (EN)
In the Linux kernel, the following vulnerability has been resolved: net: bridge: stop fast-leave after deleting a port group br_multicast_leave_group() iterates mp->ports with pp = &p->next in its fast-leave path. After br_multicast_del_pg() removes p, continuing the loop advances pp through the deleted entry. If multicast-to-unicast was enabled, the bridge can hold multiple port groups for the same port and group with different source MAC addresses. Once multicast-to-unicast is disabled, br_port_group_equal() matches those entries by port only. A fast leave can then delete one entry and continue from its stale next pointer, leaving mp->ports pointing at a deleted port group. Fast leave only needs to remove one matching port group. Break after br_multicast_del_pg() so the loop stops before dereferencing the removed entry.
Характеристики атаки
Последствия
Строка CVSS v3.1