header-logo
Suggest Exploit
explore-vulnerabilities

Explore Vulnerabilities

Version
Year

Explore all Exploits:

WebKitGTK+ FilterOperation UAF Vulnerability

The compositor thread in WebKitGTK+ might alter a FilterOperation object's reference count variable at the same time as the main thread. Then the reference count corruption might lead to a UAF condition. Reproduction case involves creating an iframe, cloning a style element, and creating a div element with a filter applied to it. The div element is then cloned and appended to the iframe's body multiple times. This can lead to a UAF condition.

Crash in JavaScriptCore

When fuzzing JavaScriptCore, an exploit was discovered which crashes jsc from current HEAD and release. The exploit involves a watchpoint being triggered, followed by a GC which frees the jettisoned CodeBlock. A second watchpoint is then triggered, jettisoning the same CodeBlock again and thus crashing when touching the already freed memory. The exploit also inserts elements into the Array prototype so the first loop runs longer in the second invocation.

PID Reuse Attack

Privileged IPC services in userspace often have to verify the security context of their client processes (such as whether the client is sandboxed, has a specific entitlement, or is signed by some code signing authority). This, in turn, requires a way to identify a client process. If PIDs are used for that purpose, the following attack becomes possible: The (unprivileged) client process sends an IPC message to a privileged service, the client process terminates and spawns a privileged process into its PID, the privileged service performs the security check, but since the PID has been reused it performs it on the wrong process. This attack is feasible because the PID space is usually fairly small (e.g. 100000 for XNU) and PIDs can thus be wrapped around relatively quickly (in step 2 or up front). As such, on darwin platforms the recommended way to identify IPC clients for the purpose of performing security checks in userspace is to rely on the audit_token.

JavaScriptCore Structure Transition Cache Abuse

A vulnerability in JavaScriptCore allows an attacker to abuse the structure transition cache to gain arbitrary read/write access to memory. The vulnerability occurs when an array prototype chain contains an object with indexed accessors. This causes the engine to switch the indexing mode of all arrays to ArrayWithSlowPutStorage, which allows an attacker to bypass the type inference mechanism and write arbitrary values to memory.

IonMonkey Type Inference Inconsistency

A bug in IonMonkey leaves type inference information inconsistent, which in turn allows the compilation of JITed functions that cause type confusions between arbitrary objects. This can be exploited by creating a JavaScript object with a prototype, then changing the prototype and assigning a new property to the object. The new property is then assigned a value that is the same as the object itself, which causes the type inference information to become inconsistent. This can lead to a crash or other unexpected behavior.

Recent Exploits: