header-logo
Suggest Exploit
explore-vulnerabilities

Explore Vulnerabilities

Version
Year

Explore all Exploits:

GDI Bitmap Object Reference Counting Vulnerability

Using a series of calls, an attacker is able to free the bitmap object, while a reference to this object still exists in the trigger process after killing the first notepad process. At this time, the attacker is able to replace the freed object in memory. However, another free is triggered when quitting the trigger process, which will decrement the reference counter on the freed or replaced object, either modifying heap metadata or freeing the object which was allocated in the place of the original bitmap object.

Null Pointer Issue Exploitable on Win 7 32-bit

The trigger creates a new window station which is freed during the process clean up. Through the clipboard operations the window's last reference is hold by the clipboard which is freed during the clean up of the window station object. This will also result in destroying the window object at a time where _gptiCurrent (threadinfo) is already set to null. This is used in xxxDestroyWindow in multiple locations. Depending on the window type it is potentially possible to trigger different kinds of crashes, this one demonstrates a write to a chosen memory location.

Creating a device context with the flag (DCX_NORESETATTRS) and selecting a brush object into the device context

Creating a device context with the flag (DCX_NORESETATTRS) and selecting a brush object into the device context will result in the brush being freed on process exit without the reference to the object being cleared. The PoC consists of two files (prime304.cpp and poc304.cpp). poc304 will execute prime304, which triggers the issue and allows poc304 to retrieve a handle to the device context with the pointer to the freed object. We can confirm this by requesting the handle for the brush object from the device context, resulting in reading freed memory. In some cases the issue leads to memory corruption when for example another object is allocated into the space of the free brush object (see attached crash logs for examples).

Null Pointer Issue on 32-bit Windows

This issue is a null pointer issue affecting 32-bit Windows versions. The offset is from adding onto another offset which isn't quite zero, so it is not 100% certain that it is just a null pointer. However, it was not possible to influence the values. A proof of concept is available which sets EIP to 0xdeadbeef.

Pool Buffer Overflow in win32k!vSolidFillRect

The PoC triggers a pool buffer overflow in win32k!vSolidFillRect. When using Special Pool we get the crash immediately on the overwrite. Without Special Pool we often get a crash in the same function, but sometimes it crashes in a different function (similar to another issue, however with a different offset). This might be a result of the memory corruption or an out-of-memory condition before the overflow is triggered.

Recent Exploits: