SV.STRUTS.VER

Struts 版本:升级

SV.STRUTS.VER 检查器会验证项目使用的 Struts 版本是否不存在可能的远程代码执行漏洞。

漏洞与风险

Apache Struts 版本 2.3.x(低于 2.3.32)和 2.5.x(低于 2.5.10.1)在文件上传尝试期间实施不正确的异常处理和错误消息生成。此漏洞让远程攻击者能够执行任意命令。

缓解与预防

更新到更高版本的 Struts,至少为版本 2.5.12。

漏洞代码示例

复制
 import com.opensymphony.xwork2.Action;
 public class LoginAction implements Action {
    @Override
    public String execute() {
       return "SUCCESS";
    }
 }

Klocwork 在第 3 行报告了 SV.STRUTS.VER 缺陷,这表示项目使用了有漏洞的 Apache Structs 版本。如果项目使用低于 2.5.10.1 的 Apache Struts 版本,则 Klocwork 会报告错误。

修正代码示例

复制
 import com.opensymphony.xwork2.Action;
 public class LoginAction implements Action {
     @Override
     public String execute() {
         return "SUCCESS";
     }
  }

在更新到符合要求的 Apache Struts 版本(至少为版本 2.5.12)之后,Klocwork 不再在第 3 行报告缺陷。