changeset 7541:429c2c8a4354

pullrequests: prevent XSS in @mention completion when first and last names cannot be trusted atwho used in MentionsAutoComplete is passing raw user controlled data which might contain HTML markup. That could cause XSS issues when completion hit a rogue user name. To avoid that, make sure displayTpl always escape user information, as recommended in https://github.com/ichord/At.js/issues/334 .
author Mads Kiilerich <mads@kiilerich.com>
date Wed, 27 Feb 2019 02:23:26 +0100
parents 9beef1d91c4c
children 42a150500c25
files kallithea/public/js/base.js
diffstat 1 files changed, 7 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/kallithea/public/js/base.js	Wed Feb 27 02:23:26 2019 +0100
+++ b/kallithea/public/js/base.js	Wed Feb 27 02:23:26 2019 +0100
@@ -1198,7 +1198,13 @@
         return items;
       }
     },
-    displayTpl: "<li>" + autocompleteGravatar('${fname} ${lname} (${nname})', '${gravatar_lnk}', 16) + "</li>",
+    displayTpl: function(item) {
+        return "<li>" +
+            autocompleteGravatar(
+                "{0} {1} ({2})".format(item.fname, item.lname, item.nname).html_escape(),
+                '${gravatar_lnk}', 16) +
+            "</li>";
+    },
     insertTpl: "${atwho-at}${nname}"
   });
 };