긴급 보안 패치 버전이 나왔습니다.
9.x 버전도 함께 배포되었습니다.
public 스키마 쓰기 권한을 이용한 보안 취약점이 있다고 판단되어 나온 버전입니다.
https://wiki.postgresql.org/wiki/A_Guide_to_CVE-2018-1058:_Protect_Your_Search_Path
자세한 이야기는 윗 페이지를 참조 하시면 되고요.
문제는 기존 public 스키마를 잘 쓰고 있던 다중 사용자 환경인데,
A 사용자가 악의적인 함수를 pg_catalog 에서 정의한 이름과 같은 함수를 public에 만들어 두었을 때, B 사용자가 의도치 않게 그 함수를 사용하게 되는 경우에 대한 문제점입니다.
해결 방법은 업그레이드 뿐만 아니라, public 스키마 사용환경을 전면 검토해서 보안 취약점이 없는지 확인해 보고, 필요하다면, 적절한 REVOKE 작업과 쓰기 금지 작업등이 필요해 보입니다.
다중 사용자 환경에서 public 스키마 자체를 사용하지 않는 환경이라면 그냥 모든 데이터베이스의 public 스키마에 대해서, public 사용자의 쓰기 권한을 회수하는 것으로 이 문제를 막을 수 있을 것 같네요.
참, pg_dump가 달라졌습니다. 기존 pg_dump로 덤프해둔 파일로 복원한다면, 여전히 문제점이 남아 있게 됩니다. 새 pg_dump로 새로 덤프 받아서 사용하세요.
|