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...
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>