Bricks Builder WordPress 테마: 심각한 원격 코드 실행 취약성(CVE-2024-25600)

2024년 8월 15일
Bricks Builder WordPress 테마 취약점

내용물

무료로 씨디네트웍스를 이용해보세요

지금 바로 신청하면, 씨디네트웍스의 다양한 솔루션을 한 달간 무료로 체험하실 수 있습니다.

이 게시물 공유하기

Bricks Builder는 WordPress용 강력한 테마 편집 플러그인입니다. 최근 CDNetworks Security Lab은 1.9.6 이전 버전의 WordPress 기본 구성에서 원격 코드 실행 취약점을 발견했습니다. 이 취약점을 통해 사용자는 권한 검사를 우회하여 원격 코드 실행을 유도하고 서버 수준 권한을 부여할 수 있습니다.

불행히도, 이 취약점을 악용하는 것은 간단하며, 그 영향은 광범위합니다. 기업과 조직은 WordPress 버전을 확인하고, 관련 취약점을 해결하거나, 이 취약점의 악용을 방지하기 위한 웹 보호 솔루션을 구현하는 것이 좋습니다.

취약점 분석

공개된 취약성 개요와 개념 증명(PoC)을 검토한 후, 우리는 /bricks/v1/render_element 경로의 글로벌 위치를 식별했습니다. 이 REST API 경로는 bricks/includes/api.php 파일에 등록되어 있으며, 여기서 요청 메서드, 콜백 함수 render_element, 권한 확인 콜백 함수 render_element_permissions_check를 정의합니다.

벽돌 워드프레스 취약점_01

우리는 동적 디버깅과 추가 분석을 위해 소스 코드에 중단점을 설정합니다. 서버가 요청을 받으면 먼저 권한 확인 콜백 함수를 호출합니다.

벽돌 워드프레스 취약점_02

bricks/includes/api.php 경로를 따라가면 권한 확인 콜백 함수 render_element_permissions_check가 nonce 값을 기반으로 권한 검증을 수행하는 것을 확인할 수 있습니다.

벽돌 워드프레스 취약점_03

"Bricks" 소프트웨어에서 유효한 nonce는 프런트 엔드에 포함됩니다. WordPress 홈페이지를 새로 고치면 프런트 엔드 소스 코드에서 전역적으로 nonce를 찾을 수 있습니다. 즉, 권한 확인 콜백 함수가 완전히 효과가 없어 권한이 없는 사용자가 이 API에서 작업을 수행할 수 있습니다.

벽돌 워드프레스 취약점_14

프런트 엔드에서 추출된 nonce 값을 검증한 후, 콜백 함수 render_element로 진행합니다. 이 함수 내에서 Ajax::render_element 함수가 호출되어 요청 본문의 매개변수를 전달합니다.

벽돌 워드프레스 취약점_04

다음으로 bricks/includes/ajax.php의 render_element 함수를 따릅니다. 이 함수에서 Element_Code 클래스는 주로 매개변수를 기반으로 위치하며 인스턴스화됩니다.

벽돌 워드프레스 취약점_05

인스턴스화 후 init() 함수가 호출됩니다.

다음으로, 이 함수를 bricks/includes/elements/base.php로 추가합니다.

벽돌 워드프레스 취약점_06

이 파일에서 this->render() 함수에 주의하세요. 그런 다음 bricks/includes/elements/code.php로 이동합니다. 위험한 함수 호출에 대한 몇 가지 검사 후 eval 함수가 구성에서 사용자가 제출한 코드를 실행하기 위해 예외 처리 내에서 사용된다는 것이 분명합니다. 이 경우 코드 매개변수는 사용자가 제어하여 다음과 같은 것을 사용하여 코드를 실행할 수 있습니다. `.

벽돌 워드프레스 취약점_07

마지막으로, 코드 실행 결과는 현재 버퍼의 내용에서 얻습니다. 그런 다음 요청은 콜백을 통해 단계별로 완료됩니다.

벽돌 워드프레스 취약점_08

벽돌 워드프레스 취약점_09

벽돌 워드프레스 취약점_10

취약점 복제

WordPress 6.4.3 + Bricks Builder 1.9.4를 사용하여 로컬로 설정합니다. WordPress 홈페이지에서 소스 코드를 보고 nonce 값에 대한 글로벌 검색을 수행합니다.

벽돌 워드프레스 취약점_11

BurpSuite를 사용하여 요청을 구성합니다. http://127.0.0.1/wordpress/?rest_route=/bricks/v1/render_element 그리고 POST 요청을 통해 다음 데이터를 제출하여 "python –version" 명령을 실행합니다. 반환된 결과에서 현재 호스트의 Python 버전을 성공적으로 볼 수 있습니다.

벽돌 워드프레스 취약점_12

영향을 받는 자산

Fofa에서 발견된 관련 자산은 25,000개가 넘습니다. Fofa 쿼리: body="/wp-content/themes/bricks/"

벽돌 워드프레스 취약점_13

완화 전략

이 취약점을 해결하려면:

  1. WordPress Bricks Builder 테마를 최신 버전으로 업데이트하세요.
  2. 권한 확인 콜백 함수 인증을 위해 nonce 값에 의존하지 마세요.
  3. 모든 사용자 입력 항목은 엄격한 검증 및 필터링을 거쳐 무단 액세스 및 코드 실행을 방지합니다.

취약성 최소화: CDNetworks의 Cloud Security 2.0

CDNetworks의 클라우드 WAF 이 취약성 악용에 대한 즉각적인 보호를 제공합니다. 다른 변형 공격 방법과 다양한 구성 요소 취약성을 지속적으로 조사하고 분석하여 비즈니스의 "취약성 창"을 최소화하기 위한 보호 규칙을 신속하게 배포합니다.

최근 몇 달 동안 CDNetworks는 클라우드 보안 솔루션을 다음으로 업그레이드했습니다. 클라우드 보안 2.0WAF의 몇 가지 주요 기능을 소개합니다.

  • 내장된 규칙세트: 0-day/N-day 및 OWASP 상위 10개 공격에 대한 1,000개 이상의 규칙세트.
  • 지능형 분석(셀프 튜닝): AI가 사용자 행동을 학습하고 자동으로 규칙 예외를 생성하여 거짓 양성 결과를 줄입니다.
  • 0-day 공격에 대한 가상 패치: 취약점을 지속적으로 모니터링하고 매시간 새로운 규칙을 생성합니다.
  • AI 기술을 활용한 관리형 보호 모드: 향상된 위협 탐지 및 대응.
  • 확장성 및 배포 용이성: 쉬운 배포로 수요에 따라 확장 가능합니다.

CDNetworks는 이러한 기능을 통합함으로써 APAC 지역 기업의 진화하는 보안 요구 사항을 충족하고 경쟁이 치열한 시장에서 조직을 보호하는 것을 목표로 합니다.

더 알아보기