security - jakarta.el 库在 NexusIQ [Quarkus] 中被标记为存在安全漏洞
问题描述
我们使用quarkus-hibernate-validator
which pulls in jakarta.el
。但最近所有版本的jakarta.el
NexusIQ 都被标记为存在严重漏洞。
[https://securitylab.github.com/advisories/GHSL-2020-021-jakarta-el/][1]
详情如下:
漏洞问题 sonatype-2020-1438 问题 sonatype-2020-1438 严重性 Sonatype CVSS 3:7.5 CVE CVSS 2.0:0.0 弱点 Sonatype CWE:20 来源 Sonatype 数据研究类别 数据说明 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 详情 Sonatype CVSS 3:7.5
Quarkus 团队对修复这个问题有什么建议吗?
解决方案
你已经有版本 4.0.0 尝试更新 pom 我把它放在标签属性 <glassfish.el.version>4.0.0</glassfish.el.version> 或声明所有依赖项。
链接解决方案要求您创建一个拦截器来获取 GET、DELETE、UPDATE 类型的请求参数。对于 POST 类型的请求,获取正文的 json
public String replaceElDelimiter(final String value) {
if (value != null) {
return value.replaceAll("\\$+\\{", "{");
}
return null;
}
删除 ${ 后添加到参数或您正在使用的正文中的值
推荐阅读
- c# - 如何在 C# 控制台应用程序中异步运行多个事件处理程序
- revit-api - 通过 RPW、python 和 revit API 组织 Revit 项目浏览器
- java - 使用 Cloudfront 签名的 cookie 时出现 403 禁止错误?
- apache-spark - sortBy Spark Scala 执行但不如预期
- php - WordPress 过滤器:wp_authenticate_user 未获取用户数据
- c - C=C++;为什么 C 变量的值没有改变,因为它保持为 0
- javascript - Map larger number to 1-4 in 25000 steps
- python - 如何使用 OOP 格式从 csv 文件创建可迭代对象(列表列表)?
- core-data - 核心数据异常:向实体添加新属性后出现 SQLite“没有这样的列”错误
- javascript - 阻止内联滑块 li 元素触摸/合并 carouFredSel