🇰🇷 한글 설명
PostgreSQL 9.5.2 이전 버전의 캐시된 실행 계획에서 행 수준 보안(RLS) 상태가 제대로 유지되지 않아, 다중 역할 환경에서 의도된 접근 제한을 우회할 수 있습니다. 공격자가 캐시된 쿼리 계획을 재사용하여 권한이 없는 데이터에 접근할 수 있습니다.
💡 쉬운 설명
PostgreSQL의 행 수준 보안이 제대로 작동하지 않아 권한이 없는 사용자가 보호된 데이터에 접근할 수 있습니다. 데이터베이스가 여러 사용자의 쿼리를 처리할 때 보안 검사를 건너뛰는 문제입니다.
🇺🇸 원문 (English)
PostgreSQL before 9.5.x before 9.5.2 does not properly maintain row-security status in cached plans, which might allow attackers to bypass intended access restrictions by leveraging a session that performs queries as more than one role.
📍 영향받는 시스템
PostgreSQL 9.1.x ~ 9.5.1 (9.5.2, 9.4.11, 9.3.16, 9.2.20, 9.1.24 이상 버전은 안전)
⚔️ 공격 벡터
다중 역할 환경에서 특정 역할로 생성된 캐시 쿼리 계획을 다른 역할이 재사용할 때 RLS 정책 우회
🛡️ 대응 방법
PostgreSQL을 보안 패치 버전으로 업그레이드 (9.5.2 이상, 각 메이저 버전별 권장 패치 버전 적용)
🔧 검증 코드
PostgreSQL 버전이 9.5.2 이상, 또는 각 시리즈별 권장 버전(9.4.11+, 9.3.16+) 이상이면 안전합니다.
psql -U postgres -c "SELECT version();" 2>/dev/null | head -1