( 1 ) 취약점 정의
DEVCORE 보안팀에서 PHP CGI 인수 삽입 취약점을 발견함.
CVSS 9.8 로 식별된 심각한 취약점으로 Windows 운영 체제에 설치된 모든 버전의 PHP 에 영향을 미침.
기존 "[CVE-2012-1823] PHP-CGI Query String Parameter Injection" 취약점을 우회하는 것으로 확인됨.
해당 취약점으로 전체 시스템을 심각하게 손상시킬 수 있으므로 최신 버전 업데이트와 보안장비 대응이 필요할 것으로 보임.
영향받는 버전
PHP 8.3 < 8.3.8
PHP 8.2 < 8.2.20
PHP 8.1 < 8.1.29
( 2 ) 취약점 분석
< 소프트 하이픈을 이용한 취약점 공격 >
기존 "[CVE-2012-1823] PHP-CGI Query String Parameter Injection" 취약점은 일반 하이픈(0x2D)를 사용한 반면, 이번 취약점은 소프트 하이픈(0xAD)를 사용하여 우회함.
Apache 가 실제 하이픈을 보안 처리(이스케이프)하지만 소프트 하이픈은 보안 처리 하지 않고 코드가 실행됨.
< 현재 공개된 PoC 화면 >
( 3 ) 취약점 방어
1. PHP 최신 버전 업데이트
PHP 8.3 - 8.3.8
PHP 8.2 - 8.2.20
PHP 8.1 - 8.1.29
2. Snort 패턴
설명 : HTTP URL 에 PHP CGI 모드의 소프트 하이픈 사용 시 탐지하는 패턴
alert tcp any any -> any any (msg:"CVE-2024-4577_PHP_CGI_Argument_Injection_1""; flow:established,from_client; content:".php?%ADd+"; nocase; http_uri;)
alert tcp any any -> any any (msg:"CVE-2024-4577_PHP_CGI_Argument_Injection_2""; flow:established,from_client; content:".php?"; http_uri; content:"%AD%64+"; nocase; http_uri;)
설명 : HTTP URL 에 PHP CGI 모드의 소프트 하이픈 사용 시 탐지하는 패턴 (http_uri 옵션 미지원 시 대체 패턴)
alert tcp any any -> any any (msg:"CVE-2024-4577_PHP_CGI_Argument_Injection_3""; flow:established,from_client; content:".php?%ADd+"; nocase; content:" HTTP/"; content:"|0d 0a 0d 0a|"; distance:3; within:7;)
alert tcp any any -> any any (msg:"CVE-2024-4577_PHP_CGI_Argument_Injection_4""; flow:established,from_client; content:".php?"; content:"%AD%64+"; nocase; content:" HTTP/"; content:"|0d 0a 0d 0a|"; distance:3; within:7;)
3. 웹방화벽 패턴 (웹방화벽에 인증서를 넣어서 암호화 통신을 탐지 및 차단하는 경우)
설명 : 파일 업로드 시 HTTP URL 에 경로 탐색 공격을 탐지하는 패턴
HTTP URL : .php?%ADd+
or
HTTP URL : %AD%64+
참고 사이트 :
https://blog.naver.com/koromoon/120197875709
https://labs.watchtowr.com/no-way-php-strikes-again-cve-2024-4577/
https://github.com/watchtowrlabs/CVE-2024-4577
댓글 없음:
댓글 쓰기