GoAhead Web Server 在3.6.5之前的所有版本中存在一个远程代码执行漏洞(CVE-2017-17562)。该漏洞源于使用不受信任的HTTP请求参数初始化CGI脚本环境,并且会影响所有启用了动态链接可执行文件(CGI脚本)支持的用户。
当与glibc动态链接器结合使用时,使用特殊变量(如LD_PRELOAD)可以滥用该漏洞,从而导致远程代码执行。
参考链接:
https://www.elttam.com.au/blog/goahead/
https://github.com/embedthis/goahead/issues/249
受影响的版本
- GoAhead Web Server Version < 3.6.5
不受影响的版本
- GoAhead Web Server Version >= 3.6.5
技术防护方案
用户自查
该漏洞影响linux服务器上开启了动态链接可执行文件的用户,同时请检查当前GoAhead Web Server版本是否在受影响范围内,如果当前版本低于3.6.5,则存在风险。
版本检测可使用如下命令:
./goahead –version |
官方修复方案
官方已经在新版本中修复了该漏洞,请用户尽快升级到最新版本进行防护。用户可以保存auth.txt和route.tx配置文件, 然后删除以前版本的GoAhead,接下来,安装新版本并将您的配置应用于新版本。
参考链接:
https://embedthis.com/goahead/download.html
https://embedthis.com/goahead/doc/start/installing.html
绿盟科技防护建议
绿盟科技检测类产品与服务
- 公网资产可使用绿盟云 紧急漏洞在线检测,检测地址如下:
https://cloud.nsfocus.com/#/krosa/views/initcdr/productandservice?page_id=12
2、内网资产可以使用绿盟科技的入侵检测系统(IDS) 进行检测。
入侵检测系统(IDS)
http://update.nsfocus.com/update/listIds
通过上述链接,升级至最新版本即可进行检测
使用绿盟科技防护类产品(IPS/NF/WAF)进行防护:
- 入侵防护系统(IPS)
http://update.nsfocus.com/update/listIps
- 下一代防火墙系统(NF)
http://update.nsfocus.com/update/listNf
- Web应用防护系统(WAF)
http://update.nsfocus.com/update/wafIndex
通过上述链接,升级至最新版本即可进行防护!
技术分析
漏洞分析
GoAhead的cgi程序在处理HTTP请求时,没有正确过滤参数,可被注入变量LD_PRELOAD,导致远程命令执行。
goahead/src/cgi.c的cgihandler函数用于处理HTTP请求。
它会从HTTP请求的参数中提取出key-value值,代入envp数组中,作为环境变量,传递给launchCgi函数,执行cgi程序。
launchCgi函数中通过 execve 将之前传入的环境变量作为cgi程序的环境变量执行。
而我们知道在linux中是可以通过LD_PRELOAD环境变量来hook,劫持函数的执行流。
在函数中可以看到只对 REMOTE_HOST 和 HTTP_AUTHORIZATION进行了过滤,对其他变量并没有过滤。
通过“ envp[n++] = sfmt(“%s=%s”, s->name.value.string, s->content.value.string); ”直接把HTTP请求中的参数赋值给了envp数组,而后面envp数组直接作为了cgi程序执行时的环境变量。
因此,通过恶意的HTTP请求可以让goahead的cgi程序加载执行指定的so库文件。
漏洞修复
从补丁信息看,官方在2017年6月就修复了该问题。
增加了HTTP参数的过滤,防止非法参数传入环境变量中。
可以看到除了“LD_”开头的变量,还增加了对“CDPATH”、“IFS”等字符的过滤。
声 明
本安全公告仅用来描述可能存在的安全问题,绿盟科技不为此安全公告提供任何保证或承诺。由于传播、利用此安全公告所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,绿盟科技以及安全公告作者不为此承担任何责任。绿盟科技拥有对此安全公告的修改和解释权。如欲转载或传播此安全公告,必须保证此安全公告的完整性,包括版权声明等全部内容。未经绿盟科技允许,不得任意修改或者增减此安全公告内容,不得以任何方式将其用于商业目的。
关于绿盟科技
北京神州绿盟信息安全科技股份有限公司(简称绿盟科技)成立于2000年4月,总部位于北京。在国内外设有30多个分支机构,为政府、运营商、金融、能源、互联网以及教育、医疗等行业用户,提供具有核心竞争力的安全产品及解决方案,帮助客户实现业务的安全顺畅运行。
基于多年的安全攻防研究,绿盟科技在网络及终端安全、互联网基础安全、合规及安全管理等领域,为客户提供入侵检测/防护、抗拒绝服务攻击、远程安全评估以及Web安全防护等产品以及专业安全服务。
北京神州绿盟信息安全科技股份有限公司于2014年1月29日起在深圳证券交易所创业板上市交易,股票简称:绿盟科技,股票代码:300369。