summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFabian Bläse2020-03-17 15:55:57 +0000
committerJo-Philipp Wich2020-05-26 15:24:24 +0000
commit970ce1ae4e4b99f4f181d58c5c1e0eb6d3afe5b9 (patch)
treeeb60f65af1a0e5226c8501504ed55b52d5c53e0c
parentaaa08366e6384d9933a405d1218b03c1b167f9e5 (diff)
downloadrpcd-970ce1ae4e4b99f4f181d58c5c1e0eb6d3afe5b9.tar.gz
session: deny access if password login is disabled
The special characters '!' and '*' in /etc/shadow are used to disable password login for a specific account. The character 'x' has no special meaning, but should not be interpreted as an empty password. However, rpcd did treat these special characters like no password was set, which allows access even though the account is disabled. By removing the additional checks for these characters, the encrypted password string is passed to crypt, which returns NULL if the salt has an invalid format and therefore access is denied. Fixes: FS#2634 Signed-off-by: Fabian Bläse <fabian@blaese.de> (cherry picked from commit 3df62bcebd2caff47506ccffb42df8d2d2123c06)
-rw-r--r--session.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/session.c b/session.c
index 13a2ef3..908e298 100644
--- a/session.c
+++ b/session.c
@@ -795,7 +795,7 @@ rpc_login_test_password(const char *hash, const char *password)
char *crypt_hash;
/* password is not set */
- if (!hash || !*hash || !strcmp(hash, "!") || !strcmp(hash, "x"))
+ if (!hash || !*hash)
{
return true;
}