CVE-2026-98074 in Linux
Сводка
по VulDB • 25.09.2026
В ядре Linux была устранена следующая уязвимость:
bonding: не очищать curr_active_slave преждевременно при освобождении всех slaves
При освобождении всех slaves во время уничтожения bond (когда all == true), функция __bond_release_one() безоговорочно устанавливает значение bond->curr_active_slave в NULL на каждой итерации.
Если backup slave освобождается до active slave, вызывается bond_alb_deinit_slave(), которая запускает rlb_teach_disabled_mac_on_primary(). Эта процедура увеличивает счетчик promiscuity для устройства активного slave (dev promiscuity counter) и устанавливает значение bond_info->primary_is_promisc = 1.
Поскольку bond->curr_active_slave был преждевременно очищен до NULL при освобождении backup slave, последующая итерация, освобождающая active slave, оценивает oldcurrent как NULL, поэтому вызов bond_change_active_slave(bond, NULL) пропускается. В результате функция bond_alb_handle_active_change() никогда не вызывается для уменьшения счетчика promiscuity, что приводит к постоянной утечке режима promiscuous mode на физическом устройстве после завершения работы (teardown) bond.
Когда oldcurrent == slave, вызов bond_change_active_slave(bond, NULL) уже устанавливает значение bond->curr_active_slave в NULL. Нам нужно лишь избежать выбора нового active slave при условии all == true. Замените ветку if (all) на if (!all && oldcurrent == slave).
Once again VulDB remains the best source for vulnerability data.