Skip to content

Commit b6ff2e1

Browse files
committed
Fixed: FS#907 - possible security issue deleting maildir .. plugin module [ mail_plugin.inc.php ]
1 parent 563af80 commit b6ff2e1

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

server/plugins-available/mail_plugin.inc.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -269,7 +269,7 @@ function domain_delete($event_name,$data) {
269269

270270
//* Delete maildomain path
271271
$old_maildomain_path = escapeshellcmd($mail_config['homedir_path'].'/'.$data['old']['domain']);
272-
if(!stristr($old_maildomain_path,'..') && !stristr($old_maildomain_path,'*') && strlen($old_maildomain_path) >= 10) {
272+
if(!stristr($old_maildomain_path,'//') && !stristr($old_maildomain_path,'..') && !stristr($old_maildomain_path,'*') && !stristr($old_maildomain_path,'&') && strlen($old_maildomain_path) >= 10) {
273273
exec('rm -rf '.escapeshellcmd($old_maildomain_path));
274274
$app->log('Deleted the mail domain directory: '.$old_maildomain_path,LOGLEVEL_DEBUG);
275275
} else {
@@ -278,7 +278,7 @@ function domain_delete($event_name,$data) {
278278

279279
//* Delete mailfilter path
280280
$old_maildomain_path = escapeshellcmd($mail_config['homedir_path'].'/mailfilters/'.$data['old']['domain']);
281-
if(!stristr($old_maildomain_path,'..') && !stristr($old_maildomain_path,'*') && strlen($old_maildomain_path) >= 10) {
281+
if(!stristr($old_maildomain_path,'//') && !stristr($old_maildomain_path,'..') && !stristr($old_maildomain_path,'*') && !stristr($old_maildomain_path,'&') && strlen($old_maildomain_path) >= 10) {
282282
exec('rm -rf '.escapeshellcmd($old_maildomain_path));
283283
$app->log('Deleted the mail domain mailfilter directory: '.$old_maildomain_path,LOGLEVEL_DEBUG);
284284
} else {

0 commit comments

Comments
 (0)