受影响系统:
OpenLDAP OpenLDAP <= 2.4.3
描述:
--------------------------------------------------------------------------------
BUGTRAQ ID: 21560
CVE(CAN) ID: CVE-2006-6493
OpenLDAP是一款开放源代码的轻量级目录访问协议(LDAP)实现,
OpenLDAP服务器Kerberos 4 Bind请求远程栈溢出漏洞
。OpenLDAP在处理Kerberos Bind请求时存在缓冲区溢出漏洞,远程攻击者可能利用此漏洞在服务器上执行任意指令。
OpenLDAP代码的servers/slapd/kerberos.c文件中的krbv4_ldap_auth函数存在缓冲区溢出漏洞,该函数处理指定了LDAP_AUTH_KRBV41认证方式的LDAP bind请求,cred变量包含有指向客户端所发送Kerberos认证数据的指针。由于在将其拷贝到栈上固定大小缓冲区之前没有检查数据长度,因此攻击者可以通过发送大于1250字节的bind请求触发溢出,导致执行任意指令。漏洞代码如下:
krbv4_ldap_auth(
Backend *be,
struct berval *cred,
AUTH_DAT *ad
)
{
KTEXT_ST k;
KTEXT ktxt = &k;
char instance[INST_SZ];
int err;
Debug( LDAP_DEBUG_TRACE, "=> kerberosv4_ldap_auth\n", 0, 0, 0 );
AC_MEMCPY( ktxt->dat, cred->bv_val, cred->bv_len );
ktxt->length = cred->bv_len;
请注意必须以"--enable-kbind"选项编译了OpenLDAP才可能存在这个漏洞,
电脑资料
《OpenLDAP服务器Kerberos 4 Bind请求远程栈溢出漏洞》(https://www.unjs.com)。<*来源:Solar Eclipse (solareclipse@phreedom.org)
链接:http://secunia.com/advisories/23334/
http://www.phreedom.org/solar/exploits/openldap-kbind/
*>
建议:
--------------------------------------------------------------------------------
厂商补丁:
OpenLDAP
--------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://www.openldap.org/