Ad

CVE-2026-74256

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

В ядре Linux устранена следующая уязвимость: bpf, sockmap: исправлено целочисленное переполнение при проверке границ bpf_msg_pop_data(). start и len — это u32, поэтому u64 последний = начало + len; оценивает start + len в 32-битной версии и переносит ее перед сохранением в последнюю очередь. Проверка границ if (start >= offset + l || последний > msg->sg.size) вернуть -ЭИНВАЛ; затем можно передать с параметром start/len, выходящим за пределы диапазона, после чего pop цикл завершается с конца списка разброса и вызывает sk_msg_shift_left() put_page() в пустом слоте msg->sg.end: Упс: общая ошибка защиты, возможно, для неканонического адреса. 0xdffffc0000000001:0000 [#1] СМП КАСАН ПТИ KASAN: null-ptr-deref в диапазоне [0x0000000000000008-0x000000000000000f] RIP: 0010:sk_msg_shift_left net/core/filter.c:2957 [встроенный] RIP: 0010:____bpf_msg_pop_data net/core/filter.c:3103 [встроенный] RIP: 0010:bpf_msg_pop_data+0x753/0x1a10 net/core/filter.c:2984 Отслеживание вызова: <ЗАДАЧА> bpf_prog_4cc92c278f4d5d56+0x1b1/0x1e8 bpf_prog_run_pin_on_cpu+0x107/0x320 include/linux/filter.h:746 sk_psock_msg_verdict+0x357/0x7f0 net/core/skmsg.c:934 tcp_bpf_send_verdict net/ipv4/tcp_bpf.c:420 [встроенный] tcp_bpf_sendmsg+0x766/0x1ae0 net/ipv4/tcp_bpf.c:583 __sock_sendmsg+0x153/0x1c0 net/socket.c:802 __sys_sendto+0x326/0x430 net/socket.c:2265 __x64_sys_sendto+0xe3/0x100 net/socket.c:2268 do_syscall_64+0x14c/0x480 запись_SYSCALL_64_after_hwframe+0x77/0x7f </TASK> Расширьте сложение с помощью приведения (u64), чтобы граница оценивалась в 64-битная версия и длина около U32_MAX больше не переносятся ниже msg->sg.size. Пока здесь, измените pop с int на u32.

Он считает байты против длина беззнакового списка разброса и никогда не может быть отрицательной, поэтому знаковый type только приводит к путанице знаков в поп-цикле.

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

In the Linux kernel, the following vulnerability has been resolved: bpf, sockmap: fix integer overflow in bpf_msg_pop_data() bounds check start and len are u32, so u64 last = start + len; evaluates start + len in 32-bit and wraps before storing it in last. The bounds check if (start >= offset + l || last > msg->sg.size) return -EINVAL; can then be passed with an out-of-range start/len, after which the pop loop runs off the end of the scatterlist and sk_msg_shift_left() calls put_page() on the empty msg->sg.end slot: Oops: general protection fault, probably for non-canonical address 0xdffffc0000000001: 0000 [#1] SMP KASAN PTI KASAN: null-ptr-deref in range [0x0000000000000008-0x000000000000000f] RIP: 0010:sk_msg_shift_left net/core/filter.c:2957 [inline] RIP: 0010:____bpf_msg_pop_data net/core/filter.c:3103 [inline] RIP: 0010:bpf_msg_pop_data+0x753/0x1a10 net/core/filter.c:2984 Call Trace: <TASK> bpf_prog_4cc92c278f4d5d56+0x1b1/0x1e8 bpf_prog_run_pin_on_cpu+0x107/0x320 include/linux/filter.h:746 sk_psock_msg_verdict+0x357/0x7f0 net/core/skmsg.c:934 tcp_bpf_send_verdict net/ipv4/tcp_bpf.c:420 [inline] tcp_bpf_sendmsg+0x766/0x1ae0 net/ipv4/tcp_bpf.c:583 __sock_sendmsg+0x153/0x1c0 net/socket.c:802 __sys_sendto+0x326/0x430 net/socket.c:2265 __x64_sys_sendto+0xe3/0x100 net/socket.c:2268 do_syscall_64+0x14c/0x480 entry_SYSCALL_64_after_hwframe+0x77/0x7f </TASK> Widen the addition with a (u64) cast so the bound is evaluated in 64-bit and a len near U32_MAX no longer wraps below msg->sg.size. While here, change pop from int to u32. It counts bytes against the unsigned scatterlist lengths and can never be negative, so the signed type only invites sign-confusion in the pop loop.

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

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

Последствия

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

Строка CVSS v3.1