Source-Changes-HG archive

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

[src/trunk]: src/crypto/dist/ipsec-tools/src/racoon PR/42363: Yasuoka Masahiko:



details:   https://anonhg.NetBSD.org/src/rev/031172170571
branches:  trunk
changeset: 749244:031172170571
user:      christos <christos%NetBSD.org@localhost>
date:      Sun Nov 22 19:34:55 2009 +0000

description:
PR/42363: Yasuoka Masahiko:

racoon uses a wrong IPsec-SA handle that is for other peer in case it
receives a ISAKMP message for IPsec-SA that has the same message-id as
the message-id that is received before.

racoon uses message-id to find the handle of IPsec-SA.  The message-id
is a unique number for each peer, but different peers may use the same
value.

Different Windows Vista or Windows 7 peers seem to use the same
message-id.  racoon can handle the first Windows's Phase-2, but it
cannot handle the second Windows.  Because racoon misunderstands the
message for the second Windows as the message for the first Windows.

>Category:       bin
>Synopsis:       racoon uses a wrong IPsec-SA that is for different peer
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    bin-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Nov 22 18:25:00 +0000 2009
>Originator:     yasuoka%iij.ad.jp@localhost

diffstat:

 crypto/dist/ipsec-tools/src/racoon/handler.c |  4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diffs (18 lines):

diff -r 90079f8a95f4 -r 031172170571 crypto/dist/ipsec-tools/src/racoon/handler.c
--- a/crypto/dist/ipsec-tools/src/racoon/handler.c      Sun Nov 22 19:09:15 2009 +0000
+++ b/crypto/dist/ipsec-tools/src/racoon/handler.c      Sun Nov 22 19:34:55 2009 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: handler.c,v 1.30 2009/09/03 09:29:07 tteras Exp $      */
+/*     $NetBSD: handler.c,v 1.31 2009/11/22 19:34:55 christos Exp $    */
 
 /* Id: handler.c,v 1.28 2006/05/26 12:17:29 manubsd Exp */
 
@@ -573,7 +573,7 @@
 {
        struct ph2handle *p;
 
-       LIST_FOREACH(p, &ph2tree, chain) {
+       LIST_FOREACH(p, &iph1->ph2tree, chain) {
                if (p->msgid == msgid && p->ph1 == iph1)
                        return p;
        }



Home | Main Index | Thread Index | Old Index