[erlang-bugs] Crash in SSL

Ingela Anderton Andin ingela.anderton.andin@REDACTED
Thu Aug 23 12:11:48 CEST 2012


Hi!

Daniel Luna wrote:
> Hi Kenneth,
>
> Long time, no see.
>
> So to me it looks like this is a combination of issues.  It would make
> me very happy if the OTP team could state the intention to fix these
> issues in the near future.
>   
We will do something about it in a near future.
> 1. The Erlang ssl module verifies the validity of the certificate even
> when {verify, verify_none} has been set.  This could most easily be
> fixed by a change to the documentation about what it means to use the
> verify_none verification.
>
>   
It does not verify the validity of the certificate in verify_none mode, 
it however unpacks (decodes)
the certificate using the ASN-1 spec, we still need to go through the 
certificate path to extract the public key.
The thing that happens is that your certificate for some reason violates 
the ASN-1 spec, however in practice
the value is an allowed one and we could make a workaround to allow it.

> 2. The ssl module *crashes* on bad data instead of returning {error
> Error} or {ok, Conn} (note that this crash happens for {verify,
> verify_none} which should give us a connection back even if the
> certificate is bad)
>   
It would have if there had been a certificate path validation error,  
e.i. that the certificate was
bad in that sense. Your certificate is not on the correct format for a 
certificate and that is the
problem.
> 3. A gen_fsm dies in the background (with the main issue of clobbering
> our error logs, and hiding real errors behind all the noise)
>
>   
I agree that we could make it go down gracefully if the certificate can 
not be decoded,
we will fix that.

> 4. The Erlang ssl module is in disagreement with Chrome and Firefox
> (and probably other browsers) about what is a valid certificate
>
> 1, 2, and 3 are definitely bugs.  I personally think 4 is a bug too,
> but am willing to listen to arguments stating otherwise.
> (As a side note I don't see how the utf8-encoded string "US" is in 
> any  way bitwise different from the ASCII-encoded string "US" and I don't
> manage to find out if there is a type tag somewhere)
>   
That other implementations relax the spec requirements  intentionally 
or  unintentionally
does not make your certificate correct, however we think that we need to 
be practical about
this and make a workaround so that we accept such certificates as they 
are conceptually
correct (and accepted by other big players) but technically wrong.
Regards Ingela  Erlang/OTP team - Ericsson AB



More information about the erlang-bugs mailing list