🔍 CVE-2026-63725

7.2
CVSS Score
HIGH
2026-08-06
2026-10-24 16:10
✅ 완료

🇰🇷 한글 설명

sysPass의 FileBackupService::doBackupFiles() 함수에서 백업 경로를 검증 없이 쉘 명령어로 직접 결합하여 실행하는 취약점이 발견되었습니다. 관리자 권한을 가진 공격자가 설정된 백업 경로에 쉘 메타문자를 삽입하면 웹 서버 권한으로 임의의 OS 명령어를 실행할 수 있습니다. 이를 통해 암호화 키를 탈취하거나 데이터베이스 내의 모든 비밀번호를 복호화하여 유출할 수 있는 심각한 위험이 있습니다.

💡 쉬운 설명

관리자 설정 화면을 통해 백업 경로를 조작하면 해커가 서버에 몰래 명령어를 입력해 실행할 수 있는 보안 구멍입니다. 이 구멍을 통해 저장된 모든 비밀번호가 해커에게 통째로 넘어갈 수 있습니다.

🇺🇸 원문 (English)

sysPass's FileBackupService::doBackupFiles() in lib/SP/Services/Backup/FileBackupService.php around line 388 builds a tar shell command by string-concatenating the backup directory path $this->path directly into the command line ('tar czf ' . $backupFileApp . ' ' . BASE_PATH . ' --exclude \"' . $this->path . '\" 2>&1') and passes the result to PHP's exec() with no application of escapeshellarg() and no validation of the path against a safe character set. The $this->path value is read from the sysPass configuration, which is persisted in the database and writable through the admin settings API and the admin UI. An administrator (or an attacker who has obtained an admin API token or admin session) can therefore store a backup path containing shell metacharacters and trigger a backup operation to execute arbitrary OS commands as the web server process user (typically www-data or apache). Because sysPass is a password manager whose sole purpose is to hold credentials for other systems, code execution as the web-server user permits reading sysPass's master password and encryption key from memory or configuration files, decrypting every stored credential in the database, exporting the entire password vault, pivoting to internal systems using the disclosed credentials, and installing persistent backdoors on the password-manager host.

📍 영향받는 시스템

sysPass (FileBackupService 구성 요소가 포함된 버전)

⚔️ 공격 벡터

관리자 API 또는 UI를 통해 백업 경로에 쉘 메타문자를 삽입한 후 백업 기능을 실행하여 명령 실행

🛡️ 대응 방법

백업 경로 입력 시 escapeshellarg() 함수를 사용하여 특수문자를 이스케이프 처리하고, 허용된 문자 집합만 사용하도록 입력값 검증 로직을 적용해야 합니다.

🔧 검증 코드

해당 파일 내에 escapeshellarg() 없이 문자열 결합을 통해 exec()로 전달되는 tar 명령어가 존재하는지 확인합니다.

Shell / Script
grep -r "doBackupFiles" /path/to/sysPass/lib/SP/Services/Backup/FileBackupService.php

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H

💻 영향받는 소프트웨어

IBM WebSphere Application Server