【高危】- Apache Tapestry远程代码执行漏洞预警(CVE-2021-27850)
■ 漏洞描述
Apache Tapestry是一种用Java编写的面向组件的Web应用程序框架。Tapestry可以在任何应用程序服务器下工作,并且可以轻松集成所有后端,如Spring,Hibernate等。
2021年04月14日,Apache Tapestry被披露存在一个严重的远程代码执行漏洞(CVE-2021-27850),攻击者无需经过身份验证即可利用。该漏洞绕过了CVE-2019-0195的修复程序。
在CVE-2019-0195中,通过操纵classpath资产文件URL,攻击者可以在classpath中猜测文件的路径,然后下载该文件。攻击者可以通过请求包含HMAC秘钥的URL http://localhost:8080/assets/something/services/AppModule.class来下载文件AppModule.class。
CVE-2019-0195的修复使用了黑名单过滤,其检查URL是否以“.class”、“.properties”或“.xml”结尾,但这种黑名单过滤可以通过在URL结尾添加“/”来绕过。当http://localhost:8080/assets/something/services/AppModule.class/在黑名单检查后,斜线被剥离,AppModule.class文件被加载到响应中。这个类通常包含用于对序列化的Java对象进行签名的HMAC秘钥,在知道该密钥的情况下,攻击者就可以签署Java小工具链(例如ysoserial的CommonsBeanUtils1),最终导致远程代码执行。
 
■ 影响范围
Apache Tapestry 5.4.5
Apache Tapestry 5.5.0
Apache Tapestry 5.6.2
Apache Tapestry 5.7.0
 
■ 漏洞检测
匹配系统版本
 
■ 漏洞修复
目前官方已修复了此漏洞,建议升级到以下版本:
5.6.2或更高版本、5.7.1或更高版本。
下载链接:
https://tapestry.apache.org/download.html
 
■ 临时修复
限制web服务内网访问或加waf访问
 
■ 漏洞详情
https://nvd.nist.gov/vuln/detail/CVE-2021-27850