Ad

CVE-2026-80977

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

В ядре Linux устранена следующая уязвимость: net: skbuff: не трогайте общее состояние нулевой копии в skb_tx_error() skb_tx_error() завершает uarg нулевой копии и очищает SKBFL_ALL_ZEROCOPY и skb_zcopy_downgrade_managed() очищаются. SKBFL_MANAGED_FRAG_REFS. Оба живут в skb_shinfo(), который каждый клон общие ресурсы, в то время как вызывающему объекту принадлежит только ссылка, которую он собирается удалить. Через клон он сообщает производителю, что его страницы бесплатны, и удаляется. SKBFL_SHARED_FRAG для skb, который все еще находится в работе.

Open vSwitch достигает этого с помощью не последнего OVS_ACTION_ATTR_RECIRC: clone_execute() отправляет skb_clone() в ovs_dp_process_packet(), в то время как do_execute_actions() продолжает пересылать оригинал, а skb_clone() здесь не приватизирует фраги — skb_orphan_frags() возвращает раньше на SKBFL_DONT_ORPHAN. Промах потока на клоне приводит к удалению маркера. из пакета, который все еще пересылается, и более поздней локальной доставки ESP расшифровывает на месте фрагменты, которыми он не владеет в частном порядке. Пропустите это для клонированного skb.

Ничего не потеряно: skb_release_data() очищается. состояние нулевой копии после последней ссылки на общие данные.

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

In the Linux kernel, the following vulnerability has been resolved: net: skbuff: don't touch shared zerocopy state in skb_tx_error() skb_tx_error() completes the zerocopy uarg and clears SKBFL_ALL_ZEROCOPY, and skb_zcopy_downgrade_managed() clears SKBFL_MANAGED_FRAG_REFS. Both live in skb_shinfo(), which every clone shares, while the caller only owns the reference it is about to drop. Through a clone it tells the producer its pages are free and drops SKBFL_SHARED_FRAG for an skb that is still in flight. Open vSwitch reaches this with a non-last OVS_ACTION_ATTR_RECIRC: clone_execute() sends a skb_clone() into ovs_dp_process_packet() while do_execute_actions() keeps forwarding the original, and skb_clone() does not privatise the frags here -- skb_orphan_frags() returns early on SKBFL_DONT_ORPHAN. A flow miss on the clone then strips the marker from the packet still being forwarded, and a later local ESP delivery decrypts in place over frags it does not own privately. Skip it for a cloned skb. Nothing is lost: skb_release_data() clears the zerocopy state once the last reference to the shared data goes.

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

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

Последствия

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

Строка CVSS v3.1