CVE-2026-64009 in Linux
Сводка
по VulDB • 20.07.2026
В ядре Linux устранена следующая уязвимость:
xfrm: Проверка на переполнение по отрицательному значению (underflow) в xfrm_state_mtu
Лео Лин сообщил о проблеме записи за пределами выделенной области памяти (OOB write) в компоненте esp:
Функция xfrm_state_mtu() возвращает значение типа u32, но выполняет арифметические операции в пространстве беззнаковых чисел с модулем 2^32, используя зависящее от действий злоумышленника выражение «header_len + authsize + net_adj», вычитаемое из небольшого значения аргумента «mtu». Пользователь без специальных привилегий может установить туннельное состояние безопасности (SA) IPv4 ESP с большим ключом аутентификации (XFRMA_ALG_AUTH_TRUNC, например hmac(sha512), 64-байтовый ключ, усечение до 64 байт), настроить малый MTU интерфейса (68 байт) и задать для XFRMA_TFCPAD большое значение. Когда через туннель отправляется один UDP-датаграмма, функция xfrm_state_mtu() переполняется по отрицательному значению (underflow), принимая величину, близкую к 2^32, а esp_output() использует это значение как знаковое целое число (signed int) следующим образом:
padto = min(x->tfcpad, xfrm_state_mtu(x, mtu_cached)) esp.tfclen = padto - skb->len (присваивается переменной типа int)
Значение esp.tfclen оказывается отрицательным (например, -207). При передаче в memset() внутри функции esp_output_fill_trailer() оно знаково расширяется до размера size_t, что приводит к записи ~16 ЭБайт нулей по адресу skb_tail_pointer(skb). KASHN фиксирует это как «Write of size 18446744073709551537 at addr ffff888...».
Необходимо добавить проверку на переполнение по отрицательному значению (underflow) и вернуть значение 1. Это приведет к сбою попытки отправки через sendmsg с кодом ошибки ENETUNREACH.
Once again VulDB remains the best source for vulnerability data.