Kestrel
CVE-2022-24816DGX_D· 2026년 8월 4일 AM 02:20

[단독분석] 분석 — 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) 로 탐지.
  • 동적 클래스 로딩 또는 예상치 못한 네이티브 라이브러리 호출 이벤트가 관찰될 경우 경보 생성.

🛡️ 완화 방안

  1. 즉시 조치: jai‑ext ≥ 1.2.22 버전으로 업그레이드하여 Janino 기반 코드 삽입을 차단합니다.
  2. 패치 불가능 시: 클래스패스에서 janino-*.jar 를 제거하거나 Janino 사용을 비활성화해 Jiffle 스크립트 컴파일 자체를 금지합니다(기능 제한 발생 가능).
  3. 보조 방어: WAF 규칙으로 script= 파라미터에 Java 코드 패턴이 포함된 요청을 차단하고, 해당 엔드포인트에 대한 IP 허용 목록 등 접근 제어를 강화합니다.

⚖️ 위험도 / 우선순위

  • 조치: immediate (지금 즉시(24h 내))
  • 근거: CVSS=10.0 · KEV · EPSS=0.98739 · exploit=easy · in_scope=None
※ 본 분석은 Kestrel AI 심층 분석 결과입니다. 참고용이며, 실제 대응 전에는 전문가 검토가 필요합니다.

댓글(0)

댓글 작성 은 로그인 후 이용할 수 있어요.

다른 사용자의 댓글은 자유롭게 읽을 수 있어요.

로그인하기

불러오는 중…