[단독분석] 분석 — CVE-2022-24816
CVE-2022-24816 enables unauthenticated remote code execution in jai‑ext < 1.1.22 via malicious Jiffle scripts, and must be mitigated immediately by upgrading to jai‑ext ≥ 1.2.22 or removing Janino from the classpath.
📋 요약
- 심각도 critical · CVSS 10.0 · EPSS 0.98739 · 악용난이도 easy · KEV
🔍 공격 기법
공격자는 HTTP 요청에 script= 파라미터 형태의 악성 Jiffle 스크립트를 삽입하여 전송합니다. 서버는 Janino 컴파일러를 이용해 해당 스크립트를 Java 코드로 변환·컴파일하고, 검증 없이 즉시 실행함으로써 원격에서 임의 코드를 수행할 수 있습니다(AV:N/AC:L/PR:N/UI:N).
악용 가능성: CVSS 벡터 AV:N/AC:L/PR:N/UI:N은 공격자가 네트워크를 통해 인증 없이, 사용자와의 상호작용 없이 바로 요청만으로 취약점을 이용할 수 있음을 의미하므로 난이도가 낮게 평가됩니다. EPSS 0.98739와 KEV 등재는 이미 다수의 실제 악용 사례가 보고되었으며, 이 점수가 높은 이유는 해당 취약점이 널리 사용되는 서비스에 존재하기 때문입니다. JAI‑EXT를 사용하는 GeoServer에서 HTTP 요청 본문이나 파라미터로 제공된 Jiffle 스크립트가 Janino 컴파일러에 의해 Java 코드로 변환·실행될 때 원격 코드 실행(RCE)이 트리거됩니다. 공격 표면은 스크립트를 입력받는 GeoServer의 REST API 엔드포인트(예: /jiffle, /process 등
💥 영향 분석
-
기술적 위험
- 성공 시 공격자는 서버 프로세스 권한으로 시스템 명령을 실행·파일을 읽고 쓰며, 네트워크 트래픽을 변조하거나 서비스를 중단시킬 수 있습니다.
- Janino가 클래스패스에 존재하는 한 모든 Jiffle 스크립트 처리 엔드포인트가 공격 표면이 됩니다.
-
비즈니스 리스크
- 가용성: GeoServer 등 GIS 서비스의 다운타임은 SLA 위반 및 운영 비용 증가를 초래합니다.
- 기밀성: 토지·인프라 등 민감한 지리공간 데이터가 외부에 유출될 경우 개인정보보호법·GDPR 등 규제 위반 위험이 있습니다.
- 평판: 원격 코드 실행 취약점이 공개되면 신뢰도 하락 및 고객 이탈 가능성이 높아집니다.
-
노출 규모
- jai‑ext < 1.1.22를 포함하는 모든 Java 애플리케이션, 특히 downstream인 GeoServer 배포가 직접적인 대상이며, Janino 라이브러리가 클래스패스에 존재하면 전체 인프라에 영향을 미칩니다.
-
악용 가능성
- EPSS 0.98739(백분위 0.99922)와 KEV 등재·exploit difficulty easy를 근거로 실제 악용이 매우 높은 수준이며, 즉시 대응이 요구됩니다.
🔗 관련 취약점·체이닝
Jiffle 스크립트 컴파일 기능과 결합된 입력 검증 부재가 존재할 경우 파일 경로 조작이나 서비스 거부 공격으로 연계될 수 있습니다. 현재 확인된 별도 CVE 번호는 보고되지 않았습니다.
🔎 탐지
- Janino 로그에 “Compiling Jiffle script” 메시지가 비정상적으로 빈번하게 기록되는 경우.
/jiffle혹은 유사 엔드포인트로 들어오는 POST 요청의script=파라미터에서 Java 코드 패턴(System\.exit|Runtime\.getRuntime\(\)\.exec)을 정규식 예시(?i)(System\.exit|Runtime\.getRuntime\(\)\.exec)로 탐지.- 동적 클래스 로딩 또는 예상치 못한 네이티브 라이브러리 호출 이벤트가 관찰될 경우 경보 생성.
🛡️ 완화 방안
- 즉시 조치: jai‑ext ≥ 1.2.22 버전으로 업그레이드하여 Janino 기반 코드 삽입을 차단합니다.
- 패치 불가능 시: 클래스패스에서
janino-*.jar를 제거하거나 Janino 사용을 비활성화해 Jiffle 스크립트 컴파일 자체를 금지합니다(기능 제한 발생 가능). - 보조 방어: WAF 규칙으로
script=파라미터에 Java 코드 패턴이 포함된 요청을 차단하고, 해당 엔드포인트에 대한 IP 허용 목록 등 접근 제어를 강화합니다.
⚖️ 위험도 / 우선순위
- 조치: immediate (지금 즉시(24h 내))
- 근거: CVSS=10.0 · KEV · EPSS=0.98739 · exploit=easy · in_scope=None