🇰🇷 한글 설명
ChurchCRM 7.2.0 이전 버전의 데이터베이스 백업 복원 기능에서 파일 확장자 검증 없이 업로드된 아카이브의 Images/ 디렉토리 파일을 웹 접근 가능 경로에 복사합니다. 인증된 관리자가 PHP 웹쉘이 포함된 악성 백업을 업로드하면 원격 코드 실행이 가능하며, CSRF 토큰 검증 부재로 인해 관리자 강제 복원도 가능합니다.
💡 쉬운 설명
교회 관리 소프트웨어(ChurchCRM)의 백업 복원 기능이 악성 PHP 파일이 웹에서 실행되도록 허용합니다. 관리자가 악의적인 백업을 업로드하거나 공격자가 관리자를 속여 백업을 복원하게 하면 서버가 완전히 장악될 수 있습니다.
🇺🇸 원문 (English)
ChurchCRM is an open-source church management system. In versions prior to 7.2.0, the database backup restore functionality extracts uploaded archive contents and copies files from the Images/ directory into the web-accessible document root using recursiveCopyDirectory(), which performs no file extension filtering. An authenticated administrator can upload a crafted backup archive containing a PHP webshell inside the Images/ directory, which is then written to a publicly accessible path and executable via HTTP requests, resulting in remote code execution as the web server user. The restore endpoint also lacks CSRF token validation, enabling exploitation through cross-site request forgery targeting an authenticated administrator. This issue has been fixed in version 7.2.0.
📍 영향받는 시스템
ChurchCRM 7.2.0 이전 모든 버전
⚔️ 공격 벡터
인증된 관리자가 PHP 웹쉘이 포함된 조작된 백업 아카이브를 업로드하거나, CSRF 공격으로 관리자를 유도하여 악성 백업을 자동 복원
🛡️ 대응 방법
ChurchCRM을 7.2.0 이상으로 즉시 업그레이드하고, 공개된 Images/ 디렉토리의 예상치 못한 PHP 파일 제거
🔧 검증 코드
설치된 ChurchCRM의 버전을 확인합니다. dpkg 출력에서 Version 열이 7.2.0 미만이거나 composer.json에서 version 필드가 7.2.0 미만이면 취약합니다.
dpkg -l 2>/dev/null | grep -i churchcrm || grep '"version"' /var/www/churchcrm/composer.json 2>/dev/null | head -1