Ad

CVE-2026-74582

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

В ядре Linux устранена следующая уязвимость: пакет: используйте согласованный hard_header_len в путях отправки без кольца package_snd() читает dev->hard_header_len несколько раз при выделении и строительство СКБ. Реконфигурация устройства может изменить это значение. одновременно, например, путем изменения типа связывающего устройства. Для SOCK_RAW package_snd() может сохранить большее значение в резерве и позже. выделите запас, используя меньшее значение.

Перемещение skb->data обратно по резерву затем помещает его перед skb->head, и следующая копия из пользовательского пространства может попытайтесь выполнить запись за пределами допустимого диапазона. У package_sendmsg_spkt() та же проблема, поскольку он вычисляет резервирование и смещение заголовка из отдельных операций чтения перед удалением RCU блокировка чтения для выделения skb. Добавьте LL_RESERVED_SPACE_EX() для вызывающих абонентов, которые уже сохранили длину заголовка.

Прочитайте hard_header_len один раз в package_snd() и используйте его для распределения и строительство. В package_sendmsg_spkt() сохраните значение времени выделения. через повторную попытку поиска устройства. Отдельная проблема согласованности SOCK_DGRAM между hard_header_len и header_ops->create здесь не рассматривается.

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

In the Linux kernel, the following vulnerability has been resolved: packet: use consistent hard_header_len in non-ring send paths packet_snd() reads dev->hard_header_len multiple times while allocating and constructing an skb. Device reconfiguration can change this value concurrently, for example through bonding device type changes. For SOCK_RAW, packet_snd() can save a larger value in reserve and later allocate headroom using a smaller value. Moving skb->data back by reserve then places it before skb->head, and the following copy from userspace can attempt an out-of-bounds write. packet_sendmsg_spkt() has the same issue because it calculates its reservation and header offset from separate reads before dropping the RCU read lock to allocate the skb. Add LL_RESERVED_SPACE_EX() for callers that already saved a header length. Read hard_header_len once in packet_snd() and use it for allocation and construction. In packet_sendmsg_spkt(), preserve the allocation-time value through the device lookup retry. The separate SOCK_DGRAM consistency problem between hard_header_len and header_ops->create is not addressed here.

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

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

Последствия

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

Строка CVSS v3.1