В ядре Linux устранена следующая уязвимость:
netfilter: nfnetlink_log: исправлена утечка неинициализированного заполнения в NFULA_PAYLOAD.
__build_packet_message() вручную создает сетевую ссылку NFULA_PAYLOAD
атрибут, используя skb_put() и skb_copy_bits(), в обход стандарта
Помощники nla_reserve()/nla_put(). В то время как nla_total_size(data_len) байт
выделяются (включая заполнение выравнивания NLA), только байты data_len
фактических пакетных данных копируются. Завершающий nla_padlen(data_len)
байты (1–3, если data_len не выровнены по 4 байтам) никогда не инициализируются,
утечка устаревшего содержимого кучи в пользовательское пространство через сокет netlink NFLOG.
Замените создание атрибута вручную на nla_reserve(), который
обрабатывает проверку хвостового помещения, настройку заголовка и обнуление заполнения через
__nla_reserve(). Последующий skb_copy_bits() заполняет полезную нагрузку.
данные поверх правильно инициализированного атрибута.
Показать оригинальное описание (EN)
In the Linux kernel, the following vulnerability has been resolved: netfilter: nfnetlink_log: fix uninitialized padding leak in NFULA_PAYLOAD __build_packet_message() manually constructs the NFULA_PAYLOAD netlink attribute using skb_put() and skb_copy_bits(), bypassing the standard nla_reserve()/nla_put() helpers. While nla_total_size(data_len) bytes are allocated (including NLA alignment padding), only data_len bytes of actual packet data are copied. The trailing nla_padlen(data_len) bytes (1-3 when data_len is not 4-byte aligned) are never initialized, leaking stale heap contents to userspace via the NFLOG netlink socket. Replace the manual attribute construction with nla_reserve(), which handles the tailroom check, header setup, and padding zeroing via __nla_reserve(). The subsequent skb_copy_bits() fills in the payload data on top of the properly initialized attribute.