<?xml version="1.0"?>
<?xml-stylesheet href="../fma_report_en.xslt" type="text/xsl" ?>

<advisory xml:space="preserve">
	<meta>
		<description>IrfanView 4.27 - 4.32 ANI (Windows Animated Cursor) Denial of Service Vulnerability</description>
		<keywords>fuzzing, security, blackbox, tests, i_view32.exe, DoS, ANI, antivirus, ESET, KIS 2013, false positive</keywords>
	</meta>

	<title>IrfanView 4.27 - 4.32 ANI (Windows Animated Cursor) Denial of Service Vulnerability</title>
	<id>FMA-2010-005</id>
	
	<application>
		<name>IrfanView</name>
		<version>4.27 - 4.32</version>
		<url>http://www.irfanview.com</url>
		<files>
			<file>
				<name>i_view32.exe</name>
				<version>4.32</version>
				<md5>89804B494D19D98BF54F9365909E626A</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.15</found>
		<vendor_notified>2012.02.15</vendor_notified>
		<published>2012.04.11</published>
	</discovery>
	
	<vulnerabilities>
		<vulnerability>
			<name>Denial of Service Vulnerability.</name>
			<type>DoS</type>
			<description>During processing of malformed ANI file, IrfanView calculates incorrectly data buffer address, no sanity check is performed which leads to application crash. After testing IrfanView, side research was conducted. Around year 2007 Windows ANI exploit was a very popular vulnerability exploited in the wild. Lots of security software (ex. antiviruses) was enhanced to detect ANI exploits. In 2010 we checked how current (at that time) ESET 4.0 AntiVirus was handling our set of fuzzed ANI samples generated with basic set of mutation patterns. Lots of samples were classified as variants of Win32/TrojanDownloader.Ani.Gen, which was of course invalid. So far, in 2013 we have revisited this issue and checked if there has been any improvement in false positive classification of malformed ANI files by popular antiviruses. ESET Smart Security 6.0 and Kaspersky Internet Security 2013 were selected for this test, unfortunately no improvements of false positive detection have been done yet.</description>
			<exception>Access violation exception raised in module i_view32.exe when reading byte value form incorrectly calculated pointer.</exception>
<disasm>MOV EAX,DWORD PTR SS:[ESP+4]
MOV DL,080h
MOV CL,AL
PUSH EBX
AND CL,7
SHR DL,CL
MOV ECX,DWORD PTR SS:[ESP+0Ch]
SHR EAX,3
MOV BL,BYTE PTR DS:[EAX+ECX]          ;read from DS:[00172BAF]=???
AND DL,BL
POP EBX
NEG DL
SBB EDX,EDX
NEG EDX
MOV EAX,EDX
RETN</disasm>
			<images>
				<image>
					<thumbnail>
						<src>image01s.png</src>
						<width>100</width>
						<height>62</height>
					</thumbnail>
					<src>image01.png</src>
					<alt>Access violation exception raised in module i_view32.exe.</alt>
					<text>Access violation exception raised in module i_view32.exe.</text>
				</image>
				<image>
					<thumbnail>
						<src>image02s.png</src>
						<width>100</width>
						<height>67</height>
					</thumbnail>
					<src>image02.png</src>
					<alt>ESET 4.0 Antivirus false positive alerts for ANI fuzzed samples.</alt>
					<text>ESET 4.0 Antivirus false positive alerts for ANI fuzzed samples.</text>
				</image>
				<image>
					<thumbnail>
						<src>image03s.png</src>
						<width>100</width>
						<height>92</height>
					</thumbnail>
					<src>image03.png</src>
					<alt>Fuzzed ANI samples preview in Explorer.</alt>
					<text>Fuzzed ANI samples preview in Explorer.</text>
				</image>
				<image>
					<thumbnail>
						<src>image04s.png</src>
						<width>100</width>
						<height>68</height>
					</thumbnail>
					<src>image04.png</src>
					<alt>Kaspersky Internet Security 2013 false positive alerts for ANI fuzzed samples.</alt>
					<text>Kaspersky Internet Security 2013 false positive alerts for ANI fuzzed samples.</text>
				</image>
			</images>
            <videos>
                <video>
                        <url>http://www.youtube.com/embed/a4qyEAa8XK0</url>
                        <width>420</width>
                        <height>315</height>
                </video>
                <video>
                        <url>http://www.youtube.com/embed/8q2neJRlEU8</url>
                        <width>420</width>
                        <height>315</height>
                </video>
            </videos>
		</vulnerability>	
	</vulnerabilities>
</advisory>