在FusionAuth中经过身份验证的用户可以编辑电子邮件模板或主题,从而通过处理自定义模板的Apache FreeMarker引擎中的freemarker.template.utility.Execute在底层操作系统上执行任意命令。
一. 漏洞概述
北京时间1月28日,NVD发布了一个FusionAuth存在Apache Freemarker模板远程命令执行(CVE-2020-7799)的漏洞;发现在FusionAuth中经过身份验证的用户可以编辑电子邮件模板(Home->Settings->Email Templates)或主题(Home->Settings->Themes),从而通过处理自定义模板的Apache FreeMarker引擎中的freemarker.template.utility.Execute在底层操作系统上执行任意命令。
FusionAuth是现代的访问管理开源应用程序,可以与多种技术和平台集成。可以通过管理仪表板以多种方式配置和自定义FusionAuth,为任何应用程序提供身份验证、授权和用户管理;由于使用Apache FreeMarker模板引擎,且未对用户输入数据进行过滤,此漏洞将对服务器安全造成严重威胁,目前PoC已公开,请相关用户及时进行防护。
参考链接:
https://nvd.nist.gov/vuln/detail/CVE-2020-7799
二. 影响范围
受影响版本
FusionAuth <= 1.10.1
不受影响版本
FusionAuth >= 1.11
三. 漏洞检测
相关用户可通过版本检测的方法判断当前应用是否存在风险。
在web管理页面左下方可查看当前所使用的FusionAuth版本:
若当前版本在受影响范围内,则可能存在安全风险。
四. 漏洞防护
4.1 官方升级
4.1.1 快速升级
选择快速安装的用户可以使用如下方法升级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
4.1.2 手动升级
选择手动安装的用户可以使用如下方法升级FusionAuth到最新版本:
Linux:
进入安装目录,停止程序并进行卸载:
# 停止程序
/bin/shutdown.sh
# 卸载
rm -rf ./fusionauth-app
rm -rf ./fusionauth-search
rm -rf ./bin
访问以下链接下载最新的程序包(1.14.0版):
进入安装目录,解压安装包:
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版):
将上述压缩包解压后,进行安装:
# 安装
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
声明
本安全公告仅用来描述可能存在的安全问题,绿盟科技不为此安全公告提供任何保证或承诺。由于传播、利用此安全公告所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,绿盟科技以及安全公告作者不为此承担任何责任。
绿盟科技拥有对此安全公告的修改和解释权。如欲转载或传播此安全公告,必须保证此安全公告的完整性,包括版权声明等全部内容。未经绿盟科技允许,不得任意修改或者增减此安全公告内容,不得以任何方式将其用于商业目的。
关于绿盟科技
北京神州绿盟信息安全科技股份有限公司(简称绿盟科技)成立于2000年4月,总部位于北京。在国内外设有30多个分支机构,为政府、运营商、金融、能源、互联网以及教育、医疗等行业用户,提供具有核心竞争力的安全产品及解决方案,帮助客户实现业务的安全顺畅运行。
基于多年的安全攻防研究,绿盟科技在网络及终端安全、互联网基础安全、合规及安全管理等领域,为客户提供入侵检测/防护、抗拒绝服务攻击、远程安全评估以及Web安全防护等产品以及专业安全服务。
北京神州绿盟信息安全科技股份有限公司于2014年1月29日起在深圳证券交易所创业板上市,股票简称:绿盟科技,股票代码:300369。