xine是一款免费的媒体播放器,支持多种格式。
xine的Real Media输入插件的asmrp_match()函数中存在缓冲区溢出漏洞,远程攻击者可能利用此漏洞在用户机器上执行任意指令。
在以下代码段中,rulematches是仅能容纳16个int的静态缓冲区,但asmrp_match()没有对参数执行边界检查:
>8--------------------------------------------8<
src/input/libreal/real.c:468
for (i=0; i<desc->stream_count; i++) {
int j=0;
int n;
char b[64];
int rulematches[16];
lprintf("calling asmrp_match with:\n%s\n%u", desc->stream[i]->asm_rule_book, bandwidth);
n=asmrp_match(desc->stream[i]->asm_rule_book, bandwidth, rulematches);
攻击者可以通过创建拥有大量rulematches的rulebook来触发这个溢出,导致拒绝服务或执行任意代码。
xine xine-lib < 1.1.3
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
<a href="http://xinehq.de/index.php/releases" target="_blank">http://xinehq.de/index.php/releases</a>
暂无评论