🇰🇷 한글 설명
Dokploy 0.29.13 미만 버전에서 백업 복구 기능 사용 시 사용자 입력값이 쉘 명령어로 직접 삽입되는 취약점이 발견되었습니다. 인증된 사용자가 데이터베이스 이름이나 백업 파일 필드에 악성 명령어를 주입하여 Dokploy 호스트 시스템에서 임의의 명령을 실행할 수 있습니다.
💡 쉬운 설명
백업을 복구하는 과정에서 입력한 이름에 몰래 컴퓨터 명령어를 섞어 넣으면, 서버가 이를 그대로 실행해 버리는 보안 구멍입니다. 이를 통해 해커가 서버의 제어권을 통째로 뺏을 수 있습니다.
🇺🇸 원문 (English)
Dokploy is a free, self-hostable Platform as a Service (PaaS). Prior to 0.29.13, the backup.restoreBackupWithLogs tRPC subscription builds database restore shell pipelines from the user-controlled databaseName and backupFile fields without safely separating them from shell syntax. packages/server/src/utils/restore/utils.ts interpolates databaseName into database-specific restore commands, while packages/server/src/utils/restore/postgres.ts and the analogous restore modules interpolate backupFile into rclone paths. An authenticated member with backup-restore permission can inject operating-system commands that execute in the Dokploy host context through execAsync or execAsyncRemote, even when no valid database container or backup file exists. This issue is fixed in version 0.29.13.
📍 영향받는 시스템
Dokploy 버전 0.29.13 미만
⚔️ 공격 벡터
백업 복구 권한을 가진 사용자가 databaseName 또는 backupFile 필드에 쉘 명령어를 주입하여 공격
🛡️ 대응 방법
Dokploy를 최신 버전인 0.29.13 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 버전 번호가 0.29.13보다 낮으면 취약한 상태입니다.
npm list -g dokploy | grep -E 'dokploy@([0-9]+\.[0-9]+\.[0-9]+)'