[공지] Log4j 신규 취약점 (CVE-2021-45105) – Log4j 2.17.0

2021년 12월 18일 Log4j 2.16.0 버전에서 동작하는 CVE-2021-45105 취약점이 추가로 공개되었다. (CVSS 7.5)

1. 취약한 제품 버전


Log4j 2.0-beta9 ~ 2.16.0 버전

2. 취약점 공격 기법

취약점 공격은 Log4j를 사용하는 응용 프로그램에서 layout pattern 과 쓰레드 컨텍스트 기능이 사용되는 경우 발생할 수 있다. 취약한 환경과 이 환경을 공격하는 기법은 다음과 같다.

1) 취약한 환경

[설정]


응용 프로그램이 layout pattern에서 쓰레드 컨텍스트를 조회하는 기능을 사용하도록 설정됨

[log4j2.properties 설정 일부]

appender.console.type = Console
appender.console.name = console
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = !${ctx:loginId}! %m%n
rootLogger.level = ALL
rootLogger.appenderRef.file.ref = console


[소스 코드]

layout pattern에서 참조하는 쓰레드 컨텍스트의 값을 외부로부터 입력받은 값으로 저장함  

응용 프로그램 소스코드 일부

ThreadContext.put(“test”, “${::-${ctx:loginId}}”);
logger.error(“Test”);

2) 취약점 공격

공격자가 X-Api-Version 헤더에 특정 문자열을 포함한 요청을 대상 서버에 전송하는 경우, log4j에서는 로그를 저장하는 과정에서 Stack OverFlow 오류가 발생하여 해당 프로세스가 종료될 수 있다. 
# curl server  -H ‘X-Api-Version: ${${::-${::-$${::-$}}}}’

3. 취약점 영향

Log4j의 서비스 거부 취약점 (Dos :Denial Of Service) 취약점으로 인해 서비스 장애가 발생할 수 있지만, 공격 기법에서 설명한 환경이 구축되어야 취약점 공격이 가능하다. 
또한, log4j-core-*.jar 파일 없이 log4j-api-*.jar 파일만 사용하는 경우 취약점의 영향을 받지 않는다.
 

4. 취약점 패치

2021년 12월 18일 Log4j 2.17.0 패치가 제공되었다.

Log4j 2.17.0 이상 최신 버전 (Java8 이상)
https://logging.apache.org/log4j/2.x/download.html

* Java 7 버전 : 제공 예정

5. 취약점 완화


취약점 패치가 어려운 경우 다음의 방법으로 임시 조치를 진행한다. 
– PatternLayout 에서 ${ctx:loginId} 또는 $${ctx:loginId} 를 제거하거나 (%X, %mdc, or %MDC) 로 변경한다.


6. 참고 정보

[1] CVE-2021-45105
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-45105

[2] Apache Log4j Security Vulnerabilities
https://logging.apache.org/log4j/2.x/security.html

[3]  Log4j_dos_CVE-2021-45105
https://github.com/cckuailong/Log4j_dos_CVE-2021-45105

[4] Denial of Service (DoS)Affecting org.apache.logging.log4j:log4j-coreOpen this link in a new tab package, versions [2.0-alpha1,2.17.0)
https://security.snyk.io/vuln/SNYK-JAVA-ORGAPACHELOGGINGLOG4J-2321524

연관 IOC 및 관련 상세 분석 정보는 안랩의 차세대 위협 인텔리전스 플랫폼 ‘AhnLab TIP’ 구독 서비스를 통해 확인 가능하다.

5 1 vote
별점 주기
guest
0 댓글
Inline Feedbacks
View all comments