Quarkus 安全发布,修复 CVE-2023-4853
我们刚刚发布了 Quarkus 2.16.11.Final、3.2.6.Final 和 3.3.3 的更新,以及 Red Hat build of Quarkus 2.13.18.SP2 的更新,修复了 CVE-2023-4853 中报告的问题。
此问题会影响到所有使用基于路径的 HTTP 安全规则来保护 HTTP 端点的用户。
建议
如果您正在使用任何旧版本的 Quarkus(从 0.1 到 3.3.2),并且使用了基于路径的安全设置,我们强烈建议您尽快升级到最新的 2.16、3.2、3.3 版本,或 Red Hat build of Quarkus 2.13 版本。
对于仍在开发中的 3.4 版本,包含该修复的 3.4.1 版本将在下周三与完整平台发布版一同提供。
如果无法升级,请参阅此 Red Hat 安全公告 以了解可能的缓解措施。
受影响的范围
如果您通过基于路径的规则来保护 Quarkus 应用程序的 HTTP 端点,如下例所示,您需要立即采取行动。
application.properties
quarkus.http.auth.permission.authenticated.paths=/a/secret/*
quarkus.http.auth.permission.authenticated.policy=authenticated
或
quarkus.keycloak.policy-enforcer.paths.1.name=Permission Resource
quarkus.keycloak.policy-enforcer.paths.1.path=/api/permission
quarkus.keycloak.policy-enforcer.paths.1.enforcement-mode=ENFORCING
或
quarkus.csrf-reactive.create-token-path=/service/csrfTokenForm
web.xml
<security-constraint>
<web-resource-collection>
<web-resource-name>test</web-resource-name>
<url-pattern>/secure/*</url-pattern>
<url-pattern>/openapi/*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>managers</role-name>
</auth-constraint>
</security-constraint>
易受攻击的制品
-
io.quarkus:quarkus-vertx-http
-
io.quarkus:quarkus-undertow
-
io.quarkus:quarkus-csrf-reactive
-
io.quarkus:quarkus-keycloak-authorization
关于 CVE-2023-4853
CVE-2023-4853 是一个安全漏洞,它允许通过添加额外的斜杠(例如:/a/protected//path
)就可以未经授权地访问受保护的路径(如 /a/protected/path
)。
尽管并非所有 Quarkus 应用程序都受到影响,但鉴于攻击向量的简单性,我们认为此问题非常严重。
Quarkus 安全策略
此 CVE 的根本原因最初在 Quarkus 的问题跟踪器中被报告为一个普通 bug,但未能及时被识别为一个安全漏洞。
一旦我们了解了问题的严重性,我们就立即采取了纠正措施,开发了补丁和回溯,并与 Red Hat 产品安全团队合作提供更新。
如果您怀疑 Quarkus 存在安全问题或漏洞,请直接报告给 security (at) quarkus.io - 有关 Quarkus 安全策略的更多详情,请参阅 https://quarkus.net.cn/security/。