### 关键漏洞信息 #### 漏洞概述 - **漏洞名称**: jooby-pac4j: deserialization of untrusted data - **CVE ID**: CVE-2023-31129 - **CVSS 评分**: 8.8/10 (高危) - **发布日期**: 昨天 #### 影响范围 - **受影响版本**: [2.16.4, 3.6.1] - **修复版本**: [2.17.0, 3.7.0] #### 描述 在 `io.jooby:jooby-pac4j` 的 2.x 和 3.x 版本中,存在反序列化未受信任数据的问题。这可能导致远程代码执行。 #### 原因 在 `SessionStoreImpl#get` 方法中处理会话时,当值以 "b64-" 开头时,尝试反序列化该值,从而导致未受信任数据的反序列化。 #### 工作区 - 不使用 `io.jooby:jooby-pac4j` 直到它得到修复。 - 检查你在会话中保存和获取的值。 #### 参考链接 - 版本 2.x: [GitHub 链接](https://github.com/jooby-project/jooby/blob/v2.x/modules/jooby-pac4j/src/main/java/io/jooby/internal/pac4j/SessionStoreImpl.java#L139-L45) - 版本 3.x: [GitHub 链接](https://github.com/jooby-project/jooby/blob/v3.6.1/modules/jooby-pac4j/src/main/java/io/jooby/internal/pac4j/SessionStoreImpl.java#L77-L84) #### 漏洞利用示例 截图中展示了通过传递特定参数成功利用该漏洞执行计算器程序的示例。