CVE:CVE-2005-4864
CNNVD:CNNVD-200512-797
IBM DB2是美国IBM公司的一套关系型数据库管理系统。该系统的执行环境主要有UNIX、Linux、IBM i、z/OS以及Windows服务器版本。
IBM DB2提供的ibdb2.so.1库存在缓冲区溢出问题，本地攻击者可以利用这个漏洞以root用户权限在系统上执行任意指令。
此漏洞可分为两个问题，第一当libdb2.so被装载时它读取DBLPORT环境变量，然后拷贝值到.bss段的缓冲区中，缓冲区会溢出，通过提供一个超长的DB2LPORT环境变量会填充libdb2.so.1库的.bss段的db2MLNPort_name缓冲区，然后溢出到db2node_name buffer到instprof_path缓冲区，然后进入instance_path缓冲区，最后到install_path缓冲区。第二个问题是当sqloInstancePath()读取install_path时，可以覆盖sqloGetInstancePath()函数的本地堆栈缓冲区。
精心构建提交数据可能获得root用户权限，如db2cacpy是setuid root属性安装，程序装载此库并调用sqloInstancePath()溢出缓冲区。
solution:Upgrade ibm db2_universal_database to a higher version than 7.0,7.1,7.2,8.0,8.1,and avoid the version 7.0,7.1,7.2,8.0,8.1