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>
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>