지난주 주말에 log4j2 취약점 이슈가 있었다.
다행히 우리 프로젝트에선 문제가 있는 log4j2-core를 사용하고 있지 않았지만 log4j2-api, log4j-to-slf4와 같은 라이브러리도 최신화하고자 했다.
Spring Boot 라이브러리에 내장된 log4j2를 사용 중이였고, 먼저 Spring Boot의 버전을 가장 최신 버전인 2.6.1로 변경하였다.
하지만 2.6.1 버전에 내장된 log4j2의 버전은 2.14.1이였고.. 내장된 라이브러리의 버전을 변경하는 방법을 찾아 해결하였다!
방법1
2.17.0인 log4j-api, log4j-to-slf4j를 선언해주면 spring boot에 내장된 log4j의 라이브러리 버전이 변경된다.
- gradle
implementation group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.17.0'
implementation group: 'org.apache.logging.log4j', name: 'log4j-to-slf4j', version: '2.17.0'
- maven
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.17.0</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-to-slf4j</artifactId>
<version>2.17.0</version>
</dependency>
방법2
- gradle
// 종속성 관리 플러그인을 사용중이라면
ext['log4j2.version'] = '2.17.0'
//종속성 관리 플러그인이 아닌 gradle 플랫폼을 사용하는 경우
implementation(platform("org.apache.logging.log4j:log4j-bom:2.17.0"))
- maven
<properties>
<log4j2.version>2.17.0</log4j2.version>
</properties>
우린 방법 2로 설정했다. 처음엔 방법 1로 했지만 한번에 처리할 수 있는 방법 2을 뒤늦게 알아채고..!
spring boot의 버전이 빨리 업데이트 되길..
log4j2가 아니더라도 내장된 라이브러리의 버전을 변경할 일이 생기면 위 방법대로 하면 된다.
(spring boot에 내장된 tomcat 버전도 이 방법대로 변경하였었다)
결과
JAVA 8의 경우 업데이트된 가장 최신 버전은 2.17.0입니다! (CVE-2021-45046)
참고사이트
apache 보안업데이트 현황 : https://logging.apache.org/log4j/2.x/security.html
취약점 정보 : https://nvd.nist.gov/vuln/detail/CVE-2021-45105
신규버전 다운로드 :https://logging.apache.org/log4j/2.x/download.html
'개발 > etc' 카테고리의 다른 글
[Maven] 윈도우에 메이븐 설치 및 환경 변수 설정 (0) | 2021.12.30 |
---|---|
[builtwith] 기술 정보 및 현황 사이트 추천! 특정 웹 사이트의 기술정보가 궁금하다면? (1) | 2021.12.28 |
[Log] 로그 파일 분리하기 - Log4j, Logback (0) | 2021.12.22 |
[softhsm] windows에 softhsm2 설치 및 세팅 (0) | 2021.12.06 |
[JD-GUI] java 9 이상에서 실행 오류 : module java.base does not "opens jdk.internal.loader" to unnamed module (0) | 2021.12.03 |
댓글