Skip to content

Commit 8d8a7de

Browse files
committed
security fix: avoid renaming and moving inappropriate files
1 parent 3ec1573 commit 8d8a7de

File tree

2 files changed

+16
-2
lines changed

2 files changed

+16
-2
lines changed

src/Controllers/ItemsController.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
namespace UniSharp\LaravelFilemanager\Controllers;
44

5+
use Illuminate\Support\Facades\Storage;
56
use UniSharp\LaravelFilemanager\Events\FileIsMoving;
67
use UniSharp\LaravelFilemanager\Events\FileWasMoving;
78
use UniSharp\LaravelFilemanager\Events\FolderIsMoving;
@@ -66,6 +67,12 @@ public function domove()
6667
$old_file = $this->lfm->pretty($item);
6768
$is_directory = $old_file->isDirectory();
6869

70+
$file = $this->lfm->setName($item);
71+
72+
if (!Storage::disk($this->helper->config('disk'))->exists($file->path('storage'))) {
73+
abort(404);
74+
}
75+
6976
if ($old_file->hasThumb()) {
7077
$new_file = $this->lfm->setName($item)->thumb()->dir($target);
7178
if ($is_directory) {

src/Controllers/RenameController.php

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@
22

33
namespace UniSharp\LaravelFilemanager\Controllers;
44

5-
use UniSharp\LaravelFilemanager\Events\ImageIsRenaming;
6-
use UniSharp\LaravelFilemanager\Events\ImageWasRenamed;
5+
use Illuminate\Support\Facades\Storage;
76
use UniSharp\LaravelFilemanager\Events\FolderIsRenaming;
87
use UniSharp\LaravelFilemanager\Events\FolderWasRenamed;
8+
use UniSharp\LaravelFilemanager\Events\ImageIsRenaming;
9+
use UniSharp\LaravelFilemanager\Events\ImageWasRenamed;
910

1011
class RenameController extends LfmController
1112
{
@@ -14,6 +15,12 @@ public function getRename()
1415
$old_name = $this->helper->input('file');
1516
$new_name = $this->helper->input('new_name');
1617

18+
$file = $this->lfm->setName($old_name);
19+
20+
if (!Storage::disk($this->helper->config('disk'))->exists($file->path('storage'))) {
21+
abort(404);
22+
}
23+
1724
$old_file = $this->lfm->pretty($old_name);
1825

1926
$is_directory = $old_file->isDirectory();

0 commit comments

Comments
 (0)