Core Security
info@coresecurity.com  | +1.617.399.6980 | Contact Us   Core Blog Core Blog Twitter LinkedIn youtube
Advisories
SHARE
Core Security - CoreLabs
Adobe Director DIRAPI.DLL Memory Corruption Vulnerability

1. Advisory Information

Title: Adobe Director DIRAPI.DLL Memory Corruption Vulnerability
Advisory Id: CORE-2010-0405
Advisory URL: http://www.coresecurity.com/content/adobe-director-memory-corruption
Date published: 2010-05-11
Date of last update: 2010-05-11
Vendors contacted: Adobe
Release mode: Coordinated release

2. Vulnerability Information

Class: Input validation error [CWE-20]
Impact: Denial of service
Remotely Exploitable: Yes (client-side)
Locally Exploitable: No
CVE Name: CVE-2010-0128
Bugtraq ID: N/A

3. Vulnerability Description

Adobe Director is prone to a memory corruption vulnerability due to an invalid write in dirapi.dll, when opening a malformed .dir file. This vulnerability could be used by a remote attacker to execute arbitrary code, by enticing the user of Adobe Director to open a specially crafted file.

4. Vulnerable packages

  • Adobe Director 11.5
  • Adobe Director 11 (Version: 11.0.0.426)

5. Non-vulnerable packages

  • Adobe Director 11.5 (Version: 11.5.7.609)

6. Solutions and Workarounds

See the Adobe Security Bulletin [1] available at http://www.adobe.com/go/apsb10-12/.

7. Credits

This vulnerability was discovered and researched by Nahuel Riva, from Core Security Technologies. Additional research was performed by Francisco Falcon. Publication was coordinated by Jorge Lucangeli Obes.

8. Technical Description

The vulnerability occurs at offset 0x68174813 of the dirapi.dll module of Adobe Director. Improper validation of the input data leads to a crash in the memory write instruction. This vulnerability could result in arbitrary code execution, although it was not verified.

[+ full code]

The vulnerable module dirapi.dll takes the two-byte word at offset 0x41B82 of the .dir file, and uses it as a counter for a loop that performs memory writes. The value is used without being verified:

[+ full code]
If the word at offset 0x41B82 has a sufficiently high value, the application will loop more times than it should, thus corrupting memory beyond limits. Moreover, after reading said word, this value is sign-extended into a four-byte dword, using the MOVSX instruction. If the most significant bit of the word is set, the resulting dword will be of the form 0xFFFFXXXX, thus being a negative number if interpreted as a signed integer, and a very large number if interpreted as an unsigned integer:

[+ full code]
When the dword is negative, the application does not enter the loop. However, the application does calculate a value using this dword, which can be controlled by the attacker.

[+ full code]
This value is stored and later, after stepping over the loop, added to a pointer. This pointer is subsequently used as a destination operand for a memory write instruction inside another loop, thus making the attacker able to partially control the destination instruction of the memory copy, allowing for memory corruption.

[+ full code]

9. Report Timeline

  • 2010-04-14: Vendor contacted.
  • 2010-04-14: Vendor requests PoC file.
  • 2010-04-14: Core replies with the PoC file and the draft advisory.
  • 2010-04-14: Adobe replies that will investigate the issue and sets a preliminary release date for June/July.
  • 2010-04-15: Core agrees with the preliminary release date.
  • 2010-04-28: Core requests an update on the situation, and asks whether Adobe was able to confirm if the bug is exploitable.
  • 2010-04-28: Adobe replies that the issue was investigated and is scheduled to be fixed in the next release of Adobe Shockwave Player, planned for May; they did not carry out further exploitability research.
  • 2010-04-28: Core requests a specific publication date for the fix.
  • 2010-05-06: Adobe informs Core that the release date for the fix has been set to May 11th.
  • 2010-05-07: Core asks Adobe if they want to provide the text for the "Solutions and Workarounds" section of the advisory.
  • 2010-05-07: Adobe replies with the text for the "Solutions and Workarounds" section of the advisory.
  • 2010-05-11: Advisory published.
  • 2010-07-01: Additional research performed.

10. References

[1] Adobe Security Bulletin http://www.adobe.com/go/apsb10-12/.

11. About CoreLabs

CoreLabs, the research center of Core Security Technologies, is charged with anticipating the future needs and requirements for information security technologies. We conduct our research in several important areas of computer security including system vulnerabilities, cyber attack planning and simulation, source code auditing, and cryptography. Our results include problem formalization, identification of vulnerabilities, novel solutions and prototypes for new technologies. CoreLabs regularly publishes security advisories, technical papers, project information and shared software tools for public use at: http://www.coresecurity.com/corelabs.

12. About Core Security Technologies

Core Security Technologies develops strategic solutions that help security-conscious organizations worldwide develop and maintain a proactive process for securing their networks. The company's flagship product, CORE IMPACT, is the most comprehensive product for performing enterprise security assurance testing. CORE IMPACT evaluates network, endpoint and end-user vulnerabilities and identifies what resources are exposed. It enables organizations to determine if current security investments are detecting and preventing attacks. Core Security Technologies augments its leading technology solution with world-class security consulting services, including penetration testing and software security auditing. Based in Boston, MA and Buenos Aires, Argentina, Core Security Technologies can be reached at 617-399-6980 or on the Web at http://www.coresecurity.com.

13. Disclaimer

The contents of this advisory are copyright (c) 2010 Core Security Technologies and (c) 2010 CoreLabs, and are licensed under a Creative Commons Attribution Non-Commercial Share-Alike 3.0 (United States) Licence: http://creativecommons.org/licenses/by-nc-sa/3.0/us/.

14. PGP/GPG Keys

This advisory has been signed with the GPG key of Core Security Technologies advisories team, which is available for download at http://www.coresecurity.com/files/attachments/core_security_advisories.asc.

Related Content