java - jdk-8u191 中修复了 LDAP 条目中毒问题吗?

标签 java spring security spring-security ldap

Fortify 报告了我的一个 Spring 应用程序中存在 LDAP 条目中毒漏洞。您可以从以下链接获取有关此漏洞的更多信息:

https://www.youtube.com/watch?v=Y8a5nB-vy78&feature=youtu.be&t=2111

https://www.blackhat.com/docs/us-16/materials/us-16-Munoz-A-Journey-From-JNDI-LDAP-Manipulation-To-RCE.pdf

https://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 -> 完整代码集

https://spring.io/guides/gs/authenticating-ldap/

然后,我将以下行添加到包含的 test-server.ldif 文件中的 bob 条目以及开发人员条目中:

javaFactory: PayloadObject
objectClass: javaNamingReference
javaCodebase: 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 条目中毒现在是否为误报/阳性?或者是否有一些配置选项可以设置来覆盖此“修复”?

最佳答案

8u191 closed a remote class loading vulnerability LDAP 中,尽管研究正在进行中。每当您在 Java 中将字节流转换为对象时,您不仅要考虑类加载(8u191 解决的问题),还要考虑不安全的反序列化。

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

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

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

关于java - jdk-8u191 中修复了 LDAP 条目中毒问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54789922/

相关文章:

java - SQLite与android,如何连接到在线数据库?

java - 如何将主键的 Id 填充到外键

java - 无论如何,是否可以向实体添加动态 where 子句来动态过滤该实体的任何查询结果?

ios - 通过 WiFi 配对 iOS 和 Mac 应用程序的框架

sql - 准备好的语句如何防范 SQL 注入(inject)攻击?

java - getResource() 到运行时的文件

spring - 为什么 Spring Initializr 拼写为 initializr 而不是 initializer?

java - 创建名为 'mySessionFactory' 的 bean 时出错 bean 初始化失败;嵌套异常是 MalformedParameterizedTypeException

java - 泽西网络服务安全问题

java - 使用 Spring Security 的 IP 过滤器