1. 문제원인
- 제품의 취약점이 발견된 버전은 Log4j 2.0-beta9 ~ 2.16.0 버전이다.
취약점 공격은 Log4j를 사용하는 응용 프로그램에서 layout patter과 쓰레드 컨텍스트 기능이 사용되는 경우 발생할 수 있다. 취약한 환경과 이 환경을 공격하는 기법을 알아보자.
2. 취약한 환경
- 응용프로그램이 layout pattern에서 쓰레드 컨텍스트를 조회하는 기능을 사용하도록 설정된다.
여기서, 이 layout pattern에서 참조하는 값을 외부 값으로 저장한다.
3. 취약점 공격
- 공격자가 특정 문자열을 포함한 요청을 서버에 전송하는 경우, log4j에서는 로그를 저장하는 과정에 stack overflow 오류가 발생하여 프로세스가 종료될 수 있다.
4. 취약점 해결
- Log4j 2.17.0 이상 최신 버전으로 상향
ex) pom.xml에서 버전 올리기
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.17.0</version> </dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.17.0</version>
</dependency>
'시행착오 > 오류해결' 카테고리의 다른 글
[tomcat] PUT, DELETE 파싱 오류 (0) | 2022.01.19 |
---|---|
[HTTP] 상태 코드 정리 (0) | 2021.01.27 |