CVE-2026-52943
net: skbuff: исправление отсутствующей ссылки zerocopy в помощниках pskb_carve
- Опубликовано
- 24 июн. 2026 г.
- Обновлено
- 8 сент. 2026 г.
- Назначение CNA
- Linux
- Наблюдены доказательства
- 17 авг. 2026 г.
Первичный CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HНизкий · следующие 30 дней
- Процентиль
- 15,1 %
- Дата модели
- 21 сент. 2026 г.
EPSS – это статистическая оценка, а не достоверность или мера воздействия. Объедините это с CVSS, статусом KEV, воздействием и вашей средой.
Резюме
В ядре Linux устранена следующая уязвимость: net: skbuff: исправлена отсутствующая ссылка zerocopy в помощниках pskb_carve Функции pskb_carve_inside_header() и pskb_carve_inside_nonlinear() обе копируют старый заголовок skb_shared_info в новый буфер через memcpy(), который включает указатель destructor_arg (uarg) для skb с MSG_ZEROCOPY. Ни одна из функций не вызывает net_zcopy_get() для нового shinfo, что создаёт неучтённого держателя: каждый skb_shared_info с установленным destructor_arg вызовет skb_zcopy_clear() один раз при освобождении, но соответствующий net_zcopy_get() никогда не вызывался для новой копии. Повторные вызовы преждевременно обнуляют uarg->refcnt, освобождая ubuf_info_msgzc, в то время как TX skb всё ещё содержат живые указатели destructor_arg. KASAN сообщает об использовании после освобождения освобождённого ubuf_info_msgzc: BUG: KASAN: slab-use-after-free in skb_release_data+0x77b/0x810 Read of size 8 at addr ffff88801574d3e8 by task poc/220 Call Trace: skb_release_data+0x77b/0x810 kfree_skb_list_reason+0x13e/0x610 skb_release_data+0x4cd/0x810 sk_skb_reason_drop+0xf3/0x340 skb_queue_purge_reason+0x282/0x440 rds_tcp_inc_free+0x1e/0x30 rds_recvmsg+0x354/0x1780 __sys_recvmsg+0xdf/0x180 Allocated by task 219: msg_zerocopy_realloc+0x157/0x7b0 tcp_sendmsg_locked+0x2892/0x3ba0 Freed by task 219: ip_recv_error+0x74a/0xb10 tcp_recvmsg+0x475/0x530 Skb, выполняющий поздний доступ, всё ещё ссылался на тот же uarg через shinfo->destructor_arg, скопированный pskb_carve_inside_nonlinear() без увеличения счётчика ссылок. Было подтверждено, что уязвимость надёжно эксплуатируется: рабочий proof-of-concept достигает полного повышения привилегий до root от непривилегированного локального пользователя при стандартной конфигурации ядра. Исправление следует шаблону pskb_expand_head(), который имеет ту же структуру memcpy/cloned. Для pskb_carve_inside_header() вызов net_zcopy_get() размещается после успешного выполнения skb_orphan_frags(), поэтому путь обработки ошибок при осиротении не требует очистки. Для pskb_carve_inside_nonlinear() вызов net_zcopy_get() размещается после всех точек отказа и непосредственно перед skb_release_data(), поэтому ни один путь обработки ошибок не требует очистки — это более точно соответствует pskb_expand_head() и позволяет избежать необходимости в балансирующем net_zcopy_put().
Источники
1Ответственное использование
Используйте информацию об уязвимостях только в тех системах, которыми вы владеете или имеете право тестировать. Kitploit ссылается на метаданные общедоступных исследований и не хранит код эксплойта или вредоносные полезные данные.