자바 기반의 로그 생성 라이브러리인 Log4j 2에서 중대하고 심각한 보안 취약점이 발견이 되었다는 소식이 전해졌다. GeoServer도 Log4j로 로그를 생성하는 기능이 관리 기능으로 포함되어 있기 때문에 즉시 점검이 필요했다.

 

지난 2021년 12월 13일 GeoServer 공식 사이트에 취약점 코드 CVE-2021-44228 대응법을 안내하는 Andrea Aime의 글이 GeoServer Blog를 통해 공개되었다.

 

http://geoserver.org/announcements/2021/12/13/logj4-rce-statement.html

 

Log4J2 zero day vulnerability assessment

The Java world has been taken by storm, last week, by the Log4J2 Log4Shell vulnerability, code CVE-2021-44228, which allows remote code execution by simply making API calls to the vulnerable servers. The understanding of the vulnerability is still evolving

geoserver.org

 

주요 내용은 아래와 같다.

  1. GeoServer는 문제가 되고 있는 Log4J 2를 사용하지 않아 CVE-2021-44228에 취약하지 않다. (GeoServer 래거시 버전, 최근에 릴리즈된 2.20.0에도 Log4j 1.2.17을 사용하고 있다.)
  2. GeoServer가 사용중인 Log4J 1.2.17 버전에도 CVE-2019-17571 보안 이슈가 있는데, SocketServer 클래스가 서버 명령줄에서 실행되야 하기 때문에 경미한 이슈라고 할 수 있다.
  3. 공격자가 서버에 직접 접근하여 로깅 구성 파일을 직접 수정해야 트리거로 사용할 수 있기 때문에 Log4j와 관련된 GeoServer의 기본 구성은 보안에 취약하지 않다.
  4. GeoServer 프로젝트는 취약점 CVE-2021-44228과 CVE-2019-17571과 관련된 클래스를 포함하고 있지 않은 Log4j 1.2.17 삭제된 버전의 라이브러리를 공개하였다. 이 라이브러리는 이전 버전의 GeoServer 에서도 사용할 수 있다.
  5. 기존 log4j-1.2.17.jar를 제거하고 새로운 log4j-1.2.17.norce.jar를 geoserver/webapps/WEB-INF/lib 폴더에 넣고 WAS를 재시작하면 패치가 완료 된다.
    (
    https://repo.osgeo.org/repository/geotools-releases/log4j/log4j/1.2.17.norce/log4j-1.2.17.norce.jar)
  6. Log4J 1.2.17은 EOL(End Of Lift) 프로젝트로 최신 버전으로 업그레이드 하기 위해서는 펀딩이 필요하다. 현재 릴리즈된 버전에 적용하기 위해서는 잠재적인 역호환성 문제가 있어 적용이 힘들고 2.21.x 버전부터는 새로운 로깅 라이브러리를 적용할 수 있을 것으로 기대한다.

끝.



AND