🇰🇷 한글 설명
Vvveb CMS 1.0.8.6 이하 버전의 백업 컨트롤러에서 nextRestore()와 nextBackup() 함수가 file GET 파라미터를 sanitizeFileName() 검증 없이 DIR_BACKUP 경로에 직접 연결합니다. 이로 인해 인증된 관리자가 서버의 임의 파일을 읽거나 임의 위치에 SQL 덤프를 기록할 수 있습니다. 해당 문제는 커밋 aa29cb0으로 패치되었습니다.
💡 쉬운 설명
관리자 권한을 가진 사용자가 백업 기능을 악용해 서버의 다른 파일을 읽거나 원하는 위치에 파일을 쓸 수 있는 취약점입니다. 이미 패치가 배포되어 최신 버전으로 업데이트하면 해결됩니다.
🇺🇸 원문 (English)
Vvveb is a powerful and easy to use CMS with page builder to build websites, blogs or ecommerce stores. In versions 1.0.8.6 and prior, the nextRestore() and nextBackup() functions in the backup controller accept a file GET parameter and concatenate it directly to DIR_BACKUP without calling sanitizeFileName(). This allows an authenticated administrator to read arbitrary files on the server (via nextRestore) and write SQL dump content to arbitrary locations (via nextBackup). This is inconsistent with the sibling functions restore(), delete(), and download() which all correctly call sanitizeFileName() first. This issue has been patched via commit aa29cb0.
📍 영향받는 시스템
Vvveb CMS 1.0.8.6 이하 버전
⚔️ 공격 벡터
인증된 관리자가 백업/복원 엔드포인트의 file 파라미터에 경로 조작 문자열(예: ../)을 넣어 임의 파일 읽기 및 쓰기를 수행
🛡️ 대응 방법
Vvveb CMS를 커밋 aa29cb0 이상 버전 또는 1.0.8.7 이상으로 업데이트
🔧 검증 코드
nextRestore/nextBackup 함수 내부에서 sanitizeFileName 호출이 존재하면 패치된 것이며, 호출이 없거나 결과가 없으면 취약한 상태로 판단
grep -rn "sanitizeFileName" $(find / -path '*vvveb*' -name 'backup*.php' 2>/dev/null) 2>/dev/null | head -20