CVE-2017-16245 & CVE-2017-16246
Earlier this year, Avecto published fixes for two vulnerabilities in our Defendpoint for Windows product that were responsibly disclosed to us by an Avecto partner, Nettitude, in late 2017. In this blog post I would like to share some details on the fixes that we produced and released.
For the protection of our customers, Avecto generally does not disclose, discuss, or confirm security issues until a full investigation is complete and any necessary patches or releases are available.
The vulnerabilities focus on approaches to bypass the application control capabilities of Defendpoint, by targeting a user mode hooking component that Avecto was reliant upon.
The first vulnerability, CVE-2017-16245, is based on using a technique called mutex squatting, which could be used to stop Defendpoint setting up user mode hooks in a process. After a short investigation, it was clear that this vulnerability was trivial for Avecto to fix; a simple change to our logic removed the need for a mutex and made it impossible to exploit using mutex squatting.
The second vulnerability, CVE-2017-16246, is focused on preventing communication between two Avecto components: a user mode hooking DLL and a SYSTEM service. As a Software Architect, this vulnerability is more interesting, and more challenging to resolve. There are several ways that the vulnerability could be exploited, which suggested that an architectural change was required. In designing a new solution, our technical considerations included:
Strategic suitability: any solution needed to fit our longer-term plans for Defendpoint and the direction that Microsoft is taking for Windows.
Retaining perspective: there are a lot of cases where user mode hooks are still suitable. For many features, and for many of our customers, Defendpoint enables additional functionality and there is no benefit to be gained from bypassing user mode hooks.
Scale of change: it was important that any changes that we made could be delivered quickly to ensure that our customers are protected as soon as possible.
Code quality: as developers, it was vital for us that the solution did not make it harder for us to maintain Defendpoint or add new features in the future. Ideally, we wanted to improve our code and architecture to make it easier to do these things.
Not just fixing the vulnerability: it was important that we didn’t just stop one approach to bypassing user mode application control hooks, but prevented any code running in user mode from being able to bypass application control.
I am delighted with the solution that we have implemented, which is based on the use of kernel mode callbacks to intercept process creation for the purposes of application control. Defendpoint still uses user mode hooks for features where it is suitable to do so.
In responsibly disclosing these vulnerabilities, Nettitude have allowed Avecto to enhance our solution and leave our customers with a more secure solution. This is a very positive outcome for all concerned.
For existing customers, the knowledge base article on Connect provides further details about the vulnerabilities and the available software upgrades.
Recommended next steps:
A fix is available with the release of Defendpoint 4.4 SR6 and 5.1 SR1 which we have provided for any customers that will be rolling out the upgraded software. The above CVE numbers will be clearly identified in the release notes.
We would advise that you upgrade at your earliest opportunity if you meet the following criteria:
- You use the application control feature of Defendpoint
- You have a requirement or policy to block certain applications from launching
Download the software here: Login to Connect