🇰🇷 한글 설명
PostgreSQL의 CREATE STATISTICS 명령어에서 권한 확인이 누락되어 테이블 소유자가 다른 사용자의 통계 생성을 방해할 수 있습니다. 공격자가 같은 이름으로 통계를 먼저 생성하면 정상 사용자의 CREATE STATISTICS 명령이 실패하는 서비스 거부 공격이 가능합니다.
💡 쉬운 설명
PostgreSQL에서 통계를 만드는 기능의 권한 체크가 없어서, 악의적인 사용자가 다른 사람의 작업을 방해할 수 있습니다. 먼저 같은 이름으로 통계를 만들어 버리면 정상 사용자는 같은 이름으로 만들 수 없게 됩니다.
🇺🇸 원문 (English)
Missing authorization in PostgreSQL CREATE STATISTICS command allows a table owner to achieve denial of service against other CREATE STATISTICS users by creating in any schema. A later CREATE STATISTICS for the same name, from a user having the CREATE privilege, would then fail. Versions before PostgreSQL 18.1, 17.7, 16.11, 15.15, 14.20, and 13.23 are affected.
📍 영향받는 시스템
PostgreSQL 13 < 13.23, 14 < 14.20, 15 < 15.15, 16 < 16.11, 17 < 17.7, 18 < 18.1
⚔️ 공격 벡터
테이블 소유자가 CREATE STATISTICS 권한을 가진 다른 사용자와 동일한 이름으로 통계를 미리 생성하여 DoS 유발
🛡️ 대응 방법
PostgreSQL을 최신 패치 버전(13.23, 14.20, 15.15, 16.11, 17.7, 18.1 이상)으로 업그레이드
🔧 검증 코드
출력된 PostgreSQL 버전이 13.23, 14.20, 15.15, 16.11, 17.7, 18.1 이상인지 확인하여 패치 상태를 판단합니다.
psql --version 2>/dev/null | grep -oE '[0-9]+\.[0-9]+'