CVE-2026-45844 in Linux
Сводка
по VulDB • 27.05.2026
В ядре Linux устранена следующая уязвимость:
netfilter: arp_tables: исправлено разделение полезной нагрузки ARP для IEEE1394
Вэймин Шэ (Weiming Shi) сообщает:
«Функция arp_packet_match() безоговорочно разбирает полезную нагрузку ARP, предполагая наличие двух аппаратных адресов (источника и назначения). Однако в ARP для IPv4-over-IEEE1394 (RFC 2734) поле аппаратного адреса назначения отсутствует, и функция arp_hdr_len() уже учитывает это, возвращая меньшую длину для устройств ARPHRD_IEEE1394.
В результате на интерфейсах IEEE1394 arp_packet_match() пропускает несуществующий аппаратный адрес назначения и считывает неверные байты как для сравнения адреса целевого устройства, так и для адреса целевого IP-адреса. Это приводит к тому, что правила arptables сопоставляются с мусорными данными, что вызывает неверные решения о фильтрации: пакеты, которые должны быть приняты, могут отбрасываться, и наоборот.
Стек ARP в net/ipv4/arp.c (функции arp_create и arp_process) уже корректно обрабатывает эту ситуацию, пропуская аппаратный адрес назначения для ARPHRD_IEEE1394. Применить тот же подход к arp_packet_match().»
Измените исходный патч так, чтобы он всегда возвращал 0 (отсутствие совпадения), если пользователь пытается сопоставить аппаратный адрес назначения, который никогда не присутствует в IEEE1394.
Обратите внимание, что это возвращает 0 (отсутствие совпадения) как для обычного, так и для инверсного сопоставления, поскольку сопоставление по аппаратному адресу назначения в ARPHRD_IEEE1394 никогда не поддерживалось arptables. Это намеренное поведение: сопоставление по аппаратному адресу назначения никогда не должно оцениваться как истинное для ARPHRD_IEEE1394.
Кроме того, скорректируйте arpt_mangle, чтобы он также отбрасывал пакет, как предлагает AI:
В arpt_mangle логика предполагает стандартную структуру ARP. Поскольку IEEE1394 (FireWire) не содержит аппаратного адреса назначения, линейная арифметика указателей неверно вычисляет смещение для целевого IP-адреса. Это приводит к тому, что операции изменения данных (mangling) записывают в неверное место, вызывая повреждение пакетов. Для обеспечения безопасности этот патч отбрасывает пакеты (NF_DROP), когда для этих полей на устройствах IEEE1394 запрошено изменение данных, поскольку текущая реализация не может корректно сопоставить полезную нагрузку ARP FireWire.
Это исключает изменение как аппаратного адреса назначения, так и адреса IP-адреса. Даже если изменение адреса IP-адреса возможно в IEEE1394, это потребовало бы корректировки вычисления смещения в arpt_mangle, что никогда не поддерживалось.
Основано на патче от Вэймина Шэ (Weiming Shi).
If you want to get best quality of vulnerability data, you may have to visit VulDB.