[정보] Apache Log4j 2 보안 업데이트 권고 사항
1. CVE-ID : CVE-2021-44228 / CVE-2021-45046
참고로, Apache Log4J는 효율적인 로그를 남기기 위한 프레임워크 입니다.
2. 보안 이슈 설명
* CVE-2021-44228 : https://nvd.nist.gov/vuln/detail/CVE-2021-44228
- 구성, 로그 메시지 및 매개변수에 사용되는 JNDI 기능은 공격자가 제어하는 LDAP 및 기타 JNDI 관련 엔드포인트로부터 보호하지 않습니다.
- 로그 메시지 또는 로그 메시지 매개변수를 제어할 수 있는 공격자는 메시지 조회 대체가 활성화된 경우 LDAP 서버에서 로드된 임의의 코드를 실행할 수 있습니다.
- 영향받는 버전 : 2.0-beta9 ~ 2.14.1 버전 (Log4j 2.12.2 제외)
* CVE-2021-45046 : https://nvd.nist.gov/vuln/detail/CVE-2021-45046
- Apache Log4j 2.15.0에서 CVE-2021-44228을 해결하기 위한 수정 사항이 기본이 아닌 특정 구성에서 불완전한 것으로 나타났습니다.
- 이것은 로깅 구성이 컨텍스트 조회(예: $${ctx:loginId}) 또는 스레드 컨텍스트 맵 패턴( %X, %mdc 또는 %MDC) JNDI 조회 패턴을 사용하여 악의적인 입력 데이터를 조작하여 일부 환경에서는 정보 누출 및 원격 코드 실행, 모든 환경에서는 로컬 코드 실행이 발생합니다.
- 영향받는 버전 : 2.0-beta9 ~ 2.12.1 및 2.13.0 ~ 2.15.0 버전
3. 권고안
· Java 8 : Log4j 2.16.0으로 업데이트
· Java 7 : Log4j 2.12.2으로 업데이트
· Java 6이하로 업그레이드가 어려운 경우 : JndiLookup 클래스를 경로에서 제거
zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class |
4. Log4j2 버전 확인 방법
1) 운영환경
: log4j-core-2.x.jar - 2.x가 버전임 (J2EE 환경에서 배포된 경우에는 WEB-INF/lib에 보통 위치함)
2) 개발환경
: maven을 빌드도구로 사용하는 경우 - pom.xml에서 아래 2.x가 버전임
<dependencies> ...... <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.x</version> </dependency> </dependencies> |
위의 업데이트 버전이 추가적으로 변경될 수 있으니, 최종 확인 후 업데이트 필요함.
참고로, Apache Log4j 1.x를 사용하는 경우 https://blueyikim.tistory.com/2292 보안 업데이트 권고
[자료참조] https://www.krcert.or.kr/data/secNoticeView.do?bulletin_writing_sequence=36389
[참고URL] Log4J 다운로드 : https://logging.apache.org/log4j/2.x/download.html