Register | Forget Password | Login
Search :
SecurityReason

News

Search

SecurityAlert

About SecurityAlert

ExploitAlert

SecurityReason Research

WLB

WLB Database

Send to WLB

About WLB

RSS

News

SecurityAlert

World Laboratory of Bugtraq

ExploitAlert

Apache

PHP

Corporate

Contact

About us

Services

SecurePHP

Note

If you have found a vulnerability, please send to our SecurityAlert Database :
secalert()securityreason()com

Also if you have new ( 0-day ) exploit, please send to our ExploitAlert Archive :
exploit()securityreason()com

Details : WLB-2008110022          

  Topic : ClamAV get_unicode_name() off-by-one buffer overflow
  WLB : WLB-2008110022  (About)
  SecurityAlert : None
  Date : 2008-11-11
  Credit          : Moritz Jodeit
  SecurityRisk : High  alert  (About)
  Remote : Yes
  Local     : No
  Status   : Bug

  History :
[2008-11-11] Started

  Affected software :  

ClamAV

  Text :  

-----------------------------------------------------------------
ClamAV get_unicode_name() off-by-one buffer overflow

Copyright (c) 2008 Moritz Jodeit <moritz_at_jodeit&#46;org>
(2008/11/08)
-----------------------------------------------------------------

Application details:

From http://www.clamav.net/:

"Clam AntiVirus is an open source (GPL) anti-virus toolkit for
UNIX,
designed especially for e-mail scanning on mail gateways. It
provides
a number of utilities including a flexible and scalable
multi-threaded
daemon, a command line scanner and advanced tool for automatic
database updates. The core of the package is an anti-virus engine
available in a form of shared library."

Vulnerability description:

ClamAV contains an off-by-one heap overflow vulnerability in the
code responsible for parsing VBA project files. Successful
exploitation could allow an attacker to execute arbitrary code
with
the privileges of the `clamd' process by sending an email with a
prepared attachment.

The vulnerability occurs inside the get_unicode_name() function
in libclamav/vba_extract.c when a specific `name' buffer is passed
to it.

101 static char *
102 get_unicode_name(const char *name, int size, int big_endian)
103 {
104 int i, increment;
105 char *newname, *ret;
106
107 if((name == NULL) || (*name == '\0') || (size <=
0))
108 return NULL;
109
110 newname = (char *)cli_malloc(size * 7);

First the `size' of the `name' buffer multiplied by 7 is used to
allocate the destination buffer `newname'. When the `name' buffer
only consists of characters matching some specific criteria [1]
and `big_endian' is set, the following loop can write exactly 7
characters into the allocated destination buffer `newname' per
character found in source buffer `name'.

This effectively fills up the destination buffer completely. After
the loop in line 143, the terminating NUL byte is written and
overflows the allocated buffer on the heap.

143 *ret = '\0';
144
145 /* Saves a lot of memory */
146 ret = cli_realloc(newname, (ret - newname) + 1);
147 return ret ? ret : newname;
148 }

[1] Every character matching the following condition results in
7 characters written to the destination buffer:

(c & 0x80 || !isprint(c)) && (c >= 10 || c
< 0)

A VBA project file embedded inside an OLE2 office document send
as an attachment can trigger the off-by-one.

Vendor response:

2008/10/16 Initial report to vendor
2008/10/16 Vulnerability acknowledged by
acab_at_clamav&#46;net
2008/11/03 Release of version 0.94.1

Vulnerable packages:

All versions up to 0.94 are vulnerable.
Version 0.94.1 fixes the problem.




If you want change this note, please use UCP


Alert

Microsoft VISTA TCP/IP stack buffer overflow

high- 2008-11-27

Microsoft Device IO Control wrapped by the iphlpapi.dll API shipping with Windows Vista 32 bit and 64 bit contains a possibly exploitable, buffer overflow corrupting kernel memory.

Apache rss

» Apache Tomcat information
   disclosure

» Apache Tomcat <=
   6.0.18 UTF8 Directory
   Traversal Vulnerability

» Apache Tomcat information
   disclosure vulnerability

» Apache Tomcat XSS
   vulnerability

PHP rss

» PHP 5.2.6 SAPI
   php_getuid() overload

» PHP
   ZipArchive::extractTo()
   Directory Traversal
   Vulnerability

» PHP 5.2.6 dba_replace()
   destroying file

» PHP 5.2.6 (error_log)
   safe_mode bypass

Copyright © SecurityReason. All Rights Reserved.