Index: wp-admin/includes/media.php
===================================================================
--- wp-admin/includes/media.php	(revision 19482)
+++ wp-admin/includes/media.php	(working copy)
@@ -604,6 +604,23 @@
 			@unlink($file_array['tmp_name']);
 			$file_array['tmp_name'] = '';
 		}
+		
+		// Get the mime type
+		$mime_type = '';
+		if ( extension_loaded('fileinfo') ) {
+			$finfo = new finfo();
+			$mime_type = $finfo->file( $file_array['tmp_name'], FILEINFO_MIME );
+		} elseif ( function_exists('mime_content_type') ) {
+			$mime_type = mime_content_type( $file_array['tmp_name'] );
+		}
+		if ( !empty( $mime_type) ) {
+			$types = explode('/', $mime_type, 2);
+			if ( 'image' !== $types[0] ) {
+				// This is not an image
+				@unlink($file_array['tmp_name']);
+				$file_array['tmp_name'] = '';
+			}
+		}
 
 		// do the validation and storage stuff
 		$id = media_handle_sideload( $file_array, $post_id, $desc );
