<<< Date Index >>>     <<< Thread Index >>>

EEYE: Microsoft WordPerfect Document Converter Buffer Overflow

Microsoft WordPerfect Document Converter Buffer Overflow

Release Date:
September 3, 2003

Reported Date:
May 6, 2003

Medium (Code Execution with User Interaction)

Systems Affected:
Microsoft Office 97, 2000, XP
Microsoft Word 98 (J)
Microsoft FrontPage 2000, 2002
Microsoft Publisher 2000, 2002
Microsoft Works Suite 2001, 2002, 2003


The Microsoft Word "WordPerfect" document converter included in Microsoft
Word has a buffer overflow bug. If the WordPerfect document converter is
installed (by default it is in Office 2000) and a malicious .doc file is
opened, there exists the ability for an attacker to execute arbitrary code.

This buffer overflow bug can also happen within Internet Explorer, because
Microsoft Word is executed automatically as a helper-application when a .doc
file is received.

This buffer overflow overwrites the return address in the stack area. We
confirmed that arbitrary code can be executed by using this buffer overflow

Technical Description:

While parsing a WordPerfect file, the WordPerfect converter copies data
stored in the .doc file to a local buffer. If we modify some bytes of the
.doc file, we can specify the data offset and data size. The WordPerfect
converter doesn't properly check the size of the data contained in the .doc
file, and tries to copy all of the data from the file to the local buffer
allocated in the stack area. This results in a typical buffer overflow
vulnerability in which we can set any value for EIP.

The process for making the .doc file to confirm this buffer overflow is as

[Technical data may wrap in eMail, please visit our website.]

1. Open Word and save an empty document as wordPerfect 5.0 file.
2. Open the .doc file in a binary editor. You'll be able to confirm the
following dump image:

 ADDRESS   00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
 00000000  FF 57 50 43 6D 02 00 00 01 0A 00 00 00 00 00 00
 00000130  00 00 00 00 CD 01 00 00 08 00 02 00 00 00 CD 01
 000001C0  61 75 74 68 6F 72 00 65 45 79 65 00 00 00 00 FB
 000001D0  FF 05 00 32 00 00 00 00 00 01 01 6C 00 00 00 01
 000001E0  02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 000001F0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

3. Modify 0x00 to 0x01 in offset 0x00000139.
4. Modify 0x00 to the value more than 0x80 in offset 0x000001D8.
5. Modify 0x00 to the value more than 0x01 in offset 0x000001E1 to
6. Append garbage data (e.g., a long string of A's) onto the end of this

Retina Network Security Scanner has been updated to identify this

Vendor Status:
Microsoft was notified on May 6, 2003, and has released a patch for this
vulnerability. The patch is available at:

Yuji "The Ninja" Ukai, eEye Digital Security

Related Links:
Retina Network Security Scanner - Free 15 Day Trial

Shanti, Yukkie, TEX, Sakuranamiki people, AD200X people

Copyright (c) 1998-2003 eEye Digital Security
Permission is hereby granted for the redistribution of this alert
electronically. It is not to be edited in any way without express consent of
eEye. If you wish to reprint the whole or any part of this alert in any
other medium excluding electronic medium, please e-mail alert@xxxxxxxx for

The information within this paper may change without notice. Use of this
information constitutes acceptance for use in an AS IS condition. There are
NO warranties with regard to this information. In no event shall the author
be liable for any damages whatsoever arising out of or in connection with
the use or spread of this information. Any use of this information is at the
user's own risk.

Please send suggestions, updates, and comments to:

eEye Digital Security