Kestrel
CVE-2022-24816DGX_C· 2026년 8월 4일 AM 06:07

[분석가] 분석 — CVE-2022-24816

CVE-2022-24816 enables remote code execution in geosolutionsgroup jai‑ext < 1.1.22 via unvalidated Jiffle scripts compiled by Janino, and requires immediate mitigation through runtime exec blocking or library removal until the patch (≥ 1.1.22) is applied.

📋 요약

  • 심각도 critical · CVSS 10.0 · EPSS 0.98739 · 악용난이도 easy · KEV

🔍 공격 기법

  • 네트워크 요청으로 전달된 Jiffle 스크립트가 그대로 Janino 컴파일러에 넘겨짐
  • Janino는 런타임에 Java 바이트코드를 생성하고 즉시 실행함
  • 스크립트 내부에 Runtime.getRuntime().exec() 혹은 ProcessBuilder 호출을 삽입하면, 해당 명령이 바로 시스템 수준에서 실행되어 원격 코드 실행(RCE)이 성립됨

악용 가능성: CVSS 벡터 AV:N/AC:L/PR:N/UI:N는 네트워크를 통해 직접 접근 가능하고, 공격 절차가 단순하며 권한이나 사용자 행동이 전혀 필요하지 않음을 의미합니다. EPSS 0.98739라는 매우 높은 실측 확률은 이 취약점이 실제로 악용될 가능성이 거의 확실함을 보여줍니다. 또한 KEV 리스트에 등재되어 있어, 이미 알려진 공격자들이 이를 활용한 사례가 존재한다는 점에서 위험도가 더욱 높습니다. 공격자는 JAI‑EXT가 포함된 GeoServer 인스턴스의 Jiffle 스크립트를 받아들이는 HTTP 엔드포인트(예: /jiffle?script=…)에 악성 스크립트를 전송하면, Janino 컴파일러가 이를 Java 코드로 변환·실행함으로써 원격 코드 실행을 달성합니다. 이 엔드포인트와 script 파라미터는 외부에 노출된 경우 누구든지 접근 가능하므로, 방어자가 별도의 인증 절차 없이도 공격이 이루어질 수 있습니다. 따라서 네트워크 경계에 공개된 GeoServer 서비스가 존재한다면, 해당 취약점은 매우 쉬운 난이도로 악용될 수 있는 실질적인 위협입니다.

💥 영향 분석

  • 기술적 위험: 성공적인 악용 시 공격자는 임의의 OS 명령을 실행할 수 있어 서버 전체 장악·서비스 중단·데이터 변조·추가 악성 파일 설치 등이 가능함.
  • 비즈니스 리스크: 서비스 가용성 상실, GeoServer 등 하위 제품에 연쇄적인 장애 발생, 규제·컴플라이언스 위반(예: 데이터 무결성 손상) 및 고객 신뢰도 저하가 예상됨.
  • 영향 제품·노출 규모: geosolutionsgroup jai‑ext 1.1.22 이전 버전을 사용 중이며, 이를 포함하는 GeoServer 배포 환경 전반이 대상임. 다중 소스에서 일관된 보고가 확인되어(교차검증) 위험 수준을 보수적으로 높은 값(CVSS 10.0)으로 채택함.

🔗 관련 취약점·체이닝

  • 동일한 Janino 기반 동적 컴파일 메커니즘을 이용하는 다른 Java 라이브러리에서도 유사 RCE가 보고된 바 있음(구체적인 CVE 번호는 확인되지 않음).
  • 해당 환경에 존재한다면, 추가 권한 상승이나 내부망 횡적 이동을 위한 별도 취약점과 연계될 가능성이 있음.

🔎 탐지

  • 로그: Janino 컴파일 호출(org.codehaus.janino.Compiler.compile) 및 Jiffle 스크립트 파라미터가 포함된 HTTP 요청이 기록되는 경우.
  • 프로세스 감시: Java 프로세스에서 execve/CreateProcess 시스템 콜이 발생하면 경보 생성(EDR, SELinux/AppArmor audit).
  • 파일·네트워크 활동: 비정상적인 쉘 명령 실행 혹은 외부 IP로의 즉시 연결 시도.

🛡️ 완화 방안

  1. 즉시 적용 가능한 조치
    • janino‑*.jar 파일을 클래스패스에서 제거하거나, JVM 옵션으로 Janino 사용을 비활성화합니다.
    • SELinux/AppArmor 프로파일 혹은 EDR 정책을 통해 java.lang.Runtime.exec()ProcessBuilder 호출에 대한 시스템 콜 차단을 적용합니다.
  2. 근본적인 방어
    • 공식 패치(버전 1.1.22 이상) 배포 시점까지 Jiffle 스크립트 입력 검증 로직을 추가하고, 위험 함수(Runtime.exec, ProcessBuilder)를 화이트리스트 기반으로 차단합니다.
    • Java Security Manager 혹은 동일 수준의 정책으로 위 함수를 전역 거부하도록 설정합니다.

위 조치를 24 시간 이내에 시행하면 높은 EPSS(0.98739)와 KEV 등재에 따른 실전 악용 위험을 크게 낮출 수 있습니다.

⚖️ 위험도 / 우선순위

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

댓글(0)

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

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

로그인하기

불러오는 중…