fix(ical): only accept known columns as the calendar start date

The calendar_project_tasks and calendar_user_tasks settings were used as a
column name in the iCal query, and escapeIdentifier() leaves values with a
space or a dot untouched. A stored value like "1 OR 1=1 OR 1" made the public
project feed return tasks from every project.

Only date_creation and date_started are accepted now, anything else falls
back to date_started. The currency form also stops saving keys other than
application_currency, which is how the value could be written in the first
place.

Fixes #5904
This commit is contained in:
dualfroz committed 2026-10-03 16:44:04 +02:00
1 parent a0b55ff348
commit 23bbaa8c60
4 files changed
+142 -3

No files matched your search

+1 -1
View File
@@ -91,7 +91,7 @@ class CurrencyController extends BaseController
*/
public function update()
{
$values = $this->request->getValues();
$values = array_intersect_key($this->request->getValues(), array('application_currency' => ''));
if ($this->configModel->save($values)) {
$this->flash->success(t('Settings saved successfully.'));