From 5cd5ae707e8d2216ba3ed48e42c00efd8744b725 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=B4me=20Chilliet?= <come@opensides.be> Date: Mon, 5 Nov 2018 10:55:01 +0100 Subject: [PATCH] :ambulance: fix(password recovery) Escape HTML from input fields This is a work-around to avoid javascript injection. The better way would be for msg_dialog to escape error text but that would cause problem elsewhere, so in the mean time we escape here. issue #5918 --- include/class_passwordRecovery.inc | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/include/class_passwordRecovery.inc b/include/class_passwordRecovery.inc index 4df57dee3..8c8063334 100644 --- a/include/class_passwordRecovery.inc +++ b/include/class_passwordRecovery.inc @@ -239,10 +239,10 @@ class passwordRecovery extends standAlonePage { $ldap->search($filter, array('dn')); if ($ldap->count() < 1) { - $this->message[] = sprintf(_('Did not find an account with login "%s"'), $this->login); + $this->message[] = sprintf(_('Did not find an account with login "%s"'), htmlentities($this->login, ENT_COMPAT, 'UTF-8')); return; } elseif ($ldap->count() > 1) { - $this->message[] = sprintf(_('Found multiple accounts with login "%s"'), $this->login); + $this->message[] = sprintf(_('Found multiple accounts with login "%s"'), htmlentities($this->login, ENT_COMPAT, 'UTF-8')); return; } @@ -275,10 +275,10 @@ class passwordRecovery extends standAlonePage { /* Only one ldap node should be found */ if ($ldap->count() < 1) { - $this->message[] = sprintf(_('There is no account using email "%s"'), $this->email_address); + $this->message[] = sprintf(_('There is no account using email "%s"'), htmlentities($this->email_address, ENT_COMPAT, 'UTF-8')); return; } elseif ($ldap->count() > 1) { - $this->message[] = sprintf(_('There are several accounts using email "%s"'), $this->email_address); + $this->message[] = sprintf(_('There are several accounts using email "%s"'), htmlentities($this->email_address, ENT_COMPAT, 'UTF-8')); return; } @@ -286,7 +286,7 @@ class passwordRecovery extends standAlonePage { $method = passwordMethod::get_method($attrs['userPassword'][0], $attrs['dn']); if (is_object($method) && $method->is_locked($attrs['dn'])) { - $this->message[] = sprintf(_('The user using email "%s" is locked. Please contact your administrator.'), $this->email_address); + $this->message[] = sprintf(_('The user using email "%s" is locked. Please contact your administrator.'), htmlentities($this->email_address, ENT_COMPAT, 'UTF-8')); return; } $this->login = $attrs[$this->loginAttribute][0]; -- GitLab