[단독분석] 분석 — CVE-2022-24816
Critical RCE in jai-ext allows unauthenticated system compromise via Jiffle script injection, requiring immediate patching or removal of the Janino compiler to mitigate active exploitation.
📋 요약
- 심각도 critical · CVSS 10.0 · EPSS 0.98739 · 악용난이도 easy · KEV
🔍 공격 기법
- 경로: 네트워크 요청을 통해
Jiffle스크립트를 주입할 수 있는 엔드포인트가 노출된 경우 촉발됩니다. - 원리: 입력된
Jiffle스크립트가Janino컴파일러를 통해 Java 바이트코드로 변환되어 실행되는 과정에서 악성 코드가 삽입됩니다. - 단계: [네트워크 요청] $\rightarrow$ [악성 Jiffle 스크립트 전달] $\rightarrow$ [Janino에 의한 Java 코드 컴파일] $\rightarrow$ [임의 코드 실행(RCE)].
악용 가능성: 본 취약점은 네트워크를 통해 Jiffle 스크립트를 전달할 수 있는 엔드포인트가 노출된 환경에서 발생하며, 공격 난이도는 매우 낮습니다(Easy). CVSS 벡터 AV:N/AC:L/PR:N/UI:N이 나타내듯, 인증되지 않은 외부 공격자가 특수한 전제 조건이나 사용자 상호작용 없이 네트워크를 통해 직접적으로 트리거할 수 있는 구조입니다. 구체적인 공격 표면은 Jiffle 스크립트를 입력으로 받아 Janino 컴파일러를 통해 Java 코드로 변환 및 실행하는 파라미터와 프로토콜에 형성되어 있으며, 특히 GeoServer와 같은 다운스트림 프로젝트가 주요 타겟이 됩니다. 이론적 위험성을 넘어 EPSS 수치가 0.98739로 매우 높고 KEV(Known Exploited Vulnerabilities)에 등재되었다는 점은 이미 야생(In-the-wild)에서 실제 악용 사례가 빈번하게 관측되고 있음을 증명합니다. 따라서 공격자는 복잡한 페이로드 설계 없이도 공개된 취약점 경로를 통해 원격 코드 실행(RCE)을 달성할 가능성이 매우 높습니다.
💥 영향 분석
- 영향 제품 및 범위:
geosolutionsgroup jai-ext1.1.22 미만 버전이 대상이며, 특히 이를 사용하는 하위 프로젝트인GeoServer가 직접적인 영향을 받습니다. 다중 소스 데이터 교차검증을 통해 해당 영향 범위의 일관성이 확인되었습니다(신뢰도 1.0). - 기술적 위험: CVSS 10.0 및 벡터(
AV:N/AC:L/PR:N/UI:N/S:C)가 나타내듯, 인증되지 않은 외부 공격자가 네트워크를 통해 시스템 전체 권한을 획득할 수 있습니다. 이는 최종적으로 원격 코드 실행(RCE)으로 이어져 서버의 완전한 제어권 상실 및 데이터 유출, 내부 망으로의 횡적 이동(Lateral Movement) 기점으로 활용될 위험이 큽니다. - 비즈니스 리스크: 핵심 지리정보 서비스(GeoServer 등)의 가용성 중단 및 관리자 권한 탈취로 인한 민감 데이터 노출 가능성이 있으며, 이는 서비스 신뢰도 하락과 컴플라이언스 위반으로 이어질 수 있습니다.
🔗 관련 취약점·체이닝
- 유형: 스크립트 엔진을 통한 코드 주입 및 동적 컴파일 기반의 RCE 패턴입니다.
- 체이닝: 추정: 내부 망에 진입한 공격자가 권한 상승(Privilege Escalation) 취약점과 결합하여 호스트 OS 전체를 장악하는 시나리오가 가능합니다.
🔎 탐지
- 네트워크 레벨: HTTP 요청 바디 또는 파라미터 내에 Java 클래스 정의, 시스템 명령 실행 함수(
Runtime.getRuntime().exec()), 또는Jiffle스크립트 특유의 구문이 포함된 패턴을 모니터링합니다. - 호스트 레벨:
GeoServer프로세스가 비정상적인 셸(sh,bash,cmd.exe)을 자식 프로세스로 생성하는지 확인합니다.
🛡️ 완화 방안
- 우선순위 및 근거: Immediate (24시간 내 조치). KEV(Known Exploited Vulnerabilities) 등재로 실제 악용이 확인되었으며, EPSS 수치가 0.98739(백분위 0.99922)로 이론적 심각도와 별개로 실측 기반의 악용 가능성이 최고 수준이기 때문입니다.
- 근본 해결:
jai-ext를 1.1.22 버전 이상으로 업데이트하여 악성 코드 주입 방지 패치를 적용합니다. - 즉시 완화(임시): 업데이트가 불가능한 경우, 클래스패스(Classpath)에서
janino-x.y.z.jar파일을 제거하여 Jiffle 스크립트의 컴파일 및 실행 기능을 원천 차단합니다.
⚖️ 위험도 / 우선순위
- 조치: immediate (지금 즉시(24h 내))
- 근거: CVSS=10.0 · KEV · EPSS=0.98739 · exploit=easy · in_scope=None