MPlayer是一款基于Linux的电影播放程序。 MPLayer在处理畸形流ASX文件头字段时存在问题,远程攻击者可以利用这个漏洞诱使用户访问畸形ASX文件,触发缓冲区溢出。 问题是asf_streaming.c文件中包含的asf_http_request函数缺少正确的边界缓冲区检查,问题代码如下: asf_http_request { char str[250]; .... ... .. sprintf( str, \"Host: \\%s:\\%d\", server_url->hostname, server_url->port ); .... ... .. sprintf( str, \"Host: \\%s:\\%d\", url->hostname, url->port ); .... ... .. } 由于MAXHOSTLEN对主机长度进行了限制,看起来不可利用,但是如果使用包含\"badsite\" 监听\"badport\"的ASX文件,可触发缓冲区溢出,精心构建请求ASX文件,并诱使用户解析,可导致以用户进程权限在系统上执行任意指令。
MPlayer是一款基于Linux的电影播放程序。 MPLayer在处理畸形流ASX文件头字段时存在问题,远程攻击者可以利用这个漏洞诱使用户访问畸形ASX文件,触发缓冲区溢出。 问题是asf_streaming.c文件中包含的asf_http_request函数缺少正确的边界缓冲区检查,问题代码如下: asf_http_request { char str[250]; .... ... .. sprintf( str, \"Host: \\%s:\\%d\", server_url->hostname, server_url->port ); .... ... .. sprintf( str, \"Host: \\%s:\\%d\", url->hostname, url->port ); .... ... .. } 由于MAXHOSTLEN对主机长度进行了限制,看起来不可利用,但是如果使用包含\"badsite\" 监听\"badport\"的ASX文件,可触发缓冲区溢出,精心构建请求ASX文件,并诱使用户解析,可导致以用户进程权限在系统上执行任意指令。