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进程的权限执行任意命令。
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进程的权限执行任意命令。