<?xml version="1.0"?>
<?xml-stylesheet href="../fma_report_en.xslt" type="text/xsl" ?>

<advisory xml:space="preserve">
	<meta>
		<description>IrfanView 4.27 JPEG 2000 Multiple Vulnerabilities</description>
		<keywords>fuzzing, security, blackbox, tests, i_view32.exe, DoS, JPEG2000, JP2</keywords>
	</meta>

	<title>IrfanView 4.27 JPEG 2000 Multiple Vulnerabilities</title>
	<id>FMA-2010-004</id>
	
	<application>
		<name>IrfanView</name>
		<version>4.27</version>
		<url>http://www.irfanview.com</url>
		<files>
			<file>
				<name>i_view32.exe</name>
				<version>4.27</version>
				<md5>58150C1AC5B86C1A6B5E15FE1C3A870D</md5>
			</file>
			<file>
				<name>JPEG2000.dll</name>
				<version>4.2.6.0</version>
				<md5>50B3DCD4F32C9939722A905A06AD371A</md5>
			</file>
		</files>		
		<verified>
			<os>
				<name>Windows XP SP3 Home Edition</name>
			</os>
			<os>
				<name>Windows XP SP3 Professional Edition</name>
			</os>
		</verified>
	</application>
	
	<discovery>
		<found>2010.08.08</found>
		<vendor_notified>2012.02.16</vendor_notified>
		<published>2012.03.25</published>
	</discovery>
	
	<vulnerabilities>
		<vulnerability>
			<name>Denial of Service triggered in JPEG2000.dll module, loaded at address 0x10000000. Denial of Service is caused by integer division by zero at address 0x10010056. FuzzMyApp have indentified 15 vulnerable samples during fuzzing JPEG 2000 samples, which triggers given vulnerability.</name>
			<type>DoS</type>
			<description>Integer division by zero in JPEG2000.dll module at address 0x10010056.</description>
			<exception>Integer division by zero in JPEG2000.dll module at address 0x10010056.</exception>
<disasm>10010031    8B5424 20       MOV EDX,DWORD PTR SS:[ESP+20]
10010035    897424 28       MOV DWORD PTR SS:[ESP+28],ESI
10010039    8D8A 30040000   LEA ECX,DWORD PTR DS:[EDX+430]
1001003F    8B43 2C         MOV EAX,DWORD PTR DS:[EBX+2C]
10010042    33D2            XOR EDX,EDX
10010044    8A1430          MOV DL,BYTE PTR DS:[EAX+ESI]
10010047    8B4424 24       MOV EAX,DWORD PTR SS:[ESP+24]
1001004B    8BFA            MOV EDI,EDX
1001004D    8B50 20         MOV EDX,DWORD PTR DS:[EAX+20]
10010050    8D4417 FF       LEA EAX,DWORD PTR DS:[EDI+EDX-1]
10010054    33D2            XOR EDX,EDX
10010056    F7F7            DIV EDI                                  ; integer division by zero
10010058    33D2            XOR EDX,EDX
1001005A    8941 F8         MOV DWORD PTR DS:[ECX-8],EAX
1001005D    8B43 30         MOV EAX,DWORD PTR DS:[EBX+30]
10010060    8A1430          MOV DL,BYTE PTR DS:[EAX+ESI]
10010063    8B4424 24       MOV EAX,DWORD PTR SS:[ESP+24]
10010067    8BFA            MOV EDI,EDX</disasm>
			<images>
				<image>
					<thumbnail>
						<src>image01s.png</src>
						<width>100</width>
						<height>51</height>
					</thumbnail>
					<src>image01.png</src>
					<alt>Integer division by zero</alt>
					<text>Integer division by zero</text>
				</image>
			</images>
		</vulnerability>	
<vulnerability>
			<name>Denial of Service triggered in JPEG2000.dll module, loaded at address 0x10000000. Denial of Service is caused by integer division by zero at address 0x10010072. FuzzMyApp have indentified 9 vulnerable samples during fuzzing JPEG 2000 samples, which triggers given vulnerability.</name>
			<type>DoS</type>
			<description>Integer division by zero in JPEG2000.dll module at address 0x10010072.</description>
			<exception>Integer division by zero in JPEG2000.dll module at address 0x10010072.</exception>
<disasm>1001005A    8941 F8         MOV DWORD PTR DS:[ECX-8],EAX
1001005D    8B43 30         MOV EAX,DWORD PTR DS:[EBX+30]
10010060    8A1430          MOV DL,BYTE PTR DS:[EAX+ESI]
10010063    8B4424 24       MOV EAX,DWORD PTR SS:[ESP+24]
10010067    8BFA            MOV EDI,EDX
10010069    8B50 24         MOV EDX,DWORD PTR DS:[EAX+24]
1001006C    8D4417 FF       LEA EAX,DWORD PTR DS:[EDI+EDX-1]
10010070    33D2            XOR EDX,EDX
10010072    F7F7            DIV EDI                                  ; integer division by zero
10010074    33D2            XOR EDX,EDX
10010076    8941 FC         MOV DWORD PTR DS:[ECX-4],EAX
10010079    8B43 2C         MOV EAX,DWORD PTR DS:[EBX+2C]
1001007C    8A1430          MOV DL,BYTE PTR DS:[EAX+ESI]
1001007F    8B4424 24       MOV EAX,DWORD PTR SS:[ESP+24]
10010083    8BFA            MOV EDI,EDX
10010085    8B50 28         MOV EDX,DWORD PTR DS:[EAX+28]</disasm>
			<images>
				<image>
					<thumbnail>
						<src>image02s.png</src>
						<width>100</width>
						<height>51</height>
					</thumbnail>
					<src>image02.png</src>
					<alt>Integer division by zero</alt>
					<text>Integer division by zero</text>
				</image>
			</images>
		</vulnerability>	
	</vulnerabilities>
</advisory>