Log4j 2.x 취약점 - 2021.12.10
2021.12.10 Log4j2 버전에서 보안 취약점이 발견되었다. 미국표준기술연구소(NIST)가 게시한바에 따르면, Log4j2 버전 중 2.14.1 이하 버전에서 ldap, jndi 를 컨트롤하는 프로퍼티를 통해 "임의의 코드를 실행" 할 수 있다 밝혔다.
아래는 해당 내용 중 일부이다.
Apache Log4j2 <=2.14.1 JNDI features used in configuration, log messages, and parameters do not protect against attacker controlled LDAP and other JNDI related endpoints. An attacker who can control log messages or log message parameters can execute arbitrary code loaded from LDAP servers when message lookup substitution is enabled.
Spring boot log4j2
Spring boot 공식 blog 채널은 해당 취약점에 대한 내용을 10일 게시했다.
주 내용은 Spring boot의 default logging 을 사용했다면 문제가 없다는 것이다. 문제의 발단은 log4j2-core 라이브러리 인데 Spring boot default log4j 라이브러리는 log4j-to-slf4j 와 log4j-api 를 사용한다. 해당 라이브러리는 문제의 옵션을 default로 막고 있다.
아래는 해당 내용 중 일부이다.
Spring Boot users are only affected by this vulnerability if they have switched the default logging system to Log4J2
. The log4j-to-slf4j and log4j-api jars that we include in spring-boot-starter-logging cannot be exploited on their own. Only applications using log4j-core and including user input in log messages are vulnerable.
해결방안
Spring boot에서 라이브러리 관리도구로 log4j2 버전을 지정하여 사용했다면 다음과 같이 2.15.0 이상 버전으로 Update한다.
maven
<properties>
<log4j2.version>2.15.0</log4j2.version>
</properties>
Gradle
ext['log4j2.version'] = '2.15.0'
or
implementation(platform("org.apache.logging.log4j:log4j-bom:2.15.0"))
Java system property
java -Dlog4j2.formatMsgNoLookups=true
참조
https://nvd.nist.gov/vuln/detail/CVE-2021-44228
https://spring.io/blog/2021/12/10/log4j2-vulnerability-and-spring-boot
반응형
'Web Programming' 카테고리의 다른 글
Nginx log 관련 설정 파헤치기 (feat. AWS EC2) (0) | 2021.12.15 |
---|---|
AWS EC2 웹 서버 nginx 설치, 설정 부터 실행까지 ( 프리티어 ) (0) | 2021.12.14 |
eslint 커맨드를 찾지 못하는 경우 ( esline --init 오류 ) (0) | 2021.08.14 |
NPX 설치 오류 - 설치가 오류 코드 1로 실패했습니다 (0) | 2021.07.18 |
Spring boot, URI 쉽게 만들기 ( with UriComponentsBuilder ) (1) | 2021.05.03 |