🇰🇷 한글 설명
PostgreSQL에서 역할 멤버십, 속성 및 데이터베이스 소유권 변경 사항을 완전히 추적하지 못해 발생하는 취약점입니다. 이로 인해 권한이 변경된 후에도 캐시된 실행 계획을 재사용하여 이전의 행 수준 보안(RLS) 정책이 적용된 상태로 쿼리가 계속 실행될 수 있습니다. 공격자는 이를 통해 권한이 박탈된 데이터에 대해 읽기 및 수정 작업을 수행할 수 있습니다.
💡 쉬운 설명
사용자의 권한이 바뀌었음에도 불구하고 데이터베이스가 예전 권한을 기억하고 있어 보안 규칙을 제대로 적용하지 못하는 문제입니다. 권한이 없어야 할 사용자가 예전 권한을 이용해 몰래 데이터를 보거나 수정할 수 있습니다.
🇺🇸 원문 (English)
Incomplete tracking in PostgreSQL of changes to role membership, role attributes, and database ownership allows a query to continue using cached row-level security policies after those changes require a different policy, via plan reuse. Stale policies continue until some other event invalidates the cache or connection termination ends the session. This permits a user to complete reads and modifications that were recently permitted but now forbidden. An attacker must tailor an attack to a particular application's pattern of privilege removal and role-specific row security policies. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.
📍 영향받는 시스템
PostgreSQL 18.6, 17.11, 16.15, 15.19, 14.24 미만 버전
⚔️ 공격 벡터
권한 변경 직후 캐시된 실행 계획을 재사용하도록 유도하여 보안 정책을 우회하는 방식
🛡️ 대응 방법
PostgreSQL을 최신 보안 패치가 적용된 버전(18.6, 17.11, 16.15, 15.19, 14.24 이상)으로 업데이트
🔧 검증 코드
출력된 버전 번호가 취약점이 해결된 최신 버전(예: 17.11 이상 등)인지 확인