🇰🇷 한글 설명
Snipe-IT 8.7.0 미만 버전에서 백업 아카이브를 복구할 때 SQL 엔트리를 `--binary-mode` 플래그 없이 mysql 클라이언트로 직접 스트리밍하여 발생하는 취약점입니다. 인증된 슈퍼관리자가 조작된 ZIP 백업 파일을 업로드하고 복구를 실행하면, SQL 내의 백슬래시 명령어를 통해 운영체제 명령어를 임의로 실행할 수 있습니다. 이로 인해 데이터베이스 자격 증명과 APP_KEY 등 민감한 정보가 노출될 수 있습니다.
💡 쉬운 설명
관리자 권한을 가진 사용자가 가짜 백업 파일을 올리면, 서버가 이를 처리하는 과정에서 해커가 원하는 명령어를 컴퓨터에서 직접 실행하게 됩니다. 이 과정에서 서버의 중요한 비밀번호나 데이터가 통째로 털릴 수 있습니다.
🇺🇸 원문 (English)
Snipe-IT before 8.7.0 streams the SQL entry from an uploaded backup archive directly into the MySQL/MariaDB command-line client (`mysql`) without the --binary-mode flag, so the client interprets lines beginning with backslash commands such as `\!` as local shell commands. An authenticated superadministrator who uploads a crafted ZIP backup (POST /admin/backups/upload) and triggers a restore (POST /admin/backups/restore/{filename}) without the optional `clean` sanitizer parameter — which is not applied by default because DB_SANITIZE_BY_DEFAULT is false — can execute arbitrary OS commands as the web application's operating-system user, exposing application secrets (including database credentials and APP_KEY) and allowing modification of application-writable files and data. Version 8.7.0 adds the --binary-mode flag to the client invocation.
📍 영향받는 시스템
Snipe-IT versions before 8.7.0
⚔️ 공격 벡터
Authenticated superadministrator uploads a crafted ZIP backup and triggers a restore without the clean sanitizer.
🛡️ 대응 방법
Upgrade Snipe-IT to version 8.7.0 or later.
🔧 검증 코드
출력된 버전 번호가 8.7.0 미만인 경우 해당 취약점에 노출된 상태입니다.
php artisan snipeit:version | grep -E '8\[\.\d+\]'