[SECURITY] Avoid DoS in Online Media Helper 89/59089/2
authorOliver Hader <oliver@typo3.org>
Tue, 11 Dec 2018 09:55:36 +0000 (10:55 +0100)
committerOliver Hader <oliver.hader@typo3.org>
Tue, 11 Dec 2018 09:55:37 +0000 (10:55 +0100)
Using large media files (*.youtube, *.vimeo in the TYPO3 core)
might lead to denial of service scenarios. In order to avoid
that, media files are limited to have a content size of 2048
bytes as a maximum. Usually these files contain just the remote
identifier - thus, ~20 bytes should have been sufficient already.

Resolves: #85381
Releases: master, 8.7, 7.6
Security-Commit: 0e334ba09c9676616598162c0212db931fa38c6e
Security-Bulletin: TYPO3-CORE-SA-2018-011
Change-Id: I50fd11932d9acc9990a92e1a6c9da873d340e619
Reviewed-on: https://review.typo3.org/59089
Reviewed-by: Oliver Hader <oliver.hader@typo3.org>
Tested-by: Oliver Hader <oliver.hader@typo3.org>
typo3/sysext/core/Classes/Resource/OnlineMedia/Helpers/AbstractOnlineMediaHelper.php

index 2f420b6..313d54b 100644 (file)
@@ -58,6 +58,10 @@ abstract class AbstractOnlineMediaHelper implements OnlineMediaHelperInterface
     public function getOnlineMediaId(File $file)
     {
         if (!isset($this->onlineMediaIdCache[$file->getUid()])) {
+            // Limiting media identifier to 2048 bytes
+            if ($file->getSize() > 2048) {
+                return '';
+            }
             // By definition these files only contain the ID of the remote media source
             $this->onlineMediaIdCache[$file->getUid()] = trim($file->getContents());
         }