JBoss Seam order参数远程SQL注入漏洞
发布日期:2007-11-01
更新日期:2007-12-14
受影响系统:JBoss Group JBoss Seam 2.0 CR3
JBoss Group JBoss Seam 2.0 CR2
JBoss Group JBoss Seam 2.0 CR1
不受影响系统:JBoss Group JBoss Seam 2.0 GA
描述:
BUGTRAQ ID:
26850
JBoss Seam是一个Java EE5框架,把JSF与EJB3.0组件合并在一起,从而为开发基于Web的企业应用程序提供一个最新的模式。
JBoss Seam在处理用户请求数据时存在输入验证漏洞,远程攻击者可能利用此漏洞执行SQL注入攻击。
JBoss Seam的org.jboss.seam.framework.Query类中没有正确地验证传送给getRenderedEjbql()方式的order参数便将其用于创建EJBQL查询:
if ( getOrder()!=null ) builder.append(" order by ").append( getOrder() );
return builder.toString();
这可能允许通过SQL注入攻击控制EJBQL查询,从而在数据库中执行任意代码。
<*来源:Antoni Jakubiak
链接:
http://jira.jboss.com/jira/browse/JBSEAM-2084
http://secunia.com/advisories/28077/
*>
建议:
临时解决方法:
如果您不能立刻安装补丁或者升级,NSFOCUS建议您采取以下措施以降低威胁:
@Name("blaList")
public class BlaList extends EntityQuery {
[...]
private static final String[] ORDERS = {"name asc","name desc","id asc","id desc"};
@Override
public void setOrder(String order) {
if (Arrays.asList(ORDERS).contains(order)) {
super.setOrder(order);
}
}
厂商补丁:
JBoss Group
-----------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
http://downloads.sourceforge.net/jboss/jboss-seam-2.0.0.GA.tar.gz?modtime=1193930784&big_mirror=1浏览次数:2812
严重程度:0(网友投票)