[2024년 12월 취약점 보고서] Critical RCE Vulnerability in jsonpath-plus (CVE-2024-21534) | Cloud-Based Platform AIONCLOUD

Threat Intelligence Report

Get up-to-date information on web application vulnerabilities, attacks, and how to respond.

Threat Intelligence Report 메인페이지로 돌아가기

[2024년 12월 취약점 보고서] Critical RCE Vulnerability in jsonpath-plus (CVE-2024-21534)

TA 팀이 “jsonpath-plus의 치명적인 RCE 취약점(CVE-2024-21534)”을 분석하여 작성한 취약점 보고서입니다.

CVE-2024-21534는 부적절한 입력 살균으로 인한 jsonpath-plus 패키지의 원격 코드 실행(RCE) 취약점입니다. 이 취약점은 악의적인 사용자가 입력을 통해 임의의 코드를 실행할 수 있게 함으로써 시스템에 심각한 보안 위협을 일으킬 수 있습니다. 취약점이 있는 시스템은 공격자에게 원격으로 시스템을 제어할 수 있는 기회를 제공할 수 있으므로 즉각적인 해결이 필요합니다.

이 취약점을 해결하기 위한 가장 중요한 대응책은 최신 버전의 패키지로 업데이트하는 것입니다. 업데이트하면 보안 패치를 포함한 취약점으로 인한 위험을 예방할 수 있습니다. 또한 입력 값의 유효성을 철저히 검증하고 필터링하여 보안을 강화할 수 있습니다. 이 취약점은 코드 실행을 통해 시스템을 손상시킬 수 있으므로 가능한 한 빨리 패치를 적용하고 가능한 모든 보안 조치를 취하는 것이 중요합니다.

저희 WAF도 지속적으로 모니터링하고 있으며, 향후 발견되는 취약점에 대해서는 신속히 대응할 예정입니다.


1. 개요

jsonpath-plus 는 몇 가지 추가 연산자를 포함한 JSONPath의 A JS 구현입니다.

10.0.7 이전의 패키지 jsonpath-plus 버전은 부적절한 입력 살균으로 인해 원격 코드 실행(RCE)에 취약합니다. 공격자는 Node.js에서 vm의 안전하지 않은 기본 사용을 악용하여 시스템에서 임의의 코드를 실행

image.png


2. 공격 유형

해당 취약점은 사용자 입력을 제대로 살균하지 못해 공격자가 서버에 임의의 코드를 삽입하고 실행

공격자는 임의의 JavaScript 코드를 포함하는 악의적인 JSONPath 표현식을 만들 수 있습니다. 이 표현식이 jsonpath-plus에 의해 평가되면, 삽입된 코드가 서버에서 실행됩니다. 악용 프로세스의 작동 방식은 다음과 같습니다.

  1. 악의적인 입력 조작 : 공격자는 JSONPath 중요한 파일을 읽거나 시스템 명령을 실행하는 등 승인되지 않은 작업을 수행하도록 의도된 JavaScript 코드를 내장하는 표현식을 만듭니다.
  2. 주입 지점 : 악성 코드는 JSON 데이터에 대한 사용자 제공 쿼리를 처리하는 데 JSONPath 사용되는 애플리케이션 엔드포인트에 공급됩니다.
  3. 코드 실행 : 애플리케이션은 적절한 살균 없이 vm 모듈을 사용하여 표현식을 평가합니다. 이는 서버에서 공격자의 코드를 실행하는 결과를 초래합니다.

이 코드를 실행하면(node index.js) 명령을 실행하여 파일 cat /etc/passwd의 내용을 표시합니다. 이는 공격자가 임의의 시스템 명령을 실행할 수 있는 방법을 보여줍니다.

// index.js
const { JSONPath } = require("jsonpath-plus");
const data = {};
const maliciousCode = 'require("child_process").exec("cat /etc/passwd")';
const maliciousPath = `$[(this.constructor.constructor("${maliciousCode}")())]`;

const result = JSONPath({
    json: data,
    path: maliciousPath
});

3. 대응

CVE-2024-21534는 jsonpath-plus 패키지에서 발생한 원격 코드 실행(Remote Code Execution, RCE) 취약점입니다. 이 취약점은 부적절한 입력 검증(improper input sanitization)로 인해 발생하며, 이를 통해 공격자는 시스템에서 임의의 코드를 실행할 수 있습니다. 이 취약점을 해결하려면 다음과 같은 대응 방법을 고려해야 합니다:

  • 업데이트 적용: jsonpath-plus 패키지의 최신 버전으로 업데이트하는 것이 가장 효과적인 대응책입니다. 최신 버전에서는 해당 취약점이 수정되어 있습니다.
  • 입력 검증 강화: 해당 취약점은 부적절한 입력 검증으로 발생하므로, 사용자 입력을 철저히 검증하고 필터링하는 추가적인 보안 조치를 적용할 수 있습니다.
  • 안전한 사용법 확인: jsonpath-plus의 기본 사용법이 안전하지 않다는 점을 인식하고, 가능하면 안전한 설정을 사용하여 코드 실행을 제한하는 것이 좋습니다.

해당 취약점의 경우 저희 AIWAF 제품에서는 추가 분석을 진행하여 패턴으로 대응할 예정입니다.


4. 결론

CVE-2024-21534는 jsonpath-plus 패키지에서 발생한 원격 코드 실행(RCE) 취약점으로, 부적절한 입력 검증(improper input sanitization)이 원인입니다. 이 취약점은 악의적인 사용자가 입력값을 통해 임의의 코드를 실행할 수 있게 하여 시스템에 심각한 보안 위협을 초래할 수 있습니다. 취약점이 존재하는 시스템은 공격자에게 원격으로 시스템을 제어할 기회를 제공할 수 있기 때문에, 즉시 해결이 필요합니다.

이 취약점을 해결하기 위한 가장 중요한 대응책은 해당 패키지의 최신 버전으로 업데이트하는 것입니다. 업데이트는 보안 패치를 포함하여, 취약점으로 인한 위험을 방지할 수 있습니다. 또한, 입력값을 철저히 검증하고 필터링하는 방법으로 보안을 강화할 수 있습니다. 이 취약점은 코드 실행을 통해 시스템을 손상시킬 수 있기 때문에 빠른 시일 내에 패치를 적용하고, 가능한 모든 보안 조치를 취하는 것이 중요합니다.

저희 WAF에서도 지속적으로 모니터링 진행하고있으며, 앞으로도 발견되는 취약점들에 대해서도 신속하게 대응할 예정입니다.


5. 참조

Scroll Up