为了账号安全,请及时绑定邮箱和手机立即绑定

LDAP 条目中毒已在 jdk-8u191 中修复?

LDAP 条目中毒已在 jdk-8u191 中修复?

茅侃侃 2022-06-30 11:53:40
Fortify 报告了我的一个 Spring 应用程序中的一个 LDAP 条目中毒漏洞。您可以从以下链接获取有关此漏洞的更多信息:https://www.youtube.com/watch?v=Y8a5nB-vy78&feature=youtu.be&t=2111https://www.blackhat.com/docs/us-16/materials/us-16-Munoz-A-Journey-From-JNDI-LDAP-Manipulation-To-RCE.pdfhttps://www.blackhat.com/docs/us-16/materials/us-16-Munoz-A-Journey-From-JNDI-LDAP-Manipulation-To-RCE-wp.pdf我决定尝试自己证明这是否仍然是一个漏洞。我通过使用 Spring Tool Suite 做到了这一点:文件 -> 新建 -> 导入 spring 入门内容搜索 ldap 并导入 Authenticating Ldap -> complete code sethttps://spring.io/guides/gs/authenticating-ldap/然后,我在包含的 test-server.ldif 文件中添加了以下行到 bob 的条目以及开发人员的条目:javaFactory: PayloadObjectobjectClass: javaNamingReferencejavaCodebase: http://127.0.0.1:9999/javaClassName: PayloadObject为了运行它,我需要将以下行添加到 application.properties:spring.ldap.embedded.validation.enabled=false我启动了 Wireshark 并运行了 Spring 示例应用程序,果然,当我使用 bob 登录时,我在 Wireshark 的 9999 端口上获得了成功。当我让一位同事测试同样的东西时,他无法重现。经过一番研究,我们发现他的 jdk 比我更新,并且在我更新我的 jdk 后,我也无法重现该问题。我们将其缩小到 jdk-8u191 是引入“修复”的版本,但我在 java 发行说明中找不到任何解释为什么或如何修复它的内容。我的问题是 - 如果我们正在运行 jdk-8u191 或更新版本,现在 LDAP 条目中毒是否为假/阳性?或者是否有一些配置选项可以设置为覆盖这个“修复”?
查看完整描述

1 回答

?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

8u191 关闭了LDAP 中的远程类加载漏洞,尽管研究正在进行中。每当您在 Java 中将字节流转换为 Object 时,您需要考虑类加载(8u191 解决的问题),以及不安全的反序列化。

当 CVE 得到解决时,它们通常不在发行说明中。

至于来自 Fortify 的警报是否是误报,我认为评估与您的应用程序相关的风险更为重要。

例如,要利用此漏洞,攻击者至少需要直接访问您的 LDAP 实例(参见第 31 页),这可能表明存在更大的安全问题。在 8u191 及之后,攻击者还需要在你的类路径中找到一个容易受到不安全反序列化的类,以重现 BH 演讲所展示的内容。


查看完整回答
反对 回复 2022-06-30
  • 1 回答
  • 0 关注
  • 154 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信