Skip to content

Commit 6fb8eaa

Browse files
committed
Fixed rename failing to prevent rename to restricted file extension in media library, 'Remote Code Execution via Chained Rename Bypass and .htaccess PHP Handler Injection', reported by @kdalal-vulncheck #419
1 parent 23ac0e8 commit 6fb8eaa

1 file changed

Lines changed: 5 additions & 3 deletions

File tree

system/traits/media.php

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,8 @@ function rename() {
205205
$duplicate = $this->request->post['duplicate'] ?? false;
206206
$dirMedia = $this->dirMedia;
207207

208+
$this->response->setType('json');
209+
208210
$currentFile = $dirMedia . DS . $file;
209211
if ($newfile) {
210212
$targetFile = $dirMedia . DS . $newfile;
@@ -217,8 +219,9 @@ function rename() {
217219
$extension = strtolower(substr($targetFile, strrpos($targetFile, '.') + 1));
218220

219221
if (isset($this->uploadDenyExtensions) && in_array($extension, $this->uploadDenyExtensions)) {
220-
$message .= __('File type not allowed!');
221-
$success = false;
222+
$message = ['success' => false, 'message' => __('File type not allowed!')];
223+
$this->response->output($message);
224+
return;
222225
}
223226

224227
if ($duplicate) {
@@ -235,7 +238,6 @@ function rename() {
235238
}
236239
}
237240

238-
$this->response->setType('json');
239241
$this->response->output($message);
240242
}
241243

0 commit comments

Comments
 (0)