CHM files contain various tables and objects stored in "pages." When parsing a page of objects, CHMlib passes an unsanitized value from the file to the alloca() function. This allows an attacker to shift the stack pointer to point to arbitrary locations in memory. Consequently it is possible to write arbitrary data from the file to arbitrary memory locations. Successful exploitation of this vulnerability allows an attacker to execute arbitrary code with the permissions of the user viewing the file. An attacker would have to first convince the user to view the CHM file through some type of social engineering. iDefense has confirmed the existence of this vulnerability in CHMlib version 0.38.
74680a0ac82f6ab9112f2baf2c1524efe089c3ad40b596afccd34cfe22c19e28
Multiple Vendor libchm Page Block Length Memory Corruption Vulnerability
iDefense Security Advisory 01.26.07
https://labs.idefense.com/intelligence/vulnerabilities/
Jan 26, 2007
I. BACKGROUND
CHMlib is an open source library used to read Microsoft CHM, compressed
HTML, files. CHM files were originally designed for use by Microsoft as
help files, but are now commonly used to store e-books. The 'xchm' program
uses CHMlib to display CHM files. More information can be found on the
package's website:
https://www.jedrea.com/chmlib/
II. DESCRIPTION
CHM files contain various tables and objects stored in "pages." When
parsing a page of objects, CHMlib passes an unsanitized value from the file
to the alloca() function. This allows an attacker to shift the stack
pointer to point to arbitrary locations in memory. Consequently it is
possible to write arbitrary data from the file to arbitrary memory
locations.
III. ANALYSIS
Successful exploitation of this vulnerability allows an attacker to execute
arbitrary code with the permissions of the user viewing the file. An
attacker would have to first convince the user to view the CHM file
through some type of social engineering.
IV. DETECTION
iDefense has confirmed the existence of this vulnerability in CHMlib
version 0.38.
V. WORKAROUND
iDefense is currently unaware of any workarounds for this issue.
VI. VENDOR RESPONSE
The CHMlib maintainer has addressed this issue in version 0.39.
VII. CVE INFORMATION
A Mitre Corp. Common Vulnerabilities and Exposures (CVE) number has not
been assigned yet.
VIII. DISCLOSURE TIMELINE
01/24/2007 Initial vendor notification
01/24/2007 Initial vendor response
01/26/2007 Coordinated public disclosure
IX. CREDIT
Sean Larsson (iDefense Labs) is credited with the discovery of this
vulnerability.
Get paid for vulnerability research
https://labs.idefense.com/methodology/vulnerability/vcp.php
Free tools, research and upcoming events
https://labs.idefense.com/
X. LEGAL NOTICES
Copyright © 2006 iDefense, Inc.
Permission is granted for the redistribution of this alert electronically.
It may not be edited in any way without the express written consent of
iDefense. If you wish to reprint the whole or any part of this alert in
any other medium other than electronically, please e-mail
customerservice@idefense.com for permission.
Disclaimer: The information in the advisory is believed to be accurate at
the time of publishing based on currently available information. Use of
the information constitutes acceptance for use in an AS IS condition.
There are no warranties with regard to this information. Neither the
author nor the publisher accepts any liability for any direct, indirect,
or consequential loss or damage arising from use of, or reliance on, this
information.