A flaw was found in the Linux kernel networking stack in which an attacker can create crafted fragmented IPV6 packets that require reassembly. The network header offset in the reassembly process is assumed to be located in an offset prior to the fragment in memory.
In some situations during fragment reassembly the header may be reconstructed in the assumed location and overwrite kernel memory with another header.
The flaw involves an issue that all network headers before fragment header are pulled. Normal ipv6 reassembly will drop the skb when errors occur further down the line.
The netfilter reassembly code neglects to do this correctly and instead passed the original fragment along. That was also fine back when netfilter ipv6 defrag worked with cloned fragments, as the original, pristine fragment was passed on.
An attacker on the network could use this flaw to induce kernel memory corruption on the system, leading to a crash. Due to the nature of the flaw, privilege escalation cannot be fully ruled out, although we believe it is unlikely.
Created kernel tracking bugs for this issue:
Affects: fedora-all [bug 1400905]