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查询,从而在数据库中执行任意代码。
JBoss Group JBoss Seam 2.0 CR3
JBoss Group JBoss Seam 2.0 CR2
JBoss Group JBoss Seam 2.0 CR1
临时解决方法:
如果您不能立刻安装补丁或者升级,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
-----------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
<a href=http://downloads.sourceforge.net/jboss/jboss-seam-2.0.0.GA.tar.gz?modtime=1193930784&big_mirror=1 target=_blank>http://downloads.sourceforge.net/jboss/jboss-seam-2.0.0.GA.tar.gz?modtime=1193930784&big_mirror=1</a>
暂无评论