RejectedSoftware Forums

Sign up

[security] Host name/IP not verified against SSL certificates.

Hi all,

I just wanted to make sure everybody is aware of this critical bug in the SSL client implementations (HTTPS, SMTP/TLS, …): https://github.com/rejectedsoftware/vibe.d/issues/469

It results in the connection being vulnerable to man-in-the-middle attacks, as any valid certificate will be accepted by the client code, even if it is not issued for the correct host name/IP.

Best,
David

(As I'm not aware of any production vibe.d deployments where this could be an exploitable issue yet, I chose to immediately publish this. If anybody wants me to follow usual Responsible Disclosure procedures in the future, please let me know, although this should also be documented on vibed.org.)

Re: [security] Host name/IP not verified against SSL certificates.

Am 17.01.2014 16:09, schrieb David Nadlinger:

Hi all,

I just wanted to make sure everybody is aware of this critical bug in the SSL client implementations (HTTPS, SMTP/TLS, …): https://github.com/rejectedsoftware/vibe.d/issues/469

It results in the connection being vulnerable to man-in-the-middle attacks, as any valid certificate will be accepted by the client code, even if it is not issued for the correct host name/IP.

Best,
David

(As I'm not aware of any production vibe.d deployments where this could be an exploitable issue yet, I chose to immediately publish this. If anybody wants me to follow usual Responsible Disclosure procedures in the future, please let me know, although this should also be documented on vibed.org.)

I'm aware of this issue and should indeed (have) add(ed) a big
exclamation mark somewhere right from the start, mentioning that this
isn't implemented. It's one of the things that I didn't tackle yet,
because it wasn't important for my own applications and it doesn't
impact the usual server applications, so I viewed it more as a missing
feature rather than a security issue.

It should also be noted that not only host verification must be
performed, but also the certificate chain needs to be checked against
some root CA list (on Windows, is there anything available or is it
necessary to ship an own list?).

This will have high priority in my task queue.

Re: [security] Host name/IP not verified against SSL certificates.

On 2014-01-17 10:43, Sönke Ludwig wrote:

Am 17.01.2014 16:09, schrieb David Nadlinger:

Hi all,

I just wanted to make sure everybody is aware of this critical bug in
the SSL client implementations (HTTPS, SMTP/TLS, …):
https://github.com/rejectedsoftware/vibe.d/issues/469

It results in the connection being vulnerable to man-in-the-middle
attacks, as any valid certificate will be accepted by the client code,
even if it is not issued for the correct host name/IP.

Best,
David

(As I'm not aware of any production vibe.d deployments where this
could be an exploitable issue yet, I chose to immediately publish
this. If anybody wants me to follow usual Responsible Disclosure
procedures in the future, please let me know, although this should
also be documented on vibed.org.)

I'm aware of this issue and should indeed (have) add(ed) a big
exclamation mark somewhere right from the start, mentioning that this
isn't implemented. It's one of the things that I didn't tackle yet,
because it wasn't important for my own applications and it doesn't
impact the usual server applications, so I viewed it more as a missing
feature rather than a security issue.

It should also be noted that not only host verification must be
performed, but also the certificate chain needs to be checked against
some root CA list (on Windows, is there anything available or is it
necessary to ship an own list?).

This will have high priority in my task queue.

I think you're going to need this for windows

https://code.google.com/p/kdlib/source/browse/trunk/imports/c/windows/wincrypt.d?spec=svn9&r=9

In particular, you need CertGetCertificateChain

I'd just rip off the IsCertificateValid from here:

http://www.helplib.net/pdf_2b55841f6e72b0fb29001db8f0f1b532.pdf

I just realized I need this too ;)