🇰🇷 한글 설명
PostgreSQL 8.3.7 이전 버전에서 원격 인증된 사용자가 에러 메시지의 인코딩 변환 실패를 유발하여 스택 오버플로우를 일으키고 서버를 다운시킬 수 있는 취약점입니다. 잘못된 인코딩 요청을 반복하면 메모리 스택이 소비되어 PostgreSQL 프로세스가 강제 종료됩니다.
💡 쉬운 설명
PostgreSQL 데이터베이스에 접속한 사용자가 언어/문자 설정을 잘못 보내서 에러 메시지 처리 과정에서 메모리를 과다 소비하게 할 수 있습니다. 이를 통해 데이터베이스 서비스를 중단시킬 수 있습니다.
🇺🇸 원문 (English)
PostgreSQL before 8.3.7, 8.2.13, 8.1.17, 8.0.21, and 7.4.25 allows remote authenticated users to cause a denial of service (stack consumption and crash) by triggering a failure in the conversion of a localized error message to a client-specified encoding, as demonstrated using mismatched encoding conversion requests.
📍 영향받는 시스템
PostgreSQL 7.4.25, 8.0.21, 8.1.17, 8.2.13, 8.3.7 이전 모든 버전
⚔️ 공격 벡터
인증된 데이터베이스 클라이언트가 mismatched encoding conversion 요청을 반복 전송하여 서버 스택 소비 유발
🛡️ 대응 방법
PostgreSQL을 7.4.25, 8.0.21, 8.1.17, 8.2.13, 8.3.7 이상 버전으로 업그레이드
🔧 검증 코드
PostgreSQL 버전을 확인하여 vulnerable로 표시되면 업그레이드 필요, patched로 표시되면 안전
psql --version 2>/dev/null | grep -oE '[0-9]+\.[0-9]+\.[0-9]+' | awk -F. '{if($1<8 || ($1==8 && $2<3) || ($1==8 && $2==3 && $3<7)) print "vulnerable"; else print "patched"}'