注意:这篇文章是作为CVE-2022-22963已确认和修补漏洞的研究报告。虽然Sysdig的研究人员将Spring Cloud错误地称为“Spring4Shell”,但是应该指出,,由于另一家安全公司将Spring Core中另一个未经证实的漏洞称为“Spring4Shell”,因此现实研究中对于如何称呼它确实存在一些困惑。所以为了避免混淆,本文用Spring4Shell代指Spring Cloud存在的漏洞。
Spring Cloud Function中存在一个令人担忧的安全漏洞,这可能会导致远程代码执行漏洞(RCE)以及整个互联网连接主机威胁。一些研究人员指出,由于该漏洞易于利用以及基于Java的性质特征,它不免让人想起去年12月发现的Log4Shell漏洞。
Sysdig的安全研究员Stefano Chierici在与Threatpost共享的材料中指出:Spring4Shell是存在于一系列基于Java漏洞中的一个。因为他的开发门槛很低,所以我们会看到攻击者利用其技术大量地进行网络攻击。一旦找到攻击目标,网络威胁行为者可能会采用安装加密器、分布式拒绝服务攻击(DDoS)或者远程访问工具包进行攻击。
根据VMware周二的公告,该错误(CVE-2022-22963)影响3.1.6和3.2.2版本以及其他陈旧的、不受支持的版本。相应用户只有更新到3.1.7和3.2.3版本才能安装补丁。
为什么CVSS评分如此低?
虽然它在CVSS(通用漏洞评分系统)评分表上显示为中等严重性,得分为5.4分,但研究人员警告不要低估该漏洞的影响。VMware正在使用CVSSSv3基本指标‘CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:L’进行检测评分,但是对于检测该漏洞的保密性、完整性和可用性影响并不具有代表性,
Sysdig研究人员Nick Lang和Jason Avery告诉Threatpost。“此漏洞允许攻击者从Spring Cloud的内部打开他的保护系统,这可能就是该漏洞的关键所在。这造成影响十分明显,且不需要用户交互,因此在CVE(通用漏洞披露)中给了一个关键的评级。他们补充说:在他们的测试中,他们验证了不需要用户交互来利用CVE-2022-22963漏洞来获得未经授权的访问的这一可能性。
同时Tenable员工研究工程师Satnam Narang也同意CVSS分数可能无法反映该漏洞所造成的真正影响。他通过电子邮件表示:由于该漏洞被视为远程代码执行缺陷,可以被未经身份验证的攻击者利用,CVSSv3分数似乎可能无法反映该缺陷的实际影响。
而Sophos首席研究科学家Paul Ducklin则指出,它令人震惊地允许“即时RCE”。他告诉Threatpost他认为他的推荐理由十分简单,根本不需要分数来衡量。因为CVE-2022-22693的补丁吸引了很多人的兴趣,而且概念验证代码很容易获得,那么当你可以如此轻松地领先时,为什么要处于一个落后的地位呢?
可能导致大规模的严重后果
Spring Cloud是一套分布式服务框架:即是对在企业中构建分布式应用程序有用的现成组件的集合。它被各家公司广泛使用包括各种应用程序的提供商,比如Kubernetes和Netflix。因此,根据Sysdig的说法,Spring4Shell的发展轨迹令人担忧。Chierici认为:Spring......正在被数百万使用Spring Framework的开发人员使用来创建高性能、易于测试的代码。Spring Cloud Function框架允许开发人员使用Spring功能编写与云无关的功能。这些功能可以是独立的类别,因此可以轻松地将它们部署到任何云平台上,以构建无服务器框架。并且他补充说:由于Spring Cloud Function可用于AWS lambda或Google Cloud Functions等云无服务器功能,这些功能也可能受到影响......在您的云帐户中领先于攻击者。
CVE-2022-22963的影响正在逐步扩大
根据Sysdig的说法,该漏洞可以通过HTTP被加以利用:就像Log4Shell一样,它只需要攻击者向Java应用程序的HTTP服务发送恶意字符串就可以完成攻击的意图了。Chierici解释说:使用路由功能,用户可以提供特别制作的Spring Expression Language(SpEL)作为表达式,以访问本地资源并在主机中执行命令。而CVE-2022-22963的问题在于,它允许通过使用HTTP请求头中spring.cloud.function.routing-expression传入的参数值作为SPEL表达式进行处理。正因如此,不幸的是,使用一个简单的curl命令,就可以十分容易地完成一个漏洞“。curl命令如下:
curl -i -s -k -X $’POST’ -H $’Host: 192.168.1.2:8080′ -H $’spring.cloud.function.routing-expression:T(java.lang.Runtime).getRuntime().exec(\”touch /tmp/test”)’ –data-binary $’exploit_poc’ $’http://192.168.1.2:8080/functionRouter’
Sysdig在其GitHub页面上发布了一个PoC漏洞,如前所述,其他漏洞正在网络中疯狂流传。Ducklin指出:虽然到目前为止,我们看到的PoC(验证性测试)都只是弹出了一个计算器应用程序,但这足以证明这一点,即服务器上已经安装的任何命令都可以轻松启动。因此他将该漏洞称为“Spring Expression Resource Access漏洞”或“SPEL漏洞”。他补充说:“这包括远程触发等Web下载程序就像curl(利用URL语法在命令行下工作的文件传输工具),启动命令程序就像bash(Bourne shell的后继兼容版本与开放源代码版本),或者按顺序同时进行这两个程序以安静快速地植入恶意软件。”
安装补丁
据Sysdig称,安装应用补丁后,任何使用Spring Cloud构建的应用程序的人都应该仔细检查他们的安装系统,以确保不存在相应的漏洞。Chierici提醒道:即使用户可能已经升级了数据库或对受漏洞影响的系统应用了其他缓解措施,但用户仍然需要检测环境中是否存在任何利用尝试和破坏的活动。他指出,这种检测可以通过图像扫描仪或运行时检测引擎来进行,以发现已安装的(无扩展名的)系统文件或置标语言中的恶意行为。根据Sysdig的文章所言,对此类漏洞的最佳防御是尽快修补。在当今世界中,清楚地了解用户环境中所使用的软件包是必须的。
本文翻译自:https://threatpost.com/critical-rce-bug-spring-log4shell/179173/如若转载,请注明原文地址