我们使用quarkus-hibernate-validator
来拉入jakarta.el
。但最近所有版本的jakarta.el
都被NexusIQ标记为严重的易受攻击性。
[https://securitylab.github.com/advisories/GHSL-2020-021-jakarta-el/][1]
详情如下:
漏洞问题奏鸣曲-2020-1438问题奏鸣曲-2020-1438严重性声纳CVSS 3:7.5CVE CVSS 2.0:0.0弱点声纳CWE:20来源声纳数据研究类别数据解释jakarta.el包包含一个不正确的输入验证漏洞。ELParser类中的LiteralExpression方法无法正确识别文本表达式。因此,无效表达式将被当作有效表达式来计算。远程攻击者可以通过精心制作一个EL表达式来利用此漏洞,该表达式包含后跟反斜杠、/和有效负载的$或#符号。这将绕过当前验证,并导致解析器评估可能允许远程代码执行的表达式。
探测使用此组件会使应用程序易受攻击。
建议此组件/程序包没有不易受攻击的升级路径。我们建议调查替代组件或潜在的缓解控制措施。
根本原因jakarta.el-3.0.3.jbossorg-2.jarcom/sun/el/parser/ELParser.class(,(咨询第三方:https://securitylab.github.com/advisories/GHSL-2020-021-jakarta-el/CVSS详细信息声纳CVSS 3:7.5
Quarkus团队对此有任何补救建议吗?
您已经有了4.0.0版本,请尝试更新pom,我将其放在标记属性中<glassfish.el.版本>4.0.0<glassfish.el.版本>或者声明所有的依赖关系。
链接解决方案要求您创建一个拦截器来获取get、DELETE、UPDATE类型的请求参数。对于POST类型的请求,获取主体的json
public String replaceElDelimiter(final String value) {
if (value != null) {
return value.replaceAll("\$+\{", "{");
}
return null;
}
删除${add到值之后在您使用的参数或身体中