🇰🇷 한글 설명
PostgreSQL 9.3.17 이전, 9.4.12 이전, 9.5.7 이전, 9.6.3 이전 버전에서 PGREQUIRESSL 환경 변수가 SSL/TLS 연결을 강제하지 않는 취약점입니다. 중간자 공격자가 클라이언트와 서버 간 연결에서 SSL/TLS 보호를 제거할 수 있습니다.
💡 쉬운 설명
PostgreSQL이 암호화된 연결을 하도록 설정해도 무시되는 버그입니다. 네트워크를 도청하는 해커가 데이터베이스 정보를 암호화 없이 탈취할 수 있습니다.
🇺🇸 원문 (English)
In PostgreSQL 9.3.x before 9.3.17, 9.4.x before 9.4.12, 9.5.x before 9.5.7, and 9.6.x before 9.6.3, it was found that the PGREQUIRESSL environment variable was no longer enforcing a SSL/TLS connection to a PostgreSQL server. An active Man-in-the-Middle attacker could use this flaw to strip the SSL/TLS protection from a connection between a client and a server.
📍 영향받는 시스템
PostgreSQL 9.3.x (before 9.3.17), 9.4.x (before 9.4.12), 9.5.x (before 9.5.7), 9.6.x (before 9.6.3)
⚔️ 공격 벡터
중간자(MITM) 공격으로 네트워크 트래픽을 가로채 PGREQUIRESSL을 무시하도록 강제하여 암호화되지 않은 연결 유도
🛡️ 대응 방법
PostgreSQL을 패치된 버전 이상으로 업그레이드 (9.3.17+, 9.4.12+, 9.5.7+, 9.6.3+)
🔧 검증 코드
postgresql 버전이 표시되면 9.3.17, 9.4.12, 9.5.7, 9.6.3 이상인지 확인. 이하 버전이면 패치 필요
psql --version | grep -oE '\b9\.[3-6]\.[0-9]+' || dpkg -l 2>/dev/null | grep postgresql | awk '{print $3}'