🇰🇷 한글 설명
Emlog 웹사이트 빌딩 시스템 2.6.29 및 이전 버전에서 emUnZip() 함수가 ZIP 파일 내 경로의 ../ 트래버설 시퀀스를 검증하지 않는 취약점이 발견되었습니다. 공격자는 이를 통해 서버의 임의 파일을 덮어쓸 수 있으며, config.php와 같은 파일을 조작하여 원격 코드 실행(RCE)을 수행할 수 있습니다.
💡 쉬운 설명
압축 파일을 풀 때 파일 이름에 '상위 폴더로 이동'하는 명령이 포함되어 있는지 확인하지 않는 문제입니다. 이를 통해 해커가 웹사이트의 중요한 설정 파일을 몰래 바꿔치기하여 서버를 마음대로 조종할 수 있습니다.
🇺🇸 원문 (English)
Emlog is an open source website building system. In versions 2.6.29 and prior, the emUnZip() function extracts all ZIP entries via ZipArchive::extractTo() without validating entry paths for ../ traversal sequences. Only the first entry's subdirectory structure is checked. An attacker can overwrite arbitrary files on the server filesystem, including config.php for immediate RCE. At time of publication, there are no publicly known patches.
📍 영향받는 시스템
Emlog 2.6.29 및 그 이전 모든 버전
⚔️ 공격 벡터
조작된 ZIP 파일을 업로드하여 서버 내 임의의 경로에 파일을 생성하거나 덮어쓰는 방식
🛡️ 대응 방법
해당 취약점이 해결된 패치가 출시될 때까지 업데이트를 대기하거나, 파일 업로드 기능 및 emUnZip() 함수 사용을 제한해야 합니다.
🔧 검증 코드
설치된 Emlog 소스 코드 내 버전 명시 파일(예: version.php 등)을 확인하여 2.6.29 이하인지 점검하십시오.
php -r 'echo "Emlog version check";' # 실제 버전 확인은 설치된 소스 코드의 버전 정의 파일을 확인해야 함