본문으로 바로가기

log4j 취약점(CVE-2021-45105) 설명 및 대응 방법

 

가. 취약점 요약

항목 내용 비고
CVE CODE CVE-2021-45105  
CVSS 점수 5.9 MEDIUM  
취약 대상  log4j 2.0-alpha1 ~ 2.16.0 버전 이하 Log4j 2.3.1, 2.12.3 버전 제외
대응 방안 JDK 8 이상 log4j 2.17.1 이상으로 업데이트 log4j 1.x 버전은 2015년에 EOS되었으므로,
log4j 2.x 버전으로 업데이트 해야함
JDK 7 log4j 2.12.4 이상으로 업데이트
JDK 6 log4j 2.3.2 이상으로 업데이트
JDK 5 이하 PatternLayout 변경 또는 삭제

 

나. 공격 원리

# curl server -H ‘X-Api-Version: ${${::-${::-$${::-$}}}}

공격자가 X-Api-Version 헤더에 위와 같은 페이로드를 포함한 요청을 서버에 전송하는 경우, 로그를 저장하는 과정에서 StackOverflowError가 발생하여 해당 프로세스가 종료될 수 있다

 

※ 해당 공격은 Log4j를 사용하는 응용 프로그램에서 'PatternLayout' 과 '쓰레드 컨텍스트 기능'이 사용되는 경우 발생

- 취약한 log4j.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

- 취약한 소스코드

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

 

다. 공격 영향

Log4j를 사용하는 응용 프로그램 또는 서비스가 종료되어 장애가 발생할 수 있음

 

라. 공격 대상

log4j 2.0-alpha1 ~ 2.16.0 버전 이하

※ 취약점이 해결된 버전 제외(Log4j 2.3.1, 2.12.3 및 이후 업데이트 버전 제외)

※ log4j-core-*.jar 파일 없이 log4j-api-*.jar 파일만 사용하는 경우 위 취약점의 영향을 받지 않음

※ log4j 1.x 버전은 이미 EOS되었으며, 다른 취약점이 존재하기 때문에 안전하지 않음

 

마. 대응 방안

Java 8 이상 : Log4j 2.17.1 이상 버전으로 업데이트
Java 7 : Log4j 2.12.4 이상 버전으로 업데이트
Java 6 : Log4j 2.3.2 이상 버전으로 업데이트

 

※ 버전 업데이트가 어려운 경우 아래의 방안으로 대응

- PatternLayout에서 ${ctx:loginId} 또는 $${ctx:loginId}를 (%X, %mdc, or %MDC)로 변경 또는 제거
- 소스코드 내에 ${ctx:loginId} 또는 $${ctx:loginId} 제거

 

바. 점검 도구(스캐너) 다운로드

2022.01.13 - [침해 사고 대응] - log4j 취약점 점검 도구(스캐너) 정리/다운로드

 

log4j 취약점 점검 도구(스캐너) 정리/다운로드

log4j 취약점 점검 도구(스캐너) 정리/다운로드 ※ 본문서는 21년 12월 22일을 기준으로 작성되었습니다. 1. Labrador Scaner v1.3.0 국산 오픈소스 취약점 점검 솔루션 개발사인 래브라도가 고려

hagsig.tistory.com

 

사. 참고 자료

KrCERT https://www.krcert.or.kr/data/secNoticeView.do?bulletin_writing_sequence=36397

 

KISA 인터넷 보호나라&KrCERT

KISA 인터넷 보호나라&KrCERT

www.boho.or.kr

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

 

CVE - CVE-2021-45105

20211216 Disclaimer: The record creation date may reflect when the CVE ID was allocated or reserved, and does not necessarily indicate when this vulnerability was discovered, shared with the affected vendor, publicly disclosed, or updated in CVE.

cve.mitre.org

NVD https://nvd.nist.gov/vuln/detail/CVE-2021-45105

 

NVD - CVE-2021-45105

CVE-2021-45105 Detail Current Description Apache Log4j2 versions 2.0-alpha1 through 2.16.0 (excluding 2.12.3 and 2.3.1) did not protect from uncontrolled recursion from self-referential lookups. This allows an attacker with control over Thread Context Map

nvd.nist.gov

보안뉴스 https://www.boannews.com/media/view.asp?idx=103443 

 

[긴급] 로그4j 신규 취약점 ‘CVE-2021-45105’과 패치 ‘Log4j 2.17.0’ 나와

log4j의 신규 취약점과 새로운 패치가 나와 보안담당자들의 시급한 업데이트가 요구된다. 아파치재단은 12월 18일 ‘Log4j 2.16.0’ 버전에서 동작하는 CVE-2021-45105 취약점을 추가로 공개했다. 안랩 ASE

www.boannews.com