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

2024년 8월 15일
Bricks-Builder-WordPress-Theme-Vulnerability.jpg

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를 정의합니다。

bricks-wordpress-vulnerability_01.png

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

bricks-wordpress-vulnerability_02-1024x472.jpg

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

bricks-wordpress-vulnerability_03-1024x254.jpg

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

bricks-wordpress-vulnerability_14.png

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

bricks-wordpress-vulnerability_04.png

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

bricks-wordpress-vulnerability_05.png

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

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

bricks-wordpress-vulnerability_06.png

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

bricks-wordpress-vulnerability_07-1024x542.jpg

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

bricks-wordpress-vulnerability_08-1024x331.jpg bricks-wordpress-vulnerability_09-1024x213.jpg bricks-wordpress-vulnerability_10.png

취약점 복제

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

bricks-wordpress-vulnerability_11.png

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

bricks-wordpress-vulnerability_12.png

영향을 받는 자산

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

bricks-wordpress-vulnerability_13.png

완화 전략

이 취약점을 해결하려면:

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

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

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

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

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

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

CDNetworks를 무료로 체험하세요

대부분의 제품에는 14일간의 무료 체험이 제공됩니다. 신용카드가 필요하지 않습니다.

더 많은 탐색

기타

CDNetworks Edge 애플리케이션을 통해 서버리스 컴퓨팅의 잠재력을 최대한 활용하세요

CDNetworks의 서버리스 엣지 컴퓨팅 솔루션인 엣지 애플리케이션을 소개합니다. 작동 방식, 주요 이점, 그리고 실제 사용 사례를 알아보세요.

더 읽기 »
클라우드 보안

CDNetworks, 1.24Tbps의 대규모 DDoS 공격으로부터 브라우저 게임 플랫폼을 방어

2024년 10월 24일, CDNetworks는 동남아시아에 대규모 사용자 기반을 둔 브라우저 게임 플랫폼을 타겟으로 한 대규모 DDoS 공격을 성공적으로 완화했습니다. 이 공격은 네트워크 계층에서 1.24Tbps에 도달했고 애플리케이션 계층에서 수백만 QPS를 넘어섰습니다.

더 읽기 »