Description
The compat_alloc_user_space functions in include/asm/compat.h files in the
Linux kernel before 2.6.36-rc4-git2 on 64-bit platforms do not properly
allocate the userspace memory required for the 32-bit compatibility layer,
which allows local users to gain privileges by leveraging the ability of
the compat_mc_getsockopt function (aka the MCAST_MSFILTER getsockopt
support) to control a certain length value, related to a "stack pointer
underflow" issue, as exploited in the wild in September 2010.
Ubuntu-Description
Ben Hawkes discovered that the Linux kernel did not correctly validate
memory ranges on 64bit kernels when allocating memory on behalf of 32bit
system calls. On a 64bit system, a local attacker could perform malicious
multicast getsockopt calls to gain root privileges.