Skip to content

Commit 0b8dc23

Browse files
committed
MC-5054: User Can Bypass File Type Validation In PageBuilder's File Upload Spots
Throw exception if mime type check fails
1 parent 945d0dd commit 0b8dc23

File tree

1 file changed

+7
-2
lines changed
  • app/code/Magento/PageBuilder/Controller/Adminhtml/ContentType/Image

1 file changed

+7
-2
lines changed

app/code/Magento/PageBuilder/Controller/Adminhtml/ContentType/Image/Upload.php

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@
55
*/
66
namespace Magento\PageBuilder\Controller\Adminhtml\ContentType\Image;
77

8-
use Magento\Framework\Controller\ResultFactory;
8+
use Magento\Framework\App\Action\HttpPostActionInterface;
99

1010
/**
1111
* Class Upload
1212
*/
13-
class Upload extends \Magento\Backend\App\Action
13+
class Upload extends \Magento\Backend\App\Action implements HttpPostActionInterface
1414
{
1515
const UPLOAD_DIR = 'wysiwyg';
1616

@@ -94,7 +94,12 @@ public function execute()
9494
$fileUploader->setAllowRenameFiles(true);
9595
$fileUploader->setAllowedExtensions(['jpeg','jpg','png','gif']);
9696
$fileUploader->setAllowCreateFolders(true);
97+
9798
try {
99+
if (!$fileUploader->checkMimeType(['image/png', 'image/jpeg', 'image/gif'])) {
100+
throw new \Magento\Framework\Exception\LocalizedException(__('File validation failed.'));
101+
}
102+
98103
$result = $fileUploader->save($this->getUploadDir());
99104
$baseUrl = $this->storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA);
100105
$result['id'] = $this->cmsWysiwygImages->idEncode($result['file']);

0 commit comments

Comments
 (0)