Any info on CVE-2006-1721 ?
Biswatosh
biswatosh2001 at yahoo.com
Wed Oct 4 08:42:20 EDT 2006
That was a nice explanation Kai. But I still need to
be 100% clear on this fix.
My question is, what was the attack and how was it
averted by doing this?
**********************************************
- if (strcmp(realm, text->realm) != 0) {
+ if (((realm != NULL) && (strcmp(realm,
text->realm) != 0)) &&
+ (text->realm[0] != 0)) {
SETERROR(sparams->utils,....
***********************************************
All I know is from
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-1721
How a "text->realm != 0" and a "realm != NULL", could
avert that attack?
Thanks
Biswatosh
--- Kai Blin <blin at gmx.net> wrote:
> On Wednesday 04 October 2006 10:07, Biswatosh wrote:
>
> > > > 2)What if,
> > > > (a) realm != NULL
> > > > and (b) strcmp(realm,text->realm) != 0
> > > > and (c) text->realm[0] == 0 , are all
> true?
> > >
> > > This is a != 0, not a == 0. So we make sure
> that...
> >
> > Yes, SASL code checks text->realm[0] != 0, correct
> but
> > my question was what if text->realm[0] == 0 ,and
> > having realm !=NULL and realm not same as
> text->realm
>
> Oh, I thought you had misread the patch. Sorry then.
>
> > Where is this being validated? Why are we not
> making
> > SETERROR(sparams->util,"realm changed:
> authentication
> > aborted") then? The realm has certainly changed,is
> not
> > it, even if text->realm is an empty string?
>
> To be honest, I am no expert on this code, I've only
> looked into the ntlm
> plugin a little, but from a quick look on the
> source code, I would say this:
>
> text is a context_t struct used for the
> authentication. The sanity check you
> were asking about is from
> digestmd5_server_mech_step2(). The context is
> initialized digestmd5_server_mech_new(), where it
> is memset to 0. (line
> 1002). Unless it's set by some helper function I
> missed while reading
> digestmd5_server_mech_step1(), it's not initialized
> on a new context when the
> sanity check happens in
> digestmd5_server_mech_step2(). So on the first run
> on
> a new context, text->realm[0] is always == 0.
>
> Thus it would not make sense to fail on that. This
> only makes sure that a
> context is not reused on a different realm.
>
> Cheers,
> Kai
>
> --
> Kai Blin, <blin At gmx Dot net>
> WorldForge developer http://www.worldforge.org/
> Wine developer
> http://wiki.winehq.org/KaiBlin/
> --
> Ninjas and Pirates agree: Cowboys suck!
>
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
More information about the Cyrus-sasl
mailing list