|
xine-lib多个堆溢出漏洞 发布日期:2008-03-20 更新日期:2008-03-21
受影响系统:xine xine-lib <= 1.1.11 描述: BUGTRAQ ID: 28370
xine是一款免费的媒体播放器,支持多种格式。
xine在计算某些目标缓冲区和数组所需分配的内存数时错误的32位计算,导致xine-lib受多个堆溢出漏洞影响,可能允许攻击者控制寄存器和代码流。
以下是有漏洞的代码部分:
-----------------------------
A] demux_flv堆溢出
-----------------------------
src/demuxers/demux_flv.c:
static int parse_flv_var(demux_flv_t *this,
unsigned char *buf, int size, char *key, int keylen) {
...
this->index = xine_xmalloc(num*sizeof(flv_index_entry_t));
...
this->index = xine_xmalloc(num*sizeof(flv_index_entry_t));
----------------------------
B] demux_qt堆溢出
----------------------------
src/demuxers/demux_qt.c中几乎所有的分配指令都存在堆溢出。
------------------------------
C] demux_real堆溢出
------------------------------
src/demuxers/demux_real.c:
static void real_parse_index(demux_real_t *this) {
...
*index = xine_xmalloc(entries * sizeof(real_index_entry_t));
----------------------------------
D] demux_wc3movie堆溢出
----------------------------------
src/demuxers/demux_wc3movie.c:
static int open_mve_file(demux_mve_t *this) {
...
this->palettes = xine_xmalloc(this->number_of_shots * PALETTE_SIZE *
sizeof(palette_entry_t));
------------------------
E] ebml堆溢出
------------------------
src/demuxers/ebml.c:
int ebml_check_header(ebml_parser_t *ebml) {
...
char *text = malloc(elem.len + 1);
------------------------------
F] demux_film堆溢出
------------------------------
src/demuxers/demux_film.c:
static int open_film_file(demux_film_t *film) {
...
film->sample_table =
xine_xmalloc(film->sample_count * sizeof(film_sample_t));
<*来源:Luigi Auriemma (aluigi@pivx.com)
链接:http://marc.info/?l=bugtraq&m=120605919516727&w=2
http://secunia.com/advisories/29484/
*>
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负! http://aluigi.org/poc/xinehof.zip
建议: 厂商补丁:
xine
----
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://xinehq.de/
浏览次数:45 严重程度:0(网友投票)
|
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载 绿盟科技给您安全的保障 |