diff --git a/typo3/sysext/core/Classes/Http/ServerRequestFactory.php b/typo3/sysext/core/Classes/Http/ServerRequestFactory.php
index 85b5aec569d224dd7b7a1597d72f73380206f68b..1939d29a5dcf08fbd84c001306bfdcfc6ccd6b51 100644
--- a/typo3/sysext/core/Classes/Http/ServerRequestFactory.php
+++ b/typo3/sysext/core/Classes/Http/ServerRequestFactory.php
@@ -110,7 +110,10 @@ class ServerRequestFactory {
 				$normalizedFileUploads[$key] = $value;
 			} elseif (is_array($value)) {
 				if (isset($value['tmp_name'])) {
-					$normalizedFileUploads[$key] = self::createUploadedFile($value);
+					$uploadedFiles = self::createUploadedFile($value);
+					if ($uploadedFiles) {
+						$normalizedFileUploads[$key] = $uploadedFiles;
+					}
 				} else {
 					$normalizedFileUploads[$key] = self::normalizeUploadedFiles($value);
 				}
@@ -128,7 +131,7 @@ class ServerRequestFactory {
 	 * recursively resolve uploaded files.
 	 *
 	 * @param array $value $_FILES structure
-	 * @return UploadedFileInterface[]|UploadedFileInterface
+	 * @return UploadedFileInterface[]|UploadedFileInterface|NULL
 	 */
 	protected static function createUploadedFile(array $value) {
 		if (is_array($value['tmp_name'])) {
@@ -141,12 +144,16 @@ class ServerRequestFactory {
 					'name'     => $value['name'][$key],
 					'type'     => $value['type'][$key]
 				);
-				$files[$key] = self::createUploadedFile($data);
+				$result = self::createUploadedFile($data);
+				if ($result) {
+					$files[$key] = $result;
+				}
 			}
 			return $files;
-		} else {
+		} elseif (!empty($value['tmp_name'])) {
 			return new UploadedFile($value['tmp_name'], $value['size'], $value['error'], $value['name'], $value['type']);
 		}
+		return NULL;
 	}
 
 }
diff --git a/typo3/sysext/core/Tests/Unit/Http/ServerRequestFactoryTest.php b/typo3/sysext/core/Tests/Unit/Http/ServerRequestFactoryTest.php
index 88a5213d29baf771cbfcff19d4a853a77d9580dc..d1f7b2147be1f569111073b82d8a68f5dad097cb 100644
--- a/typo3/sysext/core/Tests/Unit/Http/ServerRequestFactoryTest.php
+++ b/typo3/sysext/core/Tests/Unit/Http/ServerRequestFactoryTest.php
@@ -81,4 +81,37 @@ class ServerRequestFactoryTest extends \TYPO3\CMS\Core\Tests\UnitTestCase {
 		$this->assertTrue($uploadedFiles['tx_uploadexample_piexample']['newExample']['imageCollection'][0] instanceof UploadedFile);
 	}
 
+	/**
+	 * @test
+	 */
+	public function uploadedFilesAreNotCreatedForEmptyFilesArray() {
+		$_SERVER['HTTP_HOST'] = 'localhost';
+		$_SERVER['REQUEST_URI'] = '/index.php';
+		$_FILES = array();
+
+		$uploadedFiles = ServerRequestFactory::fromGlobals()->getUploadedFiles();
+
+		$this->assertEmpty($uploadedFiles);
+	}
+
+	/**
+	 * @test
+	 */
+	public function uploadedFilesAreNotCreatedIfTmpNameIsEmpty() {
+		$_SERVER['HTTP_HOST'] = 'localhost';
+		$_SERVER['REQUEST_URI'] = '/index.php';
+		$_FILES = array(
+			'tx_uploadexample_piexample' => array(
+				'name' => '',
+				'tmp_name' => '',
+				'error' => 4,
+				'size' => 0,
+			),
+		);
+
+		$uploadedFiles = ServerRequestFactory::fromGlobals()->getUploadedFiles();
+
+		$this->assertEmpty($uploadedFiles);
+	}
+
 }