summaryrefslogtreecommitdiff
path: root/roundcubemail/program
diff options
context:
space:
mode:
authoralec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c>2011-08-09 18:40:42 +0000
committeralec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c>2011-08-09 18:40:42 +0000
commitd00b46486f425432f58dc4dbfdd28bf0113f6583 (patch)
tree1570284097d023d90b8e4adc4ae924750d1a3731 /roundcubemail/program
parent1e4bb015cd11cee39ecc25bb7617edb33acdd809 (diff)
- Fix XSS vulnerability in UI messages (#1488030)
git-svn-id: https://svn.roundcube.net/trunk@5037 208e9e7b-5314-0410-a742-e7e81cd9613c
Diffstat (limited to 'roundcubemail/program')
-rw-r--r--roundcubemail/program/include/rcube_json_output.php9
-rwxr-xr-xroundcubemail/program/include/rcube_template.php9
2 files changed, 16 insertions, 2 deletions
diff --git a/roundcubemail/program/include/rcube_json_output.php b/roundcubemail/program/include/rcube_json_output.php
index 40a7b2a5e..ade9cc033 100644
--- a/roundcubemail/program/include/rcube_json_output.php
+++ b/roundcubemail/program/include/rcube_json_output.php
@@ -174,8 +174,15 @@ class rcube_json_output
public function show_message($message, $type='notice', $vars=null, $override=true, $timeout=0)
{
if ($override || !$this->message) {
+ if (rcube_label_exists($message)) {
+ if (!empty($vars))
+ $vars = array_map('Q', $vars);
+ $msgtext = rcube_label(array('name' => $message, 'vars' => $vars));
+ }
+ else
+ $msgtext = $message;
+
$this->message = $message;
- $msgtext = rcube_label_exists($message) ? rcube_label(array('name' => $message, 'vars' => $vars)) : $message;
$this->command('display_message', $msgtext, $type, $timeout * 1000);
}
}
diff --git a/roundcubemail/program/include/rcube_template.php b/roundcubemail/program/include/rcube_template.php
index 6228e7659..b9a43d3f1 100755
--- a/roundcubemail/program/include/rcube_template.php
+++ b/roundcubemail/program/include/rcube_template.php
@@ -248,8 +248,15 @@ class rcube_template extends rcube_html_page
public function show_message($message, $type='notice', $vars=null, $override=true, $timeout=0)
{
if ($override || !$this->message) {
+ if (rcube_label_exists($message)) {
+ if (!empty($vars))
+ $vars = array_map('Q', $vars);
+ $msgtext = rcube_label(array('name' => $message, 'vars' => $vars));
+ }
+ else
+ $msgtext = $message;
+
$this->message = $message;
- $msgtext = rcube_label_exists($message) ? rcube_label(array('name' => $message, 'vars' => $vars)) : $message;
$this->command('display_message', $msgtext, $type, $timeout * 1000);
}
}