Post

CVE-2022-22965 분석

CVE-2018-13379

FortiOS SSL VPN 웹 포털에서의 Path Traversal 취약점이다.

공격자가 변조된 HTTP Request를 보내게 되면 FortiOS 내의 파일들을 다운로드 할 수 있다.

취약점 설명

취약점이 발생되는 코드를 보면 lang 매개변수를 통해 해당 파일의 경로를 만들어 주는 것을 볼 수 있다.

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

JSON 파일 만을 사용할 수 있는 것처럼 보이지만, snprintf를 악용할 수 있다.

snprintf() 함수는 배열 버퍼 문자와 값의 형식을 지정하고 저장한다. 버퍼에 NULL 바이트를 포함한 최대 크기의 바이트를 저장한다.

따라서 버퍼 크기를 초과하게 되면 뒤의 .json 을 truncate 할 수 있다. 이 부분을 이용해서 적절하게 Request를 조작하면 해당 시스템의 파일을 유출시킬 수 있다.

Affected Product

  • FortiOS 6.0 - 6.0.0 to 6.0.4
  • FortiOS 5.6 - 5.6.3 to 5.6.7
  • FortiOS 5.4 - 5.4.6 to 5.4.12

Reference

Attacking SSL VPN - Part 2: Breaking the Fortigate SSL VPN

This post is licensed under CC BY 4.0 by the author.