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/