oss-sec mailing list archives
Re: CVE Request: libesmtp does not check NULL bytes in commonName
From: Brian Stafford <brian () stafford uklinux net>
Date: Thu, 11 Mar 2010 17:02:54 +0000
Ludwig Nussel wrote:
Aargh! I'm half way down this discussion and already I'd prefer to stick needless in my eyes. So far though consensus seems to be RFC 2818 rules for wildcards. I notice some of the test patterns suggested would not work in libESMTP as it stands.Brian Stafford wrote:[...]I find myself coming back to RFC 2818 being a reasonable choice since it is flexible and (almost) clear, and since HTTPS, as a major user of TLS, is, I assume, well analysed for security implications wrt certificate validation.More fun: https://bugzilla.mozilla.org/show_bug.cgi?id=159483
Is it the case that for STARTTLS in SMTP what we are really interested in is encrypting the data on the wire and authentication is only of secondary importance?Encryption without authentication makes you prone to MITM.
Indeed.
I'm happy that the patch jumps through the right hoops though I'm rather out of touch with the OpenSSL APIs these days so there is a certain element of trust here :-)Do we know what the best current practice is among CAs when it comes to issuing certificates for STARTTLS?The most common implementation is to just allow the simple form *.something so I'd assume that other patterns are rare in the wild. The last commenter in the aforementioned Mozilla bug says that *.*.appspot.com is actually used by Google though. Anyways, the matching function in libesmtp certainly is good enough. I was just surprised that wildcards at the right hand side are allowed. What about the actual patch I sent though? :-)
However I did realise there is another problem with the wildcard match. Currently match_component() just steps over text when it sees the '*', however it should really be like a character class i.e. the RE '[-A-Za-z0-9]*'. Currently * will match any old junk in the hostname including punctuation and control codes which gives a possibility of attacking a system using specially crafted hostnames. I shall modify match_component() to deal with this and other issues that may be relevant, after I've waded through the rest of the mozilla thread.
cu Ludwig
Rergards Brian
Current thread:
- CVE Request: libesmtp does not check NULL bytes in commonName Kees Cook (Mar 03)
- Re: CVE Request: libesmtp does not check NULL bytes in commonName Jan Lieskovsky (Mar 09)
- Re: CVE Request: libesmtp does not check NULL bytes in commonName Ludwig Nussel (Mar 10)
- Re: CVE Request: libesmtp does not check NULL bytes in commonName Brian Stafford (Mar 10)
- Re: CVE Request: libesmtp does not check NULL bytes in commonName Ludwig Nussel (Mar 11)
- Re: CVE Request: libesmtp does not check NULL bytes in commonName Brian Stafford (Mar 11)
- Re: CVE Request: libesmtp does not check NULL bytes in commonName Ludwig Nussel (Mar 11)
- Re: CVE Request: libesmtp does not check NULL bytes in commonName Brian Stafford (Mar 11)
- Re: CVE Request: libesmtp does not check NULL bytes in commonName Brian Stafford (Mar 15)
- Re: CVE Request: libesmtp does not check NULL bytes in commonName Ludwig Nussel (Mar 16)
- Re: CVE Request: libesmtp does not check NULL bytes in commonName Brian Stafford (Mar 16)
- Re: CVE Request: libesmtp does not check NULL bytes in commonName ArkanoiD (Mar 16)
- Re: CVE Request: libesmtp does not check NULL bytes in commonName Ludwig Nussel (Mar 16)
- Re: CVE Request: libesmtp does not check NULL bytes in commonName Peter Sylvester (Mar 16)
- Re: CVE Request: libesmtp does not check NULL bytes in commonName ArkanoiD (Mar 16)
- Re: CVE Request: libesmtp does not check NULL bytes in commonName Ludwig Nussel (Mar 17)
- Re: CVE Request: libesmtp does not check NULL bytes in commonName Ludwig Nussel (Mar 10)
- Re: CVE Request: libesmtp does not check NULL bytes in commonName Brian Stafford (Mar 16)
- Re: CVE Request: libesmtp does not check NULL bytes in commonName Brian Stafford (Mar 17)
- Re: CVE Request: libesmtp does not check NULL bytes in commonName Jan Lieskovsky (Mar 09)