[NEWS] MPlayer Multiple Remote Overflows (RTSP, MMST, BMP)
From: SecuriTeam (support_at_securiteam.com)
Date: 12/19/04
- Previous message: SecuriTeam: "[NT] Crystal FTP Pro Client LIST Buffer Overflow"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ] [ attachment ]
To: list@securiteam.com Date: 19 Dec 2004 19:48:30 +0200
The following security advisory is sent to the securiteam mailing list, and can be found at the SecuriTeam web site: http://www.securiteam.com
- - promotion
The SecuriTeam alerts list - Free, Accurate, Independent.
Get your security news from a reliable source.
http://www.securiteam.com/mailinglist.html
- - - - - - - - -
MPlayer Multiple Remote Overflows (RTSP, MMST, BMP)
------------------------------------------------------------------------
SUMMARY
<http://mplayerhq.hu/> MPlayer is a movie player for Linux that also runs
on many other Unices, platforms and non-x86 CPUs. It plays most MPEG, VOB,
AVI, Ogg/OGM, VIVO, ASF/WMA/WMV, QT/MOV/MP4, FLI, RM, NuppelVideo,
YUV4MPEG, FILM, RoQ, PVA files, supported by many native, XAnim, and Win32
DLL codecs. You can watch VideoCD, SVCD, DVD, 3ivx, DivX 3/4/5 and other
formats.
Heap overflow vulnerabilities exist in the RTSP memory allocation code,
the MMST streaming code and the bitmap loading code. The overflows allow
an attacker to run arbitrary code on the target system.
DETAILS
Vulnerable Systems:
* MPlayer version 1.0pre5
MPlayer Remote RTSP Heap Overflow Vulnerability
The vulnerability exists due to an error in dynamically allocated memory
in /libmpdemux/realrtsp/real.c. The vulnerable code is listed below:
rmff_header_t *real_setup_and_get_header(rtsp_t *rtsp_session, uint32_t
bandwidth) {
char *description=NULL;
char *session_id=NULL;
rmff_header_t *h;
char *challenge1;
char challenge2[64];
char checksum[34];
char *subscribe;
char *buf = xbuffer_init(256);
char *mrl=rtsp_get_mrl(rtsp_session);
unsigned int size;
int status;
[...]
if (!rtsp_search_answers(rtsp_session,"Content-length"))
printf("real: got no Content-length!\n");
else
[!] size=atoi(rtsp_search_answers(rtsp_session,"Content-length"));
[...]
description=malloc(sizeof(char)*(size+1));
if( rtsp_read_data(rtsp_session, description, size) <= 0) {
buf = xbuffer_free(buf);
return NULL;
}
description[size]=0;
[...]
}
If a malicious server or anyone posing as a server specifies a
content-length of -1 for the stream only 4 bytes are allocated due to an
integer overflow. An arbitrary length stream of data is then copied into
that 4 byte buffer, corrupting the heap and allowing for possible code
execution.
Impact
Remote exploitation of this vulnerability is difficult because success
requires a great deal of precision. If remote exploitation were
successful, the attacker would be able to gain access with the privileges
of the user who attempted to play the media file.
MPlayer MMST Streaming Stack Overflow Vulnerability
The vulnerability exists due to a lack of bounds checking in
/libmpdemux/asf_mmst_straming.c. If a specially crafted file specifies a
large value for the length field, the overflow is triggered in get_data().
The vulnerable code is listed below:
static int get_media_packet (int s, int padding, streaming_ctrl_t
*stream_ctrl) {
unsigned char pre_header[8];
char data[BUF_SIZE];
[...]
packet_len = get_32 ((unsigned char*)&packet_len, 0) + 4;
[!] if (!get_data (s, data, packet_len)) {
printf ("command data read failed\n");
return 0;
}
[...]
Once the get_data() function overwrites stack memory the saved return
address can be controlled, thus allowing for execution of arbitrary code.
Impact
If remote exploitation is successful, the attacker would be able to gain
access with the privileges of the user who attempted to view the stream.
MPlayer Bitmap Parsing Remote Heap Overflow Vulnerability
The vulnerability exists due to a lack of bounds checking within the
demux_open_bmp() routine defined in /libmpdemux/demux_bmp.c. If a
specially crafted file specifies a large value for the "biClrUsed" field,
an overflow is triggered in stream_read(). The vulnerable portion of code
is displayed below:
demuxer_t* demux_open_bmp(demuxer_t* demuxer)
{
sh_video_t *sh_video = NULL;
unsigned int filesize;
unsigned int data_offset;
bmp_image_t *bmp_image;
...
sh_video->bih->biClrUsed = stream_read_dword_le(demuxer->stream);
sh_video->bih->biClrImportant =
stream_read_dword_le(demuxer->stream);
// fetch the palette
[!] stream_read(demuxer->stream, (unsigned char *)(sh_video->bih) + 40,
sh_video->bih->biClrUsed * 4);
...
}
In the given example call to stream_read(), an unchecked amount of data as
specified by "biClrUsed" will be read into the fixed size buffer "bih."
This allows control of execution by overwriting the saved return address
on the stack.
Impact
Successful exploitation of this vulnerability allows remote attackers to
execute arbitrary code under the privileges of the user who attempted to
view the bitmap file. Exploitation is not trivial, as a high level of
precision is required. It is not a requirement for the malicious file to
have an extension of .bmp because MPlayer will correctly determine if it
is a bitmap file despite its extension.
Workaround
Users must be careful when accepting and opening media from untrusted
sources. Do not accept media from those you do not trust. Do not stream
media from servers you do not trust.
Patch Availability
The vendor has supplied patches for all three vulnerabilities. They are
available at:
<http://www1.mplayerhq.hu/MPlayer/patches/rtsp_fix_20041215.diff>
http://www1.mplayerhq.hu/MPlayer/patches/rtsp_fix_20041215.diff
<http://www1.mplayerhq.hu/MPlayer/patches/mmst_fix_20041215.diff>
http://www1.mplayerhq.hu/MPlayer/patches/mmst_fix_20041215.diff
<http://www1.mplayerhq.hu/MPlayer/patches/bmp_fix_20041215.diff>
http://www1.mplayerhq.hu/MPlayer/patches/bmp_fix_20041215.diff
Disclosure Timeline:
12/10/2004 - Initial vendor notification
12/16/2004 - Public disclosure
ADDITIONAL INFORMATION
The information has been provided by
<mailto:idlabs-advisories@idefense.com> iDEFENSE Security Labs.
The original article can be found at:
<http://www.idefense.com/application/poi/display?id=166>
http://www.idefense.com/application/poi/display?id=166
The original article can be found at:
<http://www.idefense.com/application/poi/display?id=167>
http://www.idefense.com/application/poi/display?id=167
The original article can be found at:
<http://www.idefense.com/application/poi/display?id=168>
http://www.idefense.com/application/poi/display?id=168
========================================
This bulletin is sent to members of the SecuriTeam mailing list.
To unsubscribe from the list, send mail with an empty subject line and body to: list-unsubscribe@securiteam.com
In order to subscribe to the mailing list, simply forward this email to: list-subscribe@securiteam.com
====================
====================
DISCLAIMER:
The information in this bulletin is provided "AS IS" without warranty of any kind.
In no event shall we be liable for any damages whatsoever including direct, indirect, incidental, consequential, loss of business profits or special damages.
- Previous message: SecuriTeam: "[NT] Crystal FTP Pro Client LIST Buffer Overflow"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ] [ attachment ]
Relevant Pages
- [UNIX] Trend Micro VirusWall Buffer Overflow in VSAPI Library
... The following security advisory is sent to the securiteam mailing list, and can be
found at the SecuriTeam web site: http://www.securiteam.com ... buffer overflow vulnerability
in VSAPI library allows arbitrary code ... is called "vscan" which is set suid root by
default. ... permissions and thus granted all local users the privilege to execute the
... (Securiteam) - [UNIX] SCO Multiple Local Buffer Overflow
... The following security advisory is sent to the securiteam mailing list, and can be
found at the SecuriTeam web site: http://www.securiteam.com ... Local exploitation of a buffer
overflow vulnerability in the ppp binary, ... allows attackers to gain root privileges.
... (Securiteam) - [NT] Microsoft Word 6.0/95 Document Converter Buffer Overflow (MS04-041)
... The following security advisory is sent to the securiteam mailing list, and can be
found at the SecuriTeam web site: http://www.securiteam.com ... WordPad is "a word processing
application that uses the MFC rich edit ... Remote exploitation of a buffer overflow vulnerability
in Microsoft ... Microsoft Word format files into the Rich Text Format natively handled
by ... (Securiteam) - [UNIX] Tikiwiki Command Injection and Arbitrary File Exposure Vulnerabilities
... The following security advisory is sent to the securiteam mailing list, and can be
found at the SecuriTeam web site: http://www.securiteam.com ... Two security vulnerabilities have
been recently discovered in Tikiwiki, ... Remote exploitation of an input validation
vulnerability in Tikiwiki ... allows attackers to gain access to arbitrary files on
the vulnerable ... (Securiteam) - [NT] Ipswitch Multiple Vulnerabilities (IMail IMAP LIST Command DoS, Collaboration Suite SMTP Format
... The following security advisory is sent to the securiteam mailing list, and can be
found at the SecuriTeam web site: http://www.securiteam.com ... Ipswitch Multiple Vulnerabilities
(IMail IMAP LIST Command DoS, ... Collaboration Suite SMTP Format String) ... Remote
exploitation of a denial of service vulnerability in Ipswitch ... (Securiteam)