Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Schwan <carl@carlschwan.eu>2022-05-02 22:46:42 +0300
committerbackportbot-nextcloud[bot] <backportbot-nextcloud[bot]@users.noreply.github.com>2022-05-05 19:59:26 +0300
commita9e674bec043670e7a151b1a9430c38bac61f761 (patch)
treec809108a59197505f2f0e728e368d7c64fe53e1f
parente295f5a4a2dda1c0053ef8353775ffb5105e4255 (diff)
Don't use slow hashing to check the LDAP bindingbackport/32246/stable24
Using password_hash is expensive and should be used for hashing passwords when saving them in the database. Here we just want to see if the bind was already done with the given password, so use a fast hashing algorythm. Signed-off-by: Carl Schwan <carl@carlschwan.eu>
-rw-r--r--apps/user_ldap/lib/Connection.php11
1 files changed, 3 insertions, 8 deletions
diff --git a/apps/user_ldap/lib/Connection.php b/apps/user_ldap/lib/Connection.php
index 565fb415e58..89b58b7ebfd 100644
--- a/apps/user_ldap/lib/Connection.php
+++ b/apps/user_ldap/lib/Connection.php
@@ -128,7 +128,7 @@ class Connection extends LDAPUtility {
protected $ignoreValidation = false;
/**
- * @var array{dn?: mixed, hash?: string, result?: bool}
+ * @var array{sum?: string, result?: bool}
*/
protected $bindResult = [];
@@ -672,11 +672,7 @@ class Connection extends LDAPUtility {
if (
count($this->bindResult) !== 0
- && $this->bindResult['dn'] === $this->configuration->ldapAgentName
- && \OC::$server->getHasher()->verify(
- $this->configPrefix . $this->configuration->ldapAgentPassword,
- $this->bindResult['hash']
- )
+ && $this->bindResult['sum'] === md5($this->configuration->ldapAgentName . $this->configPrefix . $this->configuration->ldapAgentPassword)
) {
// don't attempt to bind again with the same data as before
// bind might have been invoked via getConnectionResource(),
@@ -689,8 +685,7 @@ class Connection extends LDAPUtility {
$this->configuration->ldapAgentPassword);
$this->bindResult = [
- 'dn' => $this->configuration->ldapAgentName,
- 'hash' => \OC::$server->getHasher()->hash($this->configPrefix . $this->configuration->ldapAgentPassword),
+ 'sum' => md5($this->configuration->ldapAgentName . $this->configPrefix . $this->configuration->ldapAgentPassword),
'result' => $ldapLogin,
];