TippingPoint Zero Day Initiative
 

Apple Safari SVG Set.targetElement() Memory Corruption Vulnerability

ZDI-09-034: June 8th, 2009

CVE ID

Affected Vendors

Affected Products

TippingPoint™ IPS Customer Protection

TippingPoint IPS customers are protected against this vulnerability by Digital Vaccine protection filter ID 6569. For further product information on the TippingPoint IPS:

Vulnerability Details

This vulnerability allows remote attackers to execute arbitrary code on vulnerable installations of Apple Safari. User interaction is required to exploit this vulnerability in that the target must visit a malicious page.

The specific flaw exists in the garbage collection of JavaScript set elements in WebCore. When an SVG set object is appended to an SVG marker element that is dereferenced, calls to the targetElement attribute will fail to reference count the marker element. When the set element is appended to another object, subsequent calls to the targetElement attribute will result in a heap corruption which can be leveraged to execute arbitrary code under the context of the current user.

Vendor Response

Apple has issued an update to correct this vulnerability. More details can be found at:

Disclosure Timeline

    2008-11-10 - Vulnerability reported to vendor
    2009-06-08 - Coordinated public release of advisory

Credit

This vulnerability was discovered by:
    Anonymous