安全研究

安全漏洞
Spring Security URI路径参数绕过安全限制漏洞

发布日期:2010-10-27
更新日期:2010-10-29

受影响系统:
SpringSource Spring Security 3.0.0 - 3.0.3
SpringSource Spring Security 2.0.0 - 2.0.5
不受影响系统:
SpringSource Spring Security 3.0.4
SpringSource Spring Security 2.0.6
描述:
BUGTRAQ  ID: 44496
CVE ID: CVE-2010-3700

Spring Security是一款功能强大的可自定义认证和访问控制框架。

Spring Security在处理安全限制的时候没有考虑URL路径参数,攻击者可以通过向请求中添加URL路径参数绕过安全限制。

这个漏洞的起因是对处理Servlet Specification中的路径参数缺少明确方法。一些Servlet容器在getPathInfo()的返回值中包含有路径参数,而一些容器没有。Spring Security在将请求映射到安全限制过程中使用了getPathInfo()的返回值,缺少路径参数可能导致绕过安全限制。

<*来源:Ed Schaller
  
  链接:http://secunia.com/advisories/42024/
        http://marc.info/?l=full-disclosure&m=128825878217538&w=2
        https://issues.apache.org/bugzilla/show_bug.cgi?format=multiple&id=25015
*>

测试方法:

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

假设使用以下URL拦截模式:

<intercept-url pattern="/*-add.do" access="PERMISSION_ADMIN"></intercept-url>

以保护以下URL:

/myapp/account-add.do

则攻击者可以使用以下形式的URL绕过保护:

/ctx/account-add.do;x=-pub.do

建议:
临时解决方法:

* 使用在getServletPath()和getPathInfo()的返回值中不包含有路径参数的Servlet容器。

厂商补丁:

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

http://www.springsource.com/security/cve-2010-3700

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