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 行报告缺陷。