🇰🇷 한글 설명
vBulletin 5.3.x 이하에서 PHP unserialize() 함수의 안전하지 않은 사용으로 인한 비인증 역직렬화 취약점으로, 공개 API인 cacheTemplates() 함수의 templateidlist 매개변수를 통해 악용됩니다. 이를 통해 임의의 파일 삭제 및 특정 조건에서 원격 코드 실행이 가능합니다.
💡 쉬운 설명
vBulletin 포럼에서 로그인 없이 특정 요청을 보내면 서버가 악의적인 데이터를 처리하여 파일을 삭제하거나 코드를 실행할 수 있습니다. 누구나 인터넷에서 이 공격을 시도할 수 있어서 매우 위험합니다.
🇺🇸 원문 (English)
In vBulletin through 5.3.x, there is an unauthenticated deserialization vulnerability that leads to arbitrary file deletion and, under certain circumstances, code execution, because of unsafe usage of PHP's unserialize() in vB_Library_Template's cacheTemplates() function, which is a publicly exposed API. This is exploited with the templateidlist parameter to ajax/api/template/cacheTemplates.
📍 영향받는 시스템
vBulletin 5.3.x 이하 모든 버전
⚔️ 공격 벡터
비인증 사용자가 ajax/api/template/cacheTemplates 엔드포인트에 조작된 templateidlist 파라미터를 POST로 전송
🛡️ 대응 방법
vBulletin을 5.4.0 이상으로 업데이트하거나 unserialize() 호출 전에 입력값 검증 및 화이트리스트 기반 필터링 적용
🔧 검증 코드
'Patched' 출력 = 패치됨, 'Vulnerable' 또는 정상 응답 = 취약함. 실제 검증은 대상 시스템의 권한이 있을 때만 수행
curl -s http://target/ajax/api/template/cacheTemplates -d 'templateidlist=1' -H 'Content-Type: application/x-www-form-urlencoded' | grep -q 'error' && echo 'Patched' || echo 'Vulnerable'