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/SSLVPN、Web內容過濾和反垃圾郵件等多種安全功能。
Fortigate SSL VPN在全球VPN市場位列前5,無數大中型公司都在使用。此次曝出的任意文件讀取漏洞利用方式簡單,影響范圍較廣,可能會在今后很長一段時間內持續威脅Fortigate SSL VPN的用戶。
該漏洞源于使用了不安全的函數,導致未能正確過濾URL中的惡意代碼,最終造成任意文件讀取。具體如下:
Fortigate SSL VPN的某個頁面在獲取對應國家的語言文件時,會使用URL中的lang參數去構建要讀取的文件名,示例如下:
snprintf(s, 0x40, "/migadmin/lang/%s.json", lang);
以上函數沒有任何安全保護,雖然貌似只能指定json文件,但實際上我們可以利用snprintf的特性實現任意文件讀取。根據函數的參數,其最多將??臻g-1的字符串寫入輸出中。因此,我們只需要使輸入超過緩沖區大小,.json就會因函數限制而被刪除,我們就可以讀取任意文件。
? 漏洞驗證
EXP: https://cxsecurity.com/issue/WLB-2019080089。
? 修復建議
目前廠商已發布升級補丁以修復漏洞,補丁獲取鏈接:
https://fortiguard.com/psirt/FG-IR-18-384。