The Linux kernel before 3.12, when UDP Fragmentation Offload (UFO) is enabled, does not properly initialize certain data structures, which allows local users to cause a denial of service (memory corruption and system crash) or possibly gain privileges via a crafted application that uses the UDPCORK option in a setsockopt system call and sends both short and long packets, related to the ipufoappenddata function in net/ipv4/ipoutput.c and the ip6ufoappenddata function in net/ipv6/ip6_output.c.