A vulnerability allows remote attackers to execute arbitrary code on vulnerable installations of the Adobe Shockwave Player. User interaction is required to exploit this vulnerability in that the target must visit a malicious page or open a malicious file. The specific flaw exists within the DIRAPI.dll module distributed with the player. While parsing a director movie (.dir or .dcr) the code trusts the specified size of the IFWV chunk and uses it within a calculation to determine another offset within the file. By setting it to 0, the code jumps to the wrong location within the file. While parsing data at the new location, the code uses a value as a loop counter. Within the loop, the code copies data to a heap buffer. By crafting a file with a large enough size, this loop can be forced to corrupt memory. A remote attacker can abuse this logic to execute arbitrary code under the context of the user running the application.
7040bca9eccf6a2f720afeeef790fed7dd9623170dc56e8f376e1c3cd7629549
TPTI-11-01: Adobe Shockwave dirapi.dll IFWV Trusted Offset Remote Code Execution Vulnerability
http://dvlabs.tippingpoint.com/advisory/TPTI-11-01
February 8, 2011
-- CVE ID:
CVE-2010-4188
-- CVSS:
9, (AV:N/AC:L/Au:N/C:P/I:P/A:C)
-- Affected Vendors:
Adobe
-- Affected Products:
Adobe Shockwave Player
-- TippingPoint(TM) IPS Customer Protection:
TippingPoint IPS customers have been protected against this
vulnerability by Digital Vaccine protection filter ID 10817.
For further product information on the TippingPoint IPS, visit:
http://www.tippingpoint.com
-- Vulnerability Details:
This vulnerability allows remote attackers to execute arbitrary code on
vulnerable installations of the Adobe Shockwave Player. User interaction
is required to exploit this vulnerability in that the target must visit
a malicious page or open a malicious file.
The specific flaw exists within the DIRAPI.dll module distributed with
the player. While parsing a director movie (.dir or .dcr) the code
trusts the specified size of the IFWV chunk and uses it within a
calculation to determine another offset within the file. By setting it
to 0, the code jumps to the wrong location within the file. While
parsing data at the new location, the code uses a value as a loop
counter. Within the loop, the code copies data to a heap buffer. By
crafting a file with a large enough size, this loop can be forced to
corrupt memory. A remote attacker can abuse this logic to execute
arbitrary code under the context of the user running the application.
-- Vendor Response:
Adobe has issued an update to correct this vulnerability. More
details can be found at:
http://www.adobe.com/support/security/bulletins/apsb11-01.html
-- Disclosure Timeline:
2010-11-15 - Vulnerability reported to vendor
2011-02-08 - Coordinated public release of advisory
-- Credit:
This vulnerability was discovered by:
* Aaron Portnoy and Logan Brown, TippingPoint DVLabs