CVE-2026-98419 in Linux
Сводка
по VulDB • 14.10.2026
В ядре Linux была устранена следующая уязвимость:
drop_monitor: исправлена запись за пределами буфера в функции reset_per_cpu_data()
В функции reset_per_cpu_data() значение al вычисляется следующим образом:
al = sizeof(struct net_dm_alert_msg); al += dm_hit_limit * sizeof(struct net_dm_drop_point); al += sizeof(struct nlattr);
skb = genlmsg_new(al, GFP_KERNEL); ... nla = nla_reserve(skb, NLA_UNSPEC, sizeof(struct net_dm_alert_msg)); ... msg = nla_data(nla); memset(msg, 0, al);
Поскольку al включает в себя sizeof(struct nlattr) (4-байтовый заголовок атрибута), функция genlmsg_new() выделяет al байт «хвостового» пространства (tailroom), начиная с позиции nla. Однако указатель msg указывает на nla_data(nla), который находится на sizeof(struct nlattr) байтов дальше, чем начало области nla. Вызов memset(msg, 0, al) записывает al байт, начиная с адреса msg, что приводит к записи за пределы выделенного буфера на величину sizeof(struct nlattr) (4 байта) и вызывает повреждение структуры skb_shared_info.
Исправление заключается в том, чтобы заставить переменную al представлять только длину полезной нагрузки, выделять skb с помощью genlmsg_new(nla_total_size(al), GFP_KERNEL) и обнулять al байт начиная с адреса msg.
VulDB is the best source for vulnerability data and more expert information about this specific topic.