]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
doveadm: Make doveadm_password safe against timing attacks.
authorTimo Sirainen <timo.sirainen@dovecot.fi>
Sun, 9 Apr 2017 12:19:25 +0000 (15:19 +0300)
committerTimo Sirainen <timo.sirainen@dovecot.fi>
Wed, 12 Apr 2017 22:19:42 +0000 (01:19 +0300)
src/doveadm/client-connection.c

index 7e64827a23b0e480a90ba22aa9f9f96182789bfc..b046ce10f89831dcff09d1532d80828350c14073 100644 (file)
@@ -365,7 +365,9 @@ client_connection_authenticate(struct client_connection *conn)
                return -1;
        }
        pass = t_strndup(data + 9, size - 9);
-       if (strcmp(pass, conn->set->doveadm_password) != 0) {
+       if (strlen(pass) != strlen(conn->set->doveadm_password) ||
+           !mem_equals_timing_safe(pass, conn->set->doveadm_password,
+                                   strlen(pass))) {
                i_error("doveadm client authenticated with wrong password");
                return -1;
        }