BUGTRAQ ID: 30013
OpenLDAP是一款开放源代码的轻量级目录访问协议(LDAP)实现。
OpenLDAP的libraries/liblber/io.c文件中的ber_get_next()函数没有正确地解码ASN.1 BER网络数据报,如果数据报的单元(标签 + 长度 + 内容)包含有
* 4字节长的多字节标签
* 4字节长的多字节大小
则解码后的整个大小为BerElement结构缓冲区加1个字节,这导致函数返回说明仍需更多数据,但读指针仍指向缓冲区末尾,这是不允许的。之后的函数调用会出现失败:
assert( 0 ); /* ber structure is messed up ?*/
OpenLDAP 2.3.41
OpenLDAP
--------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
<a href=http://www.openldap.org/devel/cvsweb.cgi/libraries/liblber/io.c.diff?r1=1.120&r2=1.121&hideattic=1&sortbydate=0 target=_blank>http://www.openldap.org/devel/cvsweb.cgi/libraries/liblber/io.c.diff?r1=1.120&r2=1.121&hideattic=1&sortbydate=0</a>
暂无评论