CVE-2019-7238: Sonatype Nexus Repository Manager 3远程代码执行漏洞 - 嘶吼 RoarTalk – 网络安全行业综合服务平台,4hou.com

CVE-2019-7238: Sonatype Nexus Repository Manager 3远程代码执行漏洞

ang010ela 漏洞 2019-03-18 11:28:40
230518
收藏

导语:腾讯安全云鼎实验室和长亭科技安全研究员发现Sonatype Nexus Repository Manager 3存在远程代码执行漏洞CVE-2019-7238。

近日,研究人员发现了通用软件包仓库管理服务Nexus Repository Manager 3存在访问控制缺失及远程代码执行漏洞,漏洞编号为CVE-2019-7238。

研究人员在Sonatype Nexus Repository Manager (NXRM) 3中发现一个远程代码执行漏洞。Sonatype Nexus Repository Manager (NXRM) 3是一个允许开发者管理软件开发、应用实现、自动硬件提供所必须的软件组件的开源项目。漏洞影响的NXRM 3目前安装量已经超过15万,该漏洞是腾讯安全云鼎实验室安全研究员Rico和长亭科技安全研究员voidfyoo发现的。

研究人员通过分析发现利用该安全漏洞并不需要认证。因此攻击者很容易就开源发送伪造的请求到宿主服务器或在服务器上执行任意代码或程序。Sonatype已经修复了该漏洞。

缺乏适当的访问控制

CVE-2019-7238是一类表达式注入漏洞,具体是位于previewAssets函数的 CSEL (Content Selector Expression Language)表达式没有进行适当的处理。CSEL是JEXL(Java Expression Language)的轻量版本,用来进行特定路径和脚本查询。

研究人员分析发现, previewAssets()将有漏洞的参数作为previewAssets请求的表达式特征的值。随后,该函数会调用checkJexlExpression()方法,然后在没有处理提供的表达式值的情况下在ContentExpressionFunction.java中执行execute()方法。这最终导致了任意代码执行。

previewAssets请求的样本如图1所示,其中method被设定为previewAssets, property被设定为expression,value值中含有恶意代码(下图高亮显示)。当发送给NXRM 3时,因为没有进行适当的访问控制处理就会导致远程代码执行。

Figure 1. Snippet of previewAssets JSON request

图1. previewAssets JSON请求

漏洞利用和补丁

要利用以下漏洞,需要满足以下条件:

· NXRM 3服务器版本低于3.15

· 在NXRM 3的任意仓库中至少存在一个文件,如图2所示

Figure 2. Existing repositories in NXRM 3

图2. NXRM 3中现有的仓库

在满足以上条件的情况下,攻击者可以利用该漏洞来获取远程主机的控制权。

Figure 3. Execution of a reverse shell on a remote host

图3.在远程主机上执行逆向shell

要修复该漏洞,需要增加权限请求。图4中更新的代码显示的就是在previewAssets()函数调用前对NXRM 3导入的注册表进行权限检查。该过程使用了Java类文件org.apache.shiro.authz.annotation.RequiresPermissions的@RequiresPermissions(‘nexus:selectors:*’)接口。

Figure 4. Patching CVE-2019-7238

图4. CVE-2019-7238补丁

建议

NXRM 3这样的仓库管理器是软件开发者用来增强速度和效率的工具。像CVE-2019-7238这样的漏洞会使用这类工具有潜在被滥用的可能性。这也说明了对软件开发过程进行持续性监控的重要性,包括识别可能存在的漏洞和将最新的威胁情报应用到恶意软件开发中。

  • 分享至
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

发表评论

 
本站4hou.com,所使用的字体和图片文字等素材部分来源于原作者或互联网共享平台。如使用任何字体和图片文字有侵犯其版权所有方的,嘶吼将配合联系原作者核实,并做出删除处理。
©2024 北京嘶吼文化传媒有限公司 京ICP备16063439号-1 本站由 提供云计算服务