Earlier this week, the Italian company known as Hacking Team experienced a breach, with more than 400GB of confidential company data made available to the public. The company was known for selling what it described as tools used to lawfully intercept communications that could be used by governments and law enforcement agencies. The company has stated they do not do business with oppressive countries.
Much of the leaked information covered Hacking Team’s business practices, which seemingly contradict their official statements on who they sell their products to. However, the leak also included the tools provided by the company to carry out attacks, including several exploits targeting Adobe Flash Player and Windows Kernel.
Since we have already discussed one of the Adobe Flash Player vulnerabilities, I decided to look into the Windows Kernel vulnerability. The vulnerability exists in the OpenType manager module (ATMFD.dll), which is provided by Adobe. The DLL is run in the kernel mode. An attacker can exploit the vulnerability to perform privilege escalation which can bypass the sandbox mitigation mechanism.
Looking into the vulnerability
The vulnerability‘s root cause is simple. When the application calls for some GDI API (e.g., GDI32!NamedEscape), it can specify which font driver can be used in the font processing. ATMFD.dll is one of the font drivers. While the module processes the font data, there exists a buffer underflow, which is caused by a signed number extending.
I have simplified the vulnerability below:
Figure 1. Simplified vulnerability code
In line 5, the code is signed extending. If i is 0x8000, then index will be 0xffff8000. The check in line 6 will be successful, because index has a very small value (negative value) from the signed number view. In line 8, index*2+6 will become a negative value, so buffer_base[index*2+6] will point to a position which is in front of the buffer_base.
The font buffer’s content can be prepared by an attacker, so that the vulnerability can be used to write controlled content to the position which is front of the input buffer.
Additional information about this leak and the other exploits can also be found in our entry, Unpatched Flash Player Flaw, More POCs Found in Hacking Team Leak. We will update this entry should any information be made available.
Timeline of posts related to the Hacking Team
DATE | UPDATE |
July 5 | The Italian company Hacking Team was hacked, with more than 400GB of confidential company data made available to the public. |
July 7 |
Three exploits – two for Flash Player and one for the Windows kernel—were initially found in the information dump. One of these [CVE-2015-5119] was a Flash zero-day. The Windows kernel vulnerability (CVE-2015-2387) existed in the open type font manager module (ATMFD.dll) and can be exploited to bypass the sandbox mitigation mechanism. The Flash zero-day exploit (CVE-2015-5119) was added into the Angler Exploit Kit and Nuclear Exploit Pack. It was also used in limited attacks in Korea and Japan. |
July 11 | Two new Flash zero-day vulnerabilities, CVE-2015-5122 and CVE-2015-5123, were found in the hacking team dump. |
July 13 | Further analysis of the hacking team dump revealed that the company used UEFI BIOS rootkit to keep their Remote Control System (RCS) agent installed in their targets’ systems. |
July 14 | A new zero-day vulnerability (CVE-2015-2425) was found in Internet Explorer. |
July 16 | On the mobile front, a fake news app designed to bypass Google Play was discovered. |
July 20 | A new zero-day vulnerability (CVE-2015-2426) was found in Windows, which Microsoft fixed in an out-of-band patch. |
July 21 | Analysis of the RCSAndroid spying tool revealed that Hacking Team can listen to calls and roots devices to get in. |
July 28 | A recent campaign compromised Taiwan and Hong Kong sites to deliver Flash exploits related to Hacking Team. |