🇰🇷 한글 설명
PHP 5.3.6 이전 버전의 substr_replace 함수에서 동일한 변수를 여러 인자로 사용할 때 메모리 해제 후 사용(Use-After-Free) 취약점이 발생합니다. 이를 통해 메모리 손상으로 인한 서비스 거부(DoS) 또는 임의의 코드 실행이 가능합니다.
💡 쉬운 설명
PHP의 문자열 치환 함수가 같은 변수를 반복 사용할 때 이미 제거된 메모리에 접근하는 버그입니다. 이를 악용하면 웹 애플리케이션이 충돌하거나 공격자가 서버를 제어할 수 있습니다.
🇺🇸 원문 (English)
Use-after-free vulnerability in the substr_replace function in PHP 5.3.6 and earlier allows context-dependent attackers to cause a denial of service (memory corruption) or possibly have unspecified other impact by using the same variable for multiple arguments.
📍 영향받는 시스템
PHP 5.3.6 이전 버전 (5.2.x, 5.3.0-5.3.6 포함)
⚔️ 공격 벡터
웹 애플리케이션이 사용자 입력을 substr_replace()에 직접 전달할 때 같은 변수를 여러 인자로 사용하도록 유도
🛡️ 대응 방법
PHP를 5.3.7 이상으로 업그레이드하거나 substr_replace 호출 시 서로 다른 변수 사용
🔧 검증 코드
PHP 버전이 5.3.7 이상이면 안전하고, 5.3.6 이하면 취약합니다.
php -v | grep -oP '(?<=PHP )\d+\.\d+\.\d+'