SecurityReason.com - Our Reason is

Security

Register | Forget Password | Login
SecurityReason
WLB
Services
RSS
Corporate
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

Home arrow SecurityAlert Database

Arrow  Topic :

VLC 0.8.6i tta File Parsing Heap Overflow PoC


Arrow  SecurityAlert : 4170
Arrow  CVE : CVE-2008-3732
Arrow  CWE : CWE-189
Arrow  SecurityRisk : High  Security Risk High  (About)
Arrow  Remote Exploit : Yes
Arrow  Local Exploit : No
Arrow  Victim interaction required : Yes
Arrow  Exploit Available : No
Arrow  Credit : g_
Arrow  Published : 22.08.2008

Arrow  Affected Software : VideoLAN, VLC Media Player, 0.8.6i



Arrow  Advisory Content :  

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

- - Orange Bat advisory -

Name : VLC 0.8.6i
Class : Heap overflow
Published : 2008-08-16
Credit : g_ (g_ # orange-bat # com)

- - Details -


\modules\demux\tta.c

#define TTA_FRAMETIME 1.04489795918367346939
.
.
.
int i_seektable_size = 0, i;
.
.
.
/* Read the metadata */
es_format_Init( &fmt, AUDIO_ES, VLC_FOURCC( 'T', 'T', 'A', '1' ) );
fmt.audio.i_channels = GetWLE( &p_header[6] );
fmt.audio.i_bitspersample = GetWLE( &p_header[8] );
[1] fmt.audio.i_rate = GetDWLE( &p_header[10] );

p_sys->i_datalength = GetDWLE( &p_header[14] );
p_sys->i_framelength = TTA_FRAMETIME * fmt.audio.i_rate;

[2] p_sys->i_totalframes = p_sys->i_datalength / p_sys->i_framelength +
((p_sys->i_datalength % p_sys->i_framelength) ? 1 :
0);
p_sys->i_currentframe = 0;

[3] i_seektable_size = sizeof(uint32_t)*p_sys->i_totalframes;
p_seektable = (uint8_t *)malloc( i_seektable_size );
stream_Read( p_demux->s, p_seektable, i_seektable_size );
p_sys->pi_seektable = (uint32_t *)malloc(i_seektable_size);

for( i = 0; i < p_sys->i_totalframes; i++ )
[4] p_sys->pi_seektable[i] = GetDWLE( &p_seektable[i*4] );


[1] - we can set i_rate to 1
[2] - i_framelength = 1 (look for constant definition, it's ~1),
so i_totalframes = i_datalength
[3] - because we can set i_datalength to 2^30 and bacause
i_totalframes = i_datalength, multiplication will overflow
[4] - i_totalframes is positive (highest bit not set), so this loop will
spin 2^30 times, overwriting everything with data from the heap.
unfortunate thing is we have little control over what is written.

- - Proof of concept -


http://www.orange-bat.com/adv/2008/vlc.dos.tta

- - PGP -

All advisories from Orange Bat are signed. You can find our public
key here: http://www.orange-bat.com/g_.asc

- - Disclaimer -

This document and all the information it contains is provided "as is",
without any warranty. Orange Bat is not responsible for the
misuse of the information provided in this advisory. The advisory is
provided for educational purposes only.

Permission is hereby granted to redistribute this advisory, providing
that no changes are made and that the copyright notices and
disclaimers remain intact.

(c) 2008 www.orange-bat.com


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (MingW32)

iEYEARECAAYFAkimwoYACgkQIUHRVUfOLgW8hgCgmPcqqIlcLQpmH8u6wB2fVOHs
Zv4AoNNYWhzdknZOnPuChysoak1rMRsx
=4K3f
-----END PGP SIGNATURE-----



Arrow  References :

http://securityreason.com/expldownload/1/4492/1 (Exploit)
http://xforce.iss.net/xforce/xfdb/44510
http://www.securityfocus.com/bid/30718
http://www.orange-bat.com/adv/2008/adv.08.16.txt
http://www.milw0rm.com/exploits/6252
http://www.frsirt.com/english/advisories/2008/2394
http://secunia.com/advisories/31512




Arrow  Feedback :

If you have additional information or notice any errors regarding this security advisory, please use contact form or email us at info()securityreason()com.
Alert

libc:fts_*() Multiple Denial of Service

Security Risk Medium- 2009-10-02

The fts functions are provided for traversing UNIX file hierarchies...

Apache RSS Apache Alert

» Apache 1.3.41 mod_proxy
   Integer overflow (code
   execution)

» Apache Tomcat 6.0.20 and
   5.5.28 unexpected file
   deletion in work
   directory

» Apache Tomcat 6.0.20 and
   5.5.28 insecure partial
   deploy after failed
   undeploy

» Apache Tomcat 6.0.20 and
   5.5.28 unexpected file
   deletion and/or
   alteration

PHP RSS PHP Alert

» PHP 5.2.12/5.3.1
   session.save_path
   safe_mode and
   open_basedir bypass

» PHP 5.2.12/5.3.1 Multiple
   Vulnerabilities

» PHP 5.2.11 libgd multiple
   vulnerabilities

» PHP 5.2.11 tempnam()
   safe_mode bypass

Copyright © SecurityReason.com. All Rights Reserved.