Author Archives: Monier Shokry

Monier Shokry


Heartbleed is not problem with SSL/TLS protocol, it’s a security bug in the open-source library openSSL library Which is wildly used to implement the internet transportation layer security (TLS) protocol. This bug is considered as Buffer-over-read where software allows more data to be read than allowed  which means it allows stealing the information protected, under normal conditions, by the SSL/TLS encryption used to secure the Internet .

  • Why it’s serious?
  • How to detect if you are affected ?
  • How common are the vulnerable OpenSSL versions?
  • How about operating systems?
  • How to fix it?
  • References.

Why it’s serious?

The Heartbleed bug allows anyone on the Internet to read the memory of the systems protected by the vulnerable versions of the OpenSSL software. This compromises the secret keys used to identify the service providers and to encrypt the traffic, the names and passwords of the users and the actual content. This allows attackers to eavesdrop on communications, steal data directly from the services and users and to impersonate services and users.

How common are the vulnerable OpenSSL versions?

The vulnerable versions have been out there for over two years now and they have been rapidly adopted by modern operating systems. A major contributing factor has been that TLS versions 1.1 and 1.2 came available with the first vulnerable OpenSSL version (1.0.1) and security community has been pushing the TLS 1.2 due to earlier attacks against TLS.

How about operating systems?

Some operating system distributions that have shipped with potentially vulnerable OpenSSL version:

  • Debian Wheezy (stable), OpenSSL 1.0.1e-2+deb7u4
  • Ubuntu 12.04.4 LTS, OpenSSL 1.0.1-4ubuntu5.11
  • CentOS 6.5, OpenSSL 1.0.1e-15
  • Fedora 18, OpenSSL 1.0.1e-4
  • OpenBSD 5.3 (OpenSSL 1.0.1c 10 May 2012) and 5.4 (OpenSSL 1.0.1c 10 May 2012)
  • FreeBSD 10.0 - OpenSSL 1.0.1e 11 Feb 2013
  • NetBSD 5.0.2 (OpenSSL 1.0.1e)
  • OpenSUSE 12.2 (OpenSSL 1.0.1c)

Operating system distribution with versions that are not vulnerable:

  • Debian Squeeze (oldstable), OpenSSL 0.9.8o-4squeeze14
  • SUSE Linux Enterprise Server
  • FreeBSD 8.4 - OpenSSL 0.9.8y 5 Feb 2013
  • FreeBSD 9.2 - OpenSSL 0.9.8y 5 Feb 2013
  • FreeBSD 10.0p1 - OpenSSL 1.0.1g (At 8 Apr 18:27:46 2014 UTC)
  • FreeBSD Ports - OpenSSL 1.0.1g (At 7 Apr 21:46:40 2014 UTC)

How to detect if you are affected?

 You can test if you are vulnerable by requesting a heartbeat response with a large response. If the server replies your SSL service is probably vulnerable. You can use any of the tests below:

How to fix it?

  • Upgrade the OpenSSL version to 1.0.1g


  • Request revocation of the current SSL certificate
  • Regenerate your private key
  • Request and replace the SSL certificate




Internet Explorer 11 (IE11) :

Internet Explorer 11 is a version of Internet Explorer, a web browser, by Microsoft. It was officially released on 17 October 2013 for Windows 8.1 and on 7 November 2013 for Windows 7. I am going to explain two issues usually face developers.

The First issue is about Internet Explorer updated version 11.0.9600.16476, and the second problem is faced on all versions of IE11.

First issue on Internet Explorer 11.0.9600.16476:

First download and setup Internet Explorer 11 for windows 7. After setup, you will find that IE is of the following version 11.0.9600.16428. This is the original release of IE; however, if you do any machine updates or your automatic updater is on, your browser will be updated to 11.0.9600.16476.

This version of internet explorer has very big problem with JQuery ajax request; it sends the request without parameters. This might cause serious problems like null pointer exception or error 500 Internal server error due to null parameters.

Note: this issue happened with $.ajax or $.post and this is experimented on Facebook "see more" and messages and w3schools : 

Solution: you have two solution and I recommend the second one:

  1.  Pass parameters in URL like : /index.html?id=5&name=Bob instead of sent it in json data:{id:5,name:’Bob’}. But this solution is not effective because if you make post request you don’t need to send parameters in URL, also imagine you work on a website that work 100 ajax post you will find yourself in great need to change your post URL like: /index.html?id=5&name=Bob
  2. Update your machine so that your IE version will become 11.0.9600.16476IS. This version works properly without problems.

Second issue on Internet Explorer 11.0:

Starting with IE11, the navigator object supports plugins and mimeTypesproperties. In addition, the window.ActiveXObject property is hidden from the DOM (This means you can no longer use the property to detect IE11.) .

As we know in old versions of IE we use something like this to detect if browser is IE

if (window.ActiveXObject){

this.isIEBrowser = true;


This statement will return undefined due to window.ActiveXObject property being hidden from the DOM .


To detect Internet Explorer, condition must be changed to

if (window.ActiveXObject !== undefined){

this.isIEBrowser = true;