🇰🇷 한글 설명
PostgreSQL의 여러 버전(8.2 이전, 8.1 이전, 8.0 이전 등)에서 VACUUM 및 ANALYZE 작업 시 테이블 소유자 권한 대신 슈퍼유저 권한을 사용하고, 인덱스 함수 내에서 SET ROLE 및 SET SESSION AUTHORIZATION을 허용함으로써 원격 인증 사용자가 권한 상승을 할 수 있는 취약점입니다.
💡 쉬운 설명
PostgreSQL에서 정상 사용자가 관리자 권한으로 특정 작업을 수행할 수 있는 보안 문제입니다. 인증된 사용자가 자신의 권한을 높여 시스템을 제어할 수 있습니다.
🇺🇸 원문 (English)
PostgreSQL 8.2 before 8.2.6, 8.1 before 8.1.11, 8.0 before 8.0.15, 7.4 before 7.4.19, and 7.3 before 7.3.21 uses superuser privileges instead of table owner privileges for (1) VACUUM and (2) ANALYZE operations within index functions, and supports (3) SET ROLE and (4) SET SESSION AUTHORIZATION within index functions, which allows remote authenticated users to gain privileges.
📍 영향받는 시스템
PostgreSQL 7.3.21 미만, 7.4.19 미만, 8.0.15 미만, 8.1.11 미만, 8.2.6 미만
⚔️ 공격 벡터
인증된 데이터베이스 사용자가 VACUUM/ANALYZE 명령어나 인덱스 함수 내에서 SET ROLE 명령어를 사용하여 권한 상승
🛡️ 대응 방법
PostgreSQL을 8.2.6, 8.1.11, 8.0.15, 7.4.19, 7.3.21 이상으로 업그레이드
🔧 검증 코드
PostgreSQL 버전이 영향받는 범위에 속하면 출력됨 - 결과가 나타나면 취약 버전, 없으면 패치된 버전
psql -U postgres -c "SELECT version();" 2>/dev/null | grep -E '8\.[0-2]\.[0-5]|8\.[01]\.[0-9]|7\.[34]\.[0-9]|7\.3\.[0-9]'