Fortigate SSL VPN任意文件读取漏洞安全通告

发布时间 2019-08-26

漏洞编号和级别


CVE编号:CVE-2018-13379,危险级别:高危,CVSS分值:7.5


影响版本


受影响的版本


FortiOS 5.6.3 - 5.6.7

FortiOS 6.0.0 - 6.0.4


漏洞概述


Fortinet FortiOS是美国飞塔(Fortinet)企业的一套专用于FortiGate网络安全平台上的安全操作系统。该系统为用户提供防火墙、防病毒、IPSec/SSLVPNWeb内容过滤和反垃圾邮件等多种安全功能。


Fortigate SSL VPN在全球VPN市场位列前5,无数大中型企业都在使用。此次曝出的任意文件读取漏洞利用方式简单,影响范围较广,可能会在今后很长一段时间内持续威胁Fortigate SSL VPN的用户。


该漏洞源于使用了不安全的函数,导致未能正确过滤URL中的恶意代码,最终造成任意文件读取。具体如下:


Fortigate SSL VPN的某个页面在获取对应国家的语言文件时,会使用URL中的lang参数去构建要读取的文件名,示例如下:


snprintf(s, 0x40, "/migadmin/lang/%s.json", lang);


以上函数没有任何安全保护,虽然貌似只能指定json文件,但实际上大家可以利用snprintf的特性实现任意文件读取。根据函数的参数,其最多将栈空间-1的字符串写入输出中。因此,大家只需要使输入超过缓冲区大小,.json就会因函数限制而被删除,大家就可以读取任意文件。


漏洞验证


EXP: https://cxsecurity.com/issue/WLB-2019080089


修复建议


目前厂商已发布升级补丁以修复漏洞,补丁获取链接:

https://fortiguard.com/psirt/FG-IR-18-384


参考链接


http://www.cnnvd.org.cn/web/xxk/ldxqById.tag?CNNVD=CNNVD-201905-1026