🇰🇷 한글 설명
PostgreSQL의 절차형 언어(PL) 핸들러에 SECURITY DEFINER 또는 SET 속성을 추가할 수 있는 원격 인증 사용자가 서버 크래시를 유발하는 서비스 거부(DoS) 공격을 수행할 수 있습니다. 인증된 데이터베이스 사용자가 악의적으로 PL 핸들러를 조작하여 PostgreSQL 서버를 다운시킬 수 있습니다.
💡 쉬운 설명
데이터베이스에 접속한 사용자가 특정 설정을 변경해 서버를 강제 종료시킬 수 있는 결함입니다. PostgreSQL을 명시된 버전 이상으로 업그레이드하면 해결됩니다.
🇺🇸 원문 (English)
PostgreSQL 8.3.x before 8.3.19, 8.4.x before 8.4.12, 9.0.x before 9.0.8, and 9.1.x before 9.1.4 allows remote authenticated users to cause a denial of service (server crash) by adding the (1) SECURITY DEFINER or (2) SET attributes to a procedural language's call handler.
📍 영향받는 시스템
PostgreSQL 8.3.x (8.3.19 이전), 8.4.x (8.4.12 이전), 9.0.x (9.0.8 이전), 9.1.x (9.1.4 이전)
⚔️ 공격 벡터
원격 인증된 사용자가 CREATE OR REPLACE FUNCTION으로 SECURITY DEFINER/SET 속성을 procedural language 핸들러에 추가하여 서버 크래시 유발
🛡️ 대응 방법
PostgreSQL을 8.3.19, 8.4.12, 9.0.8, 9.1.4 이상의 패치 버전으로 즉시 업그레이드
🔧 검증 코드
출력된 PostgreSQL 버전이 8.3.19, 8.4.12, 9.0.8, 9.1.4 이상이면 안전하고 그 이하이면 취약합니다.
psql -V 2>/dev/null | grep -oE '[0-9]+\.[0-9]+\.[0-9]+'