Re: Target Error : accepting reflected CHAP_C value on mutual Authentication

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,
On 6/6/2014 6:50 AM, Nicholas A. Bellinger wrote:
Hi Tejas,

On Thu, 2014-06-05 at 15:40 +0530, Tejas Vaykole wrote:
Hi,
The iSCSI target is expected to send a Login reject when it receives the
CHAP_C value which target or initiator
has used in previous  attempts for authentication (as stated in RFC
1994,section 4.1). However ,
i find that LIO is accepting the reuse of CHAP_C values,and sends a
Login success which is an error.
   RFC 1994 section 4.1
-------------<snip>--------------
The Challenge Value MUST be changed each time a Challenge is sent.
Originators MUST NOT reuse the CHAP
challenge sent by the Responder for the other direction of a
bidirectional authentication. Responders MUST
check for this condition and close the iSCSI TCP connection if it occurs.
-------------<snip>--------------

i have attached the pcap for the same.

Thanks for reporting.  I'm applying the following patch to address this
case.  Please test + confirm.
 I Have tested the patch on following test machine and it looks ok.

[root ~]#uname -a
Linux root 3.15.0-rc3+ #1 SMP Mon 19 17:35:27 IST 2014 x86_64 x86_64 x86_64 GNU/Linux

[root@root test_suite_iscsi]# cat /sys/kernel/config/target/iscsi/lio_version
Datera Inc. iSCSI Target v4.1.0

Thank you,

--nab

>From 57e9e7d1084bb8a364ef9d91d9531cd987ff9048 Mon Sep 17 00:00:00 2001
From: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx>
Date: Thu, 5 Jun 2014 18:08:57 -0700
Subject: [PATCH 19/19] iscsi-target: Reject mutual authentication with
  reflected CHAP_C

This patch adds an explicit check in chap_server_compute_md5() to ensure
the CHAP_C value received from the initiator during mutual authentication
does not match the original CHAP_C provided by the target.

This is in line with RFC-3720, section 8.2.1:

    Originators MUST NOT reuse the CHAP challenge sent by the Responder
    for the other direction of a bidirectional authentication.
    Responders MUST check for this condition and close the iSCSI TCP
    connection if it occurs.

Reported-by: Tejas Vaykole <tejas.vaykole@xxxxxxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx # 3.1+
Signed-off-by: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx>
---
  drivers/target/iscsi/iscsi_target_auth.c |   10 ++++++++++
  1 file changed, 10 insertions(+)

diff --git a/drivers/target/iscsi/iscsi_target_auth.c b/drivers/target/iscsi/iscsi_target_auth.c
index ec00042..635fc5e 100644
--- a/drivers/target/iscsi/iscsi_target_auth.c
+++ b/drivers/target/iscsi/iscsi_target_auth.c
@@ -344,6 +344,16 @@ static int chap_server_compute_md5(
  		goto out;
  	}
  	/*
+	 * During mutual authentication, the CHAP_C generated by the
+	 * initiator must not match the original CHAP_C generated by
+	 * the target.
+	 */
+	if (!memcmp(challenge_binhex, chap->challenge, CHAP_CHALLENGE_LENGTH)) {
+		pr_err("initiator CHAP_C matches target CHAP_C, failing"
+		       " login attempt\n");
+		goto out;
+	}
+	/*
  	 * Generate CHAP_N and CHAP_R for mutual authentication.
  	 */
  	tfm = crypto_alloc_hash("md5", 0, CRYPTO_ALG_ASYNC);


--
Thanks and regards.
Tejas Vaykole
Development Engineer.
Calsoft Inc.

--
To unsubscribe from this list: send the line "unsubscribe target-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux SCSI]     [Kernel Newbies]     [Linux SCSI Target Infrastructure]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Device Mapper]

  Powered by Linux