🇰🇷 한글 설명
OpenStack Trove 2015.1.0 이전 버전의 MySQL, MongoDB, PostgreSQL, Redis, Cassandra, CouchBase 등 데이터베이스 서비스에서 임시 파일에 대한 심볼릭 링크 공격으로 로컬 사용자가 설정 파일에 임의의 내용을 기록할 수 있는 취약점입니다. 공격자는 심볼릭 링크를 통해 중요한 설정 파일을 덮어쓸 수 있습니다.
💡 쉬운 설명
클라우드 데이터베이스 서비스가 임시 파일을 만들 때 심볼릭 링크 속임수로 설정 파일을 변조할 수 있습니다. 로컬 접근 권한이 있는 공격자가 데이터베이스 설정을 악의적으로 변경하여 제어 가능합니다.
🇺🇸 원문 (English)
The _write_config function in trove/guestagent/datastore/experimental/mongodb/service.py, reset_configuration function in trove/guestagent/datastore/experimental/postgresql/service/config.py, write_config function in trove/guestagent/datastore/experimental/redis/service.py, _write_mycnf function in trove/guestagent/datastore/mysql/service.py, InnoBackupEx::_run_prepare function in trove/guestagent/strategies/restore/mysql_impl.py, InnoBackupEx::cmd function in trove/guestagent/strategies/backup/mysql_impl.py, MySQLDump::cmd in trove/guestagent/strategies/backup/mysql_impl.py, InnoBackupExIncremental::cmd function in trove/guestagent/strategies/backup/mysql_impl.py, _get_actual_db_status function in trove/guestagent/datastore/experimental/cassandra/system.py and trove/guestagent/datastore/experimental/cassandra/service.py, and multiple class CbBackup methods in trove/guestagent/strategies/backup/experimental/couchbase_impl.py in Openstack DBaaS (aka Trove) as packaged in Openstack before 2015.1.0 (aka Kilo) allows local users to write to configuration files via a symlink attack on a temporary file.
📍 영향받는 시스템
OpenStack Trove < 2015.1.0 (Kilo): MySQL, PostgreSQL, MongoDB, Redis, Cassandra, CouchBase 데이터베이스 게스트 에이전트
⚔️ 공격 벡터
로컬 사용자가 /tmp 디렉토리에 심볼릭 링크를 생성하여 설정 파일 쓰기 작업 중 임의의 파일을 덮어씀
🛡️ 대응 방법
OpenStack Trove를 2015.1.0 이상으로 업그레이드하고, 임시 디렉토리의 심볼릭 링크 보호 및 파일 권한 검증 강화
🔧 검증 코드
출력된 버전이 2015.1.0 미만이면 취약하며, 2015.1.0 이상이거나 패키지 미설치 상태면 안전
dpkg -l 2>/dev/null | grep trove | awk '{print $3}' || rpm -qa | grep -i trove | sed 's/-.*//'