首页 -> 安全研究

安全研究

绿盟月刊
绿盟安全月刊->第16期->最新漏洞
期刊号: 类型: 关键词:
AIX 多个本地安全漏洞

日期:2000-12-14

受影响的系统:  
IBM AIX 4.3.x
IBM AIX 4.2.x
描述:
--------------------------------------------------------------------------------


IBM AIX系统中多个setuid/setgid程序存在本地溢出问题。可能导致攻击者获取
root权限或者进行拒绝服务攻击。

下面是受影响的程序列表:

setuid root 程序:

  /usr/bin/setsenv *         
      [ x=$s ]
  /usr/lib/lpd/digest *      
      [ $s x ]
  /usr/sbin/portmir *        
      [ -t $s -d x ]
  /usr/bin/enq               
      [ -M $s ]
  /usr/bin/setclock          
      [ $s ]
  /usr/lib/lpd/pio/etc/pioout  
      [ PIO{DEVNAME,PTRTYPE}=$s ]

setgid printq 程序:
  /usr/lib/lpd/piobe *         
      [ PIOSTATUSFILE=x PIO{TITLE,VARDIR}=$s ]
  /usr/lib/lpd/pio/etc/piomkapqd *  
      [ -p $s ]
  /usr/bin/splp                     
      [ $s ]

后面标*号的程序表明已经被证实确实可以被用来攻击的程序。


1. setsenv在处理用户输入数据时,没有检查长度,导致发生缓冲区溢出。攻击
者成功后可能获取root权限。

2. digest在处理命令行参数时没有检查用户输入数据,导致发生缓冲区溢出。
攻击者可以覆盖某个指针以及堆栈中的一个缓冲区,成功后可获取root权限。

3. AIX有一个全局可写的系统锁定目录,攻击者可能使用portmir并结合一些硬
链接攻击,杀死其他进程,例如cron程序。另外,portmir也存在一个缓冲区
溢出的漏洞

4. piobe和piomkapqd程序没有对某些环境变量进行长度检查,攻击者可能获取
printq组的权限。从而可以控制打印配置文件以及一些打印程序。

5. Enq没有进行检查。setclock和splp的溢出发生在main()函数中。暂时没有
发现可以被用来获取root权限的方法。pioout在对储存在PIODEVNAME变量的数
据进行拷贝的时候可能陷入死循环。

<*来源:Esa Etelavuori (http://www.iki.fi/ee/)
        Jouko Pynn鰊en (jouko@solutions.fi)
*>



--------------------------------------------------------------------------------
建议:

厂商补丁:

AIX 已经提供了相应的补丁程序,下载地址:

http://techsupport.services.ibm.com/rs6k/fixes.html

程序与补丁名的对照表如下:

        程序名                            补丁名
        ======                           ========
    setuid root                          V43 APARs  V42 APARs
        /usr/bin/setsenv *                IY08812    IY10721
        /usr/lib/lpd/digest *             IY08143    IY08287
        /usr/sbin/portmir *               IY07832
        /usr/bin/enq                      IY08143    IY08287
        /usr/bin/setclock                 IY07831    IY07790
        /usr/lib/lpd/pio/etc/pioout       IY12638

    setgid printq
        /usr/lib/lpd/piobe *              IY12638
        /usr/lib/lpd/pio/etc/piomkapqd *  IY12638
        /usr/bin/splp                     IY12638


版权所有,未经许可,不得转载