🇰🇷 한글 설명
PostgreSQL에서 테이블에 대한 SELECT 권한이 있으면 최적화된 통계 정보가 노출됩니다. 이로 인해 마스킹된 역할(masked role)이 통계 뷰의 히스토그램과 MCV를 통해 데이터의 일부를 읽을 수 있습니다. 이 취약점은 PostgreSQL Anonymizer 3.3.0 이상에서 해결되었습니다.
💡 쉬운 설명
데이터를 가려서 보여주는 제한된 권한의 사용자도 통계 정보를 통해 원본 데이터의 일부를 추측할 수 있습니다. 이는 개인정보 마스킹 효과를 약화시킬 수 있습니다.
🇺🇸 원문 (English)
PostgreSQL's optimized statistics on a table are visible as long as you have SELECT privilege on said table. A masked role can therefore read a limited subset of the data through the statistics view's histograms and mcvs. The vulnerability is resolved in PostgreSQL Anonymizer 3.3.0 and later versions.
📍 영향받는 시스템
PostgreSQL Anonymizer 3.3.0 미만 버전
⚔️ 공격 벡터
마스킹된 역할로 로그인한 사용자가 통계 뷰(pg_stats)의 histogram_bounds와 most_common_vals를 조회하여 일부 원본 데이터를 추출
🛡️ 대응 방법
PostgreSQL Anonymizer를 3.3.0 이상으로 업그레이드
🔧 검증 코드
출력된 버전이 3.3.0 미만이면 취약하며, 3.3.0 이상이거나 결과가 없으면(익스텐션 미설치) 영향 없음
psql -U postgres -tAc "SELECT extversion FROM pg_extension WHERE extname='anon';" 2>/dev/null