상세 컨텐츠

본문 제목

H2 데이터베이스 콘솔에서 Log4Shell과 유사한 RCE 취약점 발견

국내외 보안동향

by MIR 2022. 1. 14. 08:58

본문

JFrog 연구원들이 H2 데이터베이스 콘솔에서 지난 달 발견된 Log4j 취약점과 유사한 방식으로 원격 코드 실행을 할 수 있는 치명적인 CVE-2021-42392 취약점을 발견해 공개하였습니다.


JFrog의 연구원 Andrey Polkovnychenko와 Shachar Menash는 CVE-2021-42392로 확인된 해당 취약점에 대해 "Log4j 취약점과 동일한 근본적인 원인인 JNDI 원격 클래스 로딩을 악용하는 방식이며, Log4j 이외의 구성요소에서 Log4jShell 이후 최초로 발견된 취약점"이라고 설명하였습니다.


H2는 Java로 작성된 오픈 소스 관계형 데이터베이스 관리 시스템으로, 애플리케이션에 내장되거나 클라이언트-서버 모드에서 실행될 수 있습니다. Maven Repository에 따르면 H2 데이터베이스 엔진은 6,807개의 아티팩트에서 사용됩니다.


JNDI는 Java Naming and Directory Interface의 약자로, LDAP와 함께 API를 사용하여 필요한 특정 리소스를 찾을 수 있는 Java 애플리케이션에 대한 네이밍 및 디렉토리 기능을 제공하는 API 입니다.


Log4Shell의 경우 이 기능을 통해 네트워크 내부와 외부에서 서버에 대한 런타임 조회가 가능하여 인증되지 않은 원격 코드를 실행하고, 취약한 Log4j 라이브러리를 사용하는 Java 응용 프로그램을 대상으로 악성 JNDI 조회를 가능하게 하여 서버에 악성 프로그램을 설치할 수 있습니다.


LAN(또는 WAN)에 노출된 H2 콘솔을 실행하는 경우 해당 문제는 인증되지 않은 사용자의 원격 코드 실행 공격을 받을 수 있습니다.

[그림 1] CVE-2021-42392 공격 흐름도(출처: jfrog.com)

JFrog 수석 연구원 Menashe는 “12월에 이슈된 Log4Shell 취약점과 유사하게 공격자는 JNDI를 조회하여 공격자가 제어하는 URL을 통해 원격 코드 실행을 허용하여 타인 및 조직의 시스템에 대한 제어 권한을 부여할 수 있다.” 라고 설명했습니다.


Menash는 H2 데이터베이스가 Spring Boot, Play Framework, JHipster를 포함한 많은 프레임워크에서 사용된다고 말했습니다. 또한, CVE-2021-42392 취약점은 Log4Shell만큼 널리 퍼져 있지는 않지만, 적절히 조치되지 않으면 개발자와 시스템에 큰 영향을 미칠 수 있다고 덧붙였습니다.


CVE-2021-42392 대응 및 패치 방법

CVE-2021-42392에 취약한지 확인하기 위해 관리자는 아래와 같이 ‘nmap’ 도구를 사용하여 H2 콘솔의 열린 인스턴스에 대한 로컬 서브넷을 스캔할 수 있습니다.

nmap -sV --script http-title --script-args "http-title.url=/" -p80,443,8000-9000 192.168.0.0/8 | grep "H2 Console"

※ 바닐라 커널의 기본 콘솔 끝점은 “/” 입니다. 타사 도구를 통해 배포된 H2 콘솔에서는 다를 수 있습니다.


해당 취약점은 H2 데이터베이스 버전 1.1.100 ~ 2.0.204에 영향을 미치며, 최선의 조치는 H2 데이터베이스를 업그레이드하는 것입니다. 이는 2022년 1월 5일에 출시된 버전 2.0.206에서 수정되었습니다.


H2를 업그레이드할 수 없는 경우, 아래와 같은 조치 방안을 제공합니다.

- Log4Shell 취약점과 유사하게, 최신 버전의 Java는 JNDI를 통해 원격 코드 실행을 허용하지 않습니다. Java(JRE/JDK) 버전을 업그레이드하여 완화할 수 있습니다.

- H2 콘솔 서블릿이 웹 서버에 배포되면 특정 사용자만 콘솔 페이지에 접근할 수 있도록 제어 설정을 할 수 있습니다.

 

 

(출처 :

https://thehackernews.com/2022/01/log4shell-like-critical-rce-flaw.html

https://jfrog.com/blog/the-jndi-strikes-back-unauthenticated-rce-in-h2-database-console/

https://mvnrepository.com/artifact/com.h2database/h2

https://github.com/h2database/h2database/releases/tag/version-2.0.206)


보안관제센터 MIR Team

관련글 더보기

댓글 영역