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()溢出缓冲区。
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()溢出缓冲区。