*** This bug is a security vulnerability ***

Public security bug reported:

Recently, we are trying to find SSL security problems by static
analysis. For example, as we all know, Hostname verification is an
important step when verifying X509 certificates, however, people tend to
miss the step or to misunderstand the APIs when using SSL/TLS, which
might cause severe man in the middle attack and break the entire TLS
mechanism. And static analysis is a way of finding whether the APIs are
called correctly.

Now, we find some SSL problems in epic4, the following is details:

-----------------------------------------------------------------------------
file : epic4/epic4-2.10.1/source/ssl.c
-----------------------------------------------------------------------------
function : SSL_FD_init
-----------------------------------------------------------------------------
SSL method : \
-----------------------------------------------------------------------------
call SSL_CTX_set_verify() : NOT FOUND
-----------------------------------------------------------------------------
Have SSL_CTX_set_verify ( SSL_set_verify) callback : NO
-----------------------------------------------------------------------------
call SSL_get_peer_certificate(): YES (but NO X509 suite API for custom 
verification)
-----------------------------------------------------------------------------
call SSL_get_verify_result(): NO
-----------------------------------------------------------------------------

According to the above result, we think the SSL connection in epic4 is
not secure.

More specifically , we can take function SSL_CTX_set_verify() for
example, when using OPENSSL, if we call SSL_CTX_set_verify(ssl_ctx,
SSL_VERIFY_NONE, null), we should verify the certificate by calling the
function SSL_get_peer_certificate() to get the certificate at first.
Then use X509 APIs or self-define function to verify the certificate we
get. If the source code does not match this model, then we can deduce
this code is vulnerable. And other APIs have similar problems.

To verify the result we make, we attack the software manually.

一.Hostname verification
1. change /etc/hosts in order to simulate the DNS hijack
    46.137.23.30 attacker.com
   (46.137.23.30 is a normal irc server)

2. #rainkin@rainkin:~$ epic4 rainkin attacker.com:6697:::OPN:irc-ssl

3. result : succeed!!!

The fetch succeeded, indicating the software didn't check the hostname
against the signee of the certificate.

二. Also for expired time check,
1. change the system time to 2200 to guarantee the certificate to be expired.

2. run epic4 to connect to a normal irc server.

3. result:succeed!!

The fetch succeeded again and no warning was given, indicating the
software didn't check whether the certificate expired or not.

PS: I have saved the SSL connection Wireshark packages, and upload these files.
for more information, you can see the paper: 
http://people.stfx.ca/x2011/x2011ucj/SSL/p38-georgiev.pdf
and more details you can contact with us, we will be very glad for your 
responce.

Thanks.

** Affects: epic4 (Ubuntu)
     Importance: Undecided
         Status: New

** Attachment added: "wireshark ssl conneting packages"
   https://bugs.launchpad.net/bugs/1380453/+attachment/4233644/+files/epic4.zip

** Information type changed from Private Security to Public Security

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1380453

Title:
  epic4 have some SSL security problems

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/epic4/+bug/1380453/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to