Skip to content
Snippets Groups Projects

validate filenames and sanitise permissions

Open Drew Webber requested to merge issue/drupal-3526769:3526769-avoid-abuse-of into 11.x
@@ -121,9 +121,14 @@ public function submitForm(array &$form, FormStateInterface $form_state) {
$archiver = new ArchiveTar($path, 'gz');
$files = [];
foreach ($archiver->listContent() as $file) {
$files[] = $file['filename'];
if (str_ends_with($file['filename'], '.yml')) {
$files[] = $file['filename'];
}
}
$archiver->extractList($files, $this->settings->get('config_sync_directory'), '', FALSE, FALSE);
foreach ($files as $file) {
$this->fileSystem->chmod($this->settings->get('config_sync_directory') . DIRECTORY_SEPARATOR . $file);
}
$this->messenger()->addStatus($this->t('Your configuration files were successfully uploaded and are ready for import.'));
$form_state->setRedirect('config.sync');
}
Loading