🇰🇷 한글 설명
PostgreSQL은 pg_read_all_settings 멤버가 아닌 사용자에게 SHOW 명령으로 salt와 shift 값 접근을 제한합니다. 그러나 해당 값이 데이터베이스, 사용자 또는 둘 다에 설정된 경우 pg_db_role_setting 또는 pg_roles에서 여전히 조회될 수 있습니다. PostgreSQL Anonymizer 3.3.0 이상에서 해결되었습니다.
💡 쉬운 설명
데이터 익명화에 쓰이는 비밀 값(salt, shift)이 특정 시스템 테이블을 통해 권한 없는 사용자에게 노출될 수 있습니다. 버전 3.3.0 이상으로 업데이트하면 이 문제가 해결됩니다.
🇺🇸 원문 (English)
PostgreSQL restricts acces to the salt and shift via the `SHOW` command for users not member of `pg_read_all_settings`. But they are visible in `pg_db_role_setting` or `pg_roles` if they were set on the database, user or both. PostgreSQL Anonymizer's documentation recommends to use ALTER DATABASE / ALTER ROLE for the salt. The problem is resolved in PostgreSQL Anonymizer 3.3.0 and later versions.
📍 영향받는 시스템
PostgreSQL Anonymizer 3.3.0 미만 버전
⚔️ 공격 벡터
데이터베이스에 접근 가능한 낮은 권한 사용자가 pg_db_role_setting 또는 pg_roles 시스템 카탈로그를 조회하여 salt와 shift 값을 획득
🛡️ 대응 방법
PostgreSQL Anonymizer를 3.3.0 이상으로 업그레이드하고, salt 설정은 ALTER DATABASE/ALTER ROLE 대신 권장 방식에 따라 관리
🔧 검증 코드
출력된 버전이 3.3.0 이상이면 패치 적용됨, 3.3.0 미만이거나 결과가 없으면 취약하거나 설치되지 않은 상태
psql -U postgres -tAc "SELECT extversion FROM pg_extension WHERE extname='anon';" 2>/dev/null