🇰🇷 한글 설명
PostgreSQL Anonymizer가 규칙이 추가되거나 역할이 변경된 후에 준비된 실행 계획을 무효화하지 않습니다. 이러한 계획을 사용하는 사용자는 세션이 끝날 때까지 마스킹되지 않은 원본 데이터를 볼 수 있습니다. 이 문제는 PostgreSQL Anonymizer 3.3.0 이상 버전에서 해결되었습니다.
💡 쉬운 설명
데이터 마스킹 규칙이나 사용자 권한을 바꿔도 이미 만들어진 쿼리 계획이 갱신되지 않습니다. 그래서 세션이 끝날 때까지 가려져야 할 개인정보가 그대로 보일 수 있습니다.
🇺🇸 원문 (English)
PostgreSQL Anonymizer doesn't invalidate plans prepared after a rule was added or a role changed. Users using such plans can still see the unmasked data until the end of the session. The problem is resolved in PostgreSQL Anonymizer 3.3.0 and later versions.
📍 영향받는 시스템
PostgreSQL Anonymizer 3.3.0 미만 버전을 사용하는 PostgreSQL 데이터베이스 환경
⚔️ 공격 벡터
마스킹 규칙 또는 역할 변경 이후 미리 준비된 쿼리 계획을 재사용하는 세션을 통해 마스킹되지 않은 민감 데이터를 조회
🛡️ 대응 방법
PostgreSQL Anonymizer를 3.3.0 이상으로 업그레이드하고, 권한 또는 마스킹 규칙 변경 후에는 기존 세션을 재연결하거나 준비된 문장을 다시 생성
🔧 검증 코드
출력된 버전이 3.3.0 이상이면 패치가 적용된 것이고, 3.3.0 미만이거나 결과가 비어 있으면 취약한 상태이거나 확장이 설치되지 않은 상태입니다.
psql -U postgres -d your_database -tAc "SELECT extversion FROM pg_extension WHERE extname='anon';"