본문으로 바로가기

0. 조치 환경

  • Spring Boot 2.5.6 (Gradle Project)
  • JDK 11(Java 11)
  • IntelliJ

[Logback 업데이트 전 파일 버전]

1. 취약점 내용

  • Logback 1.2.9 이전 버전에서 발생하는 원격코드 실행 취약점(CVE-2021-42550)
  • 원격코드 실행 취약점에는 조건이 충족되어야 합니다.
    • 공격자는 사전에 로그 백 설정 파일(logback.xml)에 접근 및 쓰기 권한이 있어야 함
    • 공격자가 변조한 설정 파일(logback.xml)이 시스템에 적용되어야 함(변조된 설정 파일 배치 후 시스템 재기동 or Scan="true"로 설정 필요)
    • 1.2.9 이전 버전 사용
  • https://www.boho.or.kr/data/secNoticeView.do?bulletin_writing_sequence=36396 

2. 조치 방안

  • 버전 업데이트(1.2.9)
  • 1.2.9 버전 이상은 아직 알파버전입니다. 

3. Logback 버전 업데이트

  • Logback 외에도 추가적으로 관련 의존성에도 취약점이 있는 버전이 있으므로 같이 버전을 올려줍니다.
  • 스프링 부트 버전에 맞춰 기존 버전이 적용되어있더라도 높은 버전으로 적용 시 교체됩니다.
  • Apache Log4j API 2.13.3 버전에 취약점이 존재하므로 2.16.0으로 올려줍니다.
  • Apache Log4j to SLF4J Adapter 2.13.3 에는 취약점이 존재하지 않다고 혹시 모르니 하지만 2.16.0으로 올려줍니다.

[Gradle]

dependencies {
	implementation group: 'ch.qos.logback', name: 'logback-core', version: '1.2.9'
	implementation group: 'ch.qos.logback', name: 'logback-classic', version: '1.2.9'
	implementation group: 'org.slf4j', name: 'slf4j-api', version: '1.7.32'
	implementation group: 'org.slf4j', name: 'jul-to-slf4j', version: '1.7.32'
	implementation group: 'org.apache.logging.log4j', name: 'log4j-to-slf4j', version: '2.16.0'
	implementation group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.16.0'
}

 

[Maven]

<dependencies>
  <dependency>
      <groupId>ch.qos.logback</groupId>
      <artifactId>logback-core</artifactId>
      <version>1.2.9</version>
  </dependency>
  <dependency>
      <groupId>ch.qos.logback</groupId>
      <artifactId>logback-classic</artifactId>
      <version>1.2.9</version>
      <scope>test</scope>
  </dependency>
  <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>1.7.32</version>
  </dependency>
  <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>jul-to-slf4j</artifactId>
      <version>1.7.32</version>
  </dependency>
  <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-to-slf4j</artifactId>
      <version>2.16.0</version>
  </dependency>
  <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-api</artifactId>
      <version>2.16.0</version>
  </dependency>
</dependencies>