Skip to content
Snippets Groups Projects
Commit 86784c6b authored by Eric Seppanen's avatar Eric Seppanen Committed by Nicholas Bellinger
Browse files

iscsi-target: chap auth shouldn't match username with trailing garbage


In iSCSI negotiations with initiator CHAP enabled, usernames with
trailing garbage are permitted, because the string comparison only
checks the strlen of the configured username.

e.g. "usernameXXXXX" will be permitted to match "username".

Just check one more byte so the trailing null char is also matched.

Signed-off-by: default avatarEric Seppanen <eric@purestorage.com>
Cc: <stable@vger.kernel.org> #3.1+
Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
parent 369653e4
No related branches found
No related tags found
No related merge requests found
......@@ -146,6 +146,7 @@ static int chap_server_compute_md5(
unsigned char client_digest[MD5_SIGNATURE_SIZE];
unsigned char server_digest[MD5_SIGNATURE_SIZE];
unsigned char chap_n[MAX_CHAP_N_SIZE], chap_r[MAX_RESPONSE_LENGTH];
size_t compare_len;
struct iscsi_chap *chap = conn->auth_protocol;
struct crypto_hash *tfm;
struct hash_desc desc;
......@@ -184,7 +185,9 @@ static int chap_server_compute_md5(
goto out;
}
if (memcmp(chap_n, auth->userid, strlen(auth->userid)) != 0) {
/* Include the terminating NULL in the compare */
compare_len = strlen(auth->userid) + 1;
if (strncmp(chap_n, auth->userid, compare_len) != 0) {
pr_err("CHAP_N values do not match!\n");
goto out;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment