Apache Log4j 버전 2.17.0이 공식 출시되어 세 번째로 발견된 보안 취약점 CVE-2021-45105가 해결되었습니다.
Apache Log4j2 버전 2.0-alpha1~2.16.0은 자체 참조 조회의 통제되지 않은 재귀를 방지하지 않습니다. 로그 구성이 기본이 아닌 패턴 레이아웃 및 컨텍스트 조회(예: $${ctx:loginId})를 사용하는 경우 MDC(스레드 컨텍스트 맵) 입력 데이터를 제어하는 공격자가 재귀 조회가 포함된 악성 입력 데이터를 제작할 수 있습니다. StackOverflowError가 발생하여 프로세스가 종료됩니다. 이를 DoS 공격이라고도 합니다. [권장: Apache 사용법 튜토리얼]
버전 2.17.0(Java 8용)부터 다른 사용법에서는 구성의 검색 문자열만 재귀적으로 확장되며 최상위 검색만 구문 분석됩니다. 모든 중첩 검색.
이전 버전에서는 로깅 구성이 다음을 수행했는지 확인하여 이 문제를 완화할 수 있었습니다.
로깅 구성의 PatternLayout에서 스레드 컨텍스트 맵 패턴(%X, %mdc 또는 %MDC)을 사용합니다. ${ctx:loginId} 또는 $${ctx:loginId} 및 기타 컨텍스트 조회를 대체합니다.
그렇지 않으면 구성에서 ${ctx:loginId} 또는 ${ctx:loginId}와 같은 컨텍스트 조회에 대한 참조를 제거하세요. 해당 참조는 HTTP 헤더 또는 사용자 입력과 같은 애플리케이션 외부 소스에서 발생합니다.
버전 2.17.0의 특정 업데이트에는 다음이 포함됩니다.
문자열 교체 재귀 문제를 수정합니다. LOG4J2-3230
수정 JNDI를 Java 프로토콜로만 제한합니다. 기본적으로 JNDI는 비활성화된 상태로 유지됩니다. JNDI 활성화 속성의 이름이 "log4j2.enableJndi"에서 "log4j2.enableJndiLookup", "log4j2.enableJndiJms" 및 "log4j2.enableJndiContextSelector"로 변경되었습니다. LOG4J2-3242
JNDI 수정은 Java 프로토콜로만 제한됩니다. 기본적으로 JNDI는 비활성화된 상태로 유지됩니다. 활성화 속성의 이름이 "log4j2.enableJndiJava"로 변경되었습니다. LOG4J2-3242
수정 log4j-api-java9 및 log4j-core-java9를 종속성으로 선언하지 마세요. 이렇게 하면 Maven 시행 플러그인에 문제가 발생할 수 있습니다. 속성 파일 필터를 구문 분석할 때 LOG4J2-3241
PropertiesConfiguration.parseAppenderFilters NPE를 수정합니다. LOG4J2-3247
Syslog Appender의 Log4j 1.2 브리지 기본값이 514 대신 포트 512로 설정되는 문제를 수정했습니다. LOG4J2-3249
Log4j 1.2 브리지 API 하드코드 Syslog 프로토콜을 TCP로 수정합니다. LOG4J2-3237
위 내용은 Apache Log4j 2.17.0이 출시되었습니다! 어떤 문제가 해결되었는지 확인하세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!