安全研究

安全漏洞
Mod_SSL Off-By-One HTAccess本地缓冲区溢出漏洞

发布日期:2002-06-22
更新日期:2002-07-01

受影响系统:
Mod_SSL mod_ssl 2.8.9
Mod_SSL mod_ssl 2.8.8
Mod_SSL mod_ssl 2.8.7
Mod_SSL mod_ssl 2.8.6
Mod_SSL mod_ssl 2.8.5
    - Linux系统  
    - Unix系统
不受影响系统:
Mod_SSL mod_ssl 2.8.10
描述:
BUGTRAQ  ID: 5084
CVE(CAN) ID: CVE-2002-0653

mod_ssl模块为Apache 1.3 WEB服务程序可以通过Secure Sockets Layer (SSL v2/v3)和Transport Layer Security (TLS v1)协议提供强壮加密的功能。

mod_ssl在处理.htaccess配置文件中的变量时没有正确检查边界长度,本地攻击者可以利用这个漏洞进行缓冲区溢出攻击。

Apache WEB服务程序提供扩展的API通过各种HOOKS调用来方便的为第三放模块接口,其中之一的HOOK是rewrite_command调用,如果WEB服务程序允许非特权用户为自己的WEB建立访问控制机制,就需要在.htaccess文件中设置"AllowOverride"选项激活,如果存在此选项,rewrite_command调用处理前会读取.htaccess配置文件中的内容,但rewrite_command hook中的ssl_compat_directive()调用在读取.htaccess文件中的DATE_LOCALE变量时存在off-by-one错误,问题代码如下:

...
  char *cp;
  char caCmd[1024];
  char *cpArgs;
  ...
  cp = (char *)oline;
  for (i = 0; *cp != ' ' && *cp != '\t' && *cp != NUL && i < 1024; )
                                                         ^^^^^^^^
    caCmd[i++] = *cp++;
  caCmd[i] = NUL;
  cpArgs = cp;
  ...

如果攻击者可以在.htaccess文件中设置包含10000字节的DATE_LOCALE变量,就可以导致WEB服务进程处理请求时产生缓冲区溢出,精心构建变量数据可能使之以WEB进程的权限执行任意命令。

<*来源:Jedi/Sector One (j@pureftpd.org)
  
  链接:http://archives.neohapsis.com/archives/bugtraq/2002-06/0318.html
*>

建议:
临时解决方法:

如果您不能立刻安装补丁或者升级,NSFOCUS建议您采取以下措施以降低威胁:

* 不要设置"AllowOverride"选项。

厂商补丁:

Mod_SSL
-------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:

mod_ssl Upgrade mod_ssl-2.8.10-1.3.26.tar.gz
http://www.modssl.org/source/mod_ssl-2.8.10-1.3.26.tar.gz

浏览次数:3433
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障