iscsi-target; Enforce 1024 byte maximum for CHAP_C key value
authorNicholas Bellinger <nab@linux-iscsi.org>
Fri, 13 Jun 2014 04:28:31 +0000 (04:28 +0000)
committerNicholas Bellinger <nab@linux-iscsi.org>
Fri, 27 Jun 2014 03:56:42 +0000 (20:56 -0700)
This patch adds a check in chap_server_compute_md5() to enforce a
1024 byte maximum for the CHAP_C key value following the requirement
in RFC-3720 Section 11.1.4:

   "..., C and R are large-binary-values and their binary length (not
   the length of the character string that represents them in encoded
   form) MUST not exceed 1024 bytes."

Reported-by: rahul.rane <rahul.rane@calsoftinc.com>
Tested-by: rahul.rane <rahul.rane@calsoftinc.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
drivers/target/iscsi/iscsi_target_auth.c

index 9430eea7c0d6268b4a0589e7291869005b56b090..ab4915c0d933a07021b076cf15232b85dc9dcf08 100644 (file)
@@ -355,6 +355,10 @@ static int chap_server_compute_md5(
                pr_err("Unable to convert incoming challenge\n");
                goto out;
        }
+       if (challenge_len > 1024) {
+               pr_err("CHAP_C exceeds maximum binary size of 1024 bytes\n");
+               goto out;
+       }
        /*
         * During mutual authentication, the CHAP_C generated by the
         * initiator must not match the original CHAP_C generated by