CVE-2026-23393

HIGH CVSS 3.1: 7,8 EPSS 0.02%
Обновлено 2 апреля 2026
Linux
Параметр Значение
CVSS 7,8 (HIGH)
Поставщик Linux
Публичный эксплойт Нет

В ядре Linux устранена следующая уязвимость: мост: cfm: исправлено состояние гонки при удалении Peer_mep. При удалении одноранговой MEP вызывается метод cancel_delayed_work_sync(). на ccm_rx_dwork перед освобождением. Однако br_cfm_frame_rx() выполняется в контекст softirq под rcu_read_lock (без RTNL) и может перепланировать ccm_rx_dwork через ccm_rx_timer_start() между cancel_delayed_work_sync() возвращение и вызов kfree_rcu().

Ниже приведен простой сценарий гонки: процессор0 процессор1 mep_delete_implementation() cancel_delayed_work_sync(ccm_rx_dwork); br_cfm_frame_rx() //peer_mep все еще в списке если (peer_mep->ccm_defect) ccm_rx_timer_start() очередь_delayed_work (ccm_rx_dwork) hlist_del_rcu(&peer_mep->head); kfree_rcu (peer_mep, rcu); ccm_rx_work_expired() // при освобождении Peer_mep Чтобы предотвратить это, cancel_delayed_work_sync() заменяется на Disable_delayed_work_sync() в обоих путях удаления одноранговой MEP, поэтому что последующие вызовыqueue_delayed_work() из br_cfm_frame_rx() молча отвергаются. Помощник cc_peer_disable() сохраняет cancel_delayed_work_sync(). потому что он также используется для пути переключения включения/выключения CC, где работа должна оставаться перепланируемой.

Показать оригинальное описание (EN)

In the Linux kernel, the following vulnerability has been resolved: bridge: cfm: Fix race condition in peer_mep deletion When a peer MEP is being deleted, cancel_delayed_work_sync() is called on ccm_rx_dwork before freeing. However, br_cfm_frame_rx() runs in softirq context under rcu_read_lock (without RTNL) and can re-schedule ccm_rx_dwork via ccm_rx_timer_start() between cancel_delayed_work_sync() returning and kfree_rcu() being called. The following is a simple race scenario: cpu0 cpu1 mep_delete_implementation() cancel_delayed_work_sync(ccm_rx_dwork); br_cfm_frame_rx() // peer_mep still in hlist if (peer_mep->ccm_defect) ccm_rx_timer_start() queue_delayed_work(ccm_rx_dwork) hlist_del_rcu(&peer_mep->head); kfree_rcu(peer_mep, rcu); ccm_rx_work_expired() // on freed peer_mep To prevent this, cancel_delayed_work_sync() is replaced with disable_delayed_work_sync() in both peer MEP deletion paths, so that subsequent queue_delayed_work() calls from br_cfm_frame_rx() are silently rejected. The cc_peer_disable() helper retains cancel_delayed_work_sync() because it is also used for the CC enable/disable toggle path where the work must remain re-schedulable.

Характеристики атаки

Способ атаки
Локальный
Нужен локальный доступ
Сложность
Низкая
Легко эксплуатировать
Нужны права
Низкие
Нужны базовые права
Участие пользователя
Не требуется
Не нужно действие пользователя

Последствия

Конфиденциальность
Высокое
Полная утечка данных
Целостность
Высокое
Полная модификация данных
Доступность
Высокое
Полный отказ в обслуживании

Строка CVSS v3.1