背景
2019年10月29日,有研究人员在GitHub上公布了Apache Solr RCE漏洞的PoC代码。Solr是Apache Lucene内置的开源平台。PoC公布之初,该漏洞没有CVE编号也没有来自Apache的官方确认。Tenable研究人员分析确认了Apache Solr v7.7.2 到 8.3 版本都受到该漏洞的影响,研究人员还推测包含Config API的老版本也受该漏洞的影响。
分析
根据该PoC,攻击者在识别出Solr core名后可以攻击有漏洞的Apache Solr实例。在识别出core名后,攻击者可以发送精心伪造的HTTP POST请求到Config API来将solrconfig.xml文件的Velocity Response Writer的params resource loader值修改为true。
启用该参数使得攻击者可以在伪造的Solr请求中使用velocity template参数,最终引发RCE。
虽然最近发布的Apache Solr 8.3解决了7月报告的默认配置漏洞,但Velocity template漏洞仍然没有修复。
PoC
研究人员于2019年10月29日将PoC上传到了Github Gist。今天后,漏洞利用脚本也公布在Github上。
Github Gist:https://gist.github.com/s00py/a1ba36a3689fa13759ff910e179fc133
漏洞利用脚本:https://github.com/jas502n/solr_rce
解决方案
截至目前,官方仍没有发布补丁。在补丁发布前,研究人员建议更新在Apache Solr中添加实例来防止该漏洞被攻击者利用。检查solrconfig.xml配置中的VelocityResponseWriter类来确保params resource loader的值是false。
除非Config API被锁定,攻击者还可以修改solrconfig.xml文件。