流行的Java安全框架“pac 4j”易受RCE攻击(CVE-2023-25581)

阅读量6063

发布时间 : 2024-10-15 17:00:06

x
译文声明

本文是翻译文章,文章原作者 do son,文章来源:securityonline

原文地址:https://securityonline.info/popular-java-security-framework-pac4j-vulnerable-to-rce-cve-2023-25581/

译文仅供参考,具体内容表达以及含义原文为准。

CVE-2023-25581 - pac4j

GitHub 安全实验室(GHSL)的安全研究员 Michael Stepankin(@artsploit)在一项新的分析中发现了广泛使用的 Java 安全框架 pac4j 中的一个关键漏洞。该漏洞被追踪为 CVE-2023-25581,CVSS 得分为 9.2,攻击者可利用该漏洞在受影响的系统上执行任意代码。

pac4j 的设计目的是简化 Java 应用程序中的身份验证和授权,提供一套全面的工具来确保网络应用程序和网络服务的安全。然而,Stepankin 的分析揭示了 4.0.0 之前版本中的一个关键漏洞。

该漏洞源于 pac4j 处理用户配置文件属性的方式。正如 Stepankin 在分析中解释的那样,“org.pac4j.core.profile.InternalAttributeHandler#restore 方法反序列化了不受信任的数据”。从本质上讲,该框架未能正确验证存储在用户配置文件中的序列化 Java 对象。

攻击者可通过向用户配置文件属性注入恶意序列化对象(前缀为 {#sb64},并进行 Base64 编码)来利用这一漏洞。当还原方法处理该属性时,会不知不觉地反序列化恶意对象,从而可能导致远程代码执行(RCE)。“Stepankin 警告说:”有可能诱使程序执行任意 Java 类的反序列化。

尽管 pac4j-core 采用了限制对象输入流(RestrictedObjectInputStream)来限制可被反序列化的对象类型,但这些限制并不足以完全防止漏洞利用。正如研究人员强调的那样,“它仍然允许广泛的 Java 包,并有可能被不同的小工具链利用”。这意味着攻击者仍然可以通过利用不同的对象类型来利用该漏洞,从而可能导致远程代码执行。

RCE 是该漏洞最严重的后果之一,因为它可能允许攻击者在受影响的系统上运行任意代码,导致数据被盗、服务中断或进一步破坏网络。

好消息是,pac4j 4.0.0 及更高版本不受 CVE-2023-25581 影响。Stepankin 和 GHSL 团队强烈建议所有早期版本的用户立即升级。

本文翻译自securityonline 原文链接。如若转载请注明出处。
分享到:微信
+10赞
收藏
安全客
分享到:微信

发表评论

内容需知
合作单位
  • 安全客
  • 安全客
Copyright © 北京奇虎科技有限公司 三六零数字安全科技集团有限公司 安全客 All Rights Reserved 京ICP备08010314号-66