Skip to content

Commit f343e16

Browse files
author
Marius Burkard
committed
Insufficient escaping of whitespace in FTP user paths, fixes #5350
1 parent eae2368 commit f343e16

File tree

2 files changed

+6
-5
lines changed

2 files changed

+6
-5
lines changed

interface/web/sites/form/ftp_user.tform.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,10 @@
276276
'formtype' => 'TEXT',
277277
'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY',
278278
'errmsg'=> 'directory_error_empty'),
279-
1 => array ( 'type' => 'CUSTOM',
279+
1 => array ( 'type' => 'REGEX',
280+
'regex' => '/^\/[a-zA-Z0-9\ \.\-\_\/]{10,128}$/',
281+
'errmsg'=> 'directory_error_regex'),
282+
2 => array ( 'type' => 'CUSTOM',
280283
'class' => 'validate_ftpuser',
281284
'function' => 'ftp_dir',
282285
'errmsg' => 'directory_error_notinweb'),

server/plugins-available/ftpuser_base_plugin.inc.php

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,7 @@ function insert($event_name, $data) {
8383
}
8484

8585
$app->system->web_folder_protection($web['document_root'], false);
86-
exec('mkdir -p '.escapeshellcmd($data['new']['dir']));
87-
exec('chown '.escapeshellcmd($web["system_user"]).':'.escapeshellcmd($web['system_group']).' '.$data['new']['dir']);
86+
$app->system->mkdirpath($data['new']['dir'], 0755, $web["system_user"], $web["system_group"]);
8887
$app->system->web_folder_protection($web['document_root'], true);
8988

9089
$app->log("Added ftpuser_dir: ".$data['new']['dir'], LOGLEVEL_DEBUG);
@@ -109,8 +108,7 @@ function update($event_name, $data) {
109108
}
110109

111110
$app->system->web_folder_protection($web['document_root'], false);
112-
exec('mkdir -p '.escapeshellcmd($data['new']['dir']));
113-
exec('chown '.escapeshellcmd($web["system_user"]).':'.escapeshellcmd($web['system_group']).' '.$data['new']['dir']);
111+
$app->system->mkdirpath($data['new']['dir'], 0755, $web["system_user"], $web["system_group"]);
114112
$app->system->web_folder_protection($web['document_root'], true);
115113

116114

0 commit comments

Comments
 (0)