Hi everybody.
I was asked whether my Android application is vulnerable to the most recent 
OpenSSL vulnerabilities, especially heartbleed and the
latest Man-in-the-middle attacks which rely on the client AND the backend 
being vulnerable: CVE-2014-0224 [1]. CVE-2014-0224 has been fixed in 
OpenSSL 1.0.1h.

I sometimes transmit sensitive data over SSL to our servers, that's why 
this topic is important for me. I use the WebView, but also use 
javax.net.ssl.* to connect to my servers via SSL.

I was searching in the web to find out more about how Android establishes 
an SSL connection in the different Android versions and
whether it relies on OpenSSL (and on which version). I did not find a lot 
discussions so I went into the code a bit. These are my results: Could you 
please confirm, correct me, or point to places where to find further 
information:

For connections made via Android code via javax.net.ssl.*:
* Android uses libcrypto.so and libssl.so
* Libssl.so is basically built from OpenSSL, which is committed into the 
Android source code in platform/external/openssl.git [2]
* I don't see the latest CVE-2014-0224 fixes in place here. Still, OpenSSL 
1.0.1g is used.

Android 4.0.4 : OpenSSL 1.0.0e
Android 4.1.1 : OpenSSL 1.0.1c
Android 4.1.2 : OpenSSL 1.0.1c (heartbeats disabled)
Android 4.2.2 : OpenSSL 1.0.1c
Android 4.3   : OpenSSL 1.0.1e
Android 4.4.2 : OpenSSL 1.0.1e
Android 4.4.3 : OpenSSL 1.0.1e
GIT (07.01.14)  : OpenSSL 1.0.1f
GIT (09.04.14)  : OpenSSL 1.0.1g

For Chromium WebView (used since Android 4.4):
* OpenSSL is checked into the Android source code a second time 
in platform/external/chromium_org/third_party/openssl [3]
* The latest OpenSSL fixes (CVE-2014-0224) have been checked in 
for Chromium on the 5th of June 2014. [4]

For the "Classic" Android Webview:
* Does the WebView rely on libssl.so as well? Where is the code for the 
classic WebView?
* Will it still receive security fixes?

Can I assume the following:
All Android Apps that use the WebView (except if Chromium WebView is used 
with a version after 5th of June) or use the javax.net.ssl.HttpsConnection 
are vulnerable to Man-in-the-Middle attacks à la CVE-2014-0224 if such apps 
connect to a server that is also vulnerable?

Help from the community and statements from the Android dev team are very 
much appreciated.
Thanks and best regards,
Merlin

[1] https://www.openssl.org/news/secadv_20140605.txt
[2] https://android.googlesource.com/platform/external/openssl.git/
[3] 
https://android.googlesource.com/platform/external/chromium_org/third_party/openssl/+/android-4.4.3_r1/openssl/
[4] 
https://android.googlesource.com/platform/external/chromium_org/third_party/openssl/+/254cbf8d28033e47a3faf8d2a6125d0e45bbea45

-- 
You received this message because you are subscribed to the Google Groups 
"Android Security Discussions" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to android-security-discuss+unsubscr...@googlegroups.com.
To post to this group, send email to android-security-discuss@googlegroups.com.
Visit this group at http://groups.google.com/group/android-security-discuss.
For more options, visit https://groups.google.com/d/optout.

Reply via email to