Apache Struts团队6月底发布了Struts 2.3.15版本,由于该版本被发现存在重要的安全漏洞,因此该团队今天发布了Struts 2.3.15.1安全更新版本。
该版本修复的主要安全漏洞如下:
1. 通过在参数前面加上“action:”/“redirect:”/“redirectAction:”前缀,以实现远程代码执行,如下:
- http://host/struts2-blank/example/X.action?action:%25{(new+java.lang.ProcessBuilder(new+java.lang.String[]{'command','goes','here'})).start()}
- http://host/struts2-showcase/employee/save.action?redirect:%25{(new+java.lang.ProcessBuilder(new+java.lang.String[]{'command','goes','here'})).start()}
- http://host/struts2-showcase/employee/save.action?redirectAction:%25{(new+java.lang.ProcessBuilder(new+java.lang.String[]{'command','goes','here'})).start()}
2. 通过在参数前面加上“redirect:”/“redirectAction:”前缀,以实现开放式重定向,如下:
- http://host/struts2-showcase/fileupload/upload.action?redirect:http://www.yahoo.com/
- http://host/struts2-showcase/modelDriven/modelDriven.action?redirectAction:http://www.google.com/%23
详细漏洞信息:
- http://struts.apache.org/release/2.3.x/docs/s2-016.html
- http://struts.apache.org/release/2.3.x/docs/s2-017.html
- http://struts.apache.org/release/2.3.x/docs/version-notes-23151.html
建议开发者将所有Struts 2应用程序升级至最新版本。
如果你从其他分支迁移至2.3.x分支,需要注意,该分支最低要求Servlet API 2.4、JSP API 2.0和Java 5。